oracle 调用存储过程和方法 |
您所在的位置:网站首页 › oracle教学视频教程 › oracle 调用存储过程和方法 |
调用存储过程
PL/SQL 存储过程: CREATE OR REPLACE PROCEDURE my_proc( p_param1 IN VARCHAR2, p_param2 OUT VARCHAR2 ) IS BEGIN -- 存储过程的实现逻辑 p_param2 := 'Hello, ' || p_param1; END; Java 代码调用存储过程: Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "username", "password"); CallableStatement stmt = conn.prepareCall("{ call my_proc(?, ?) }"); stmt.setString(1, "World"); stmt.registerOutParameter(2, Types.VARCHAR); stmt.execute(); String result = stmt.getString(2); System.out.println(result); 调用 Java 存储过程 Java 存储过程: CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED "MyProc" AS import java.sql.*; public class MyProc { public static void myProc(String p_param1, String[] p_param2) throws SQLException { // 存储过程的实现逻辑 p_param2[0] = "Hello, " + p_param1; } }/ 创建 Java 存储过程的包: CREATE OR REPLACE PACKAGE MyProcPackage AS PROCEDURE my_proc(p_param1 IN VARCHAR2, p_param2 OUT VARCHAR2); END;/ Java 代码调用 Java 存储过程: Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "username", "password"); CallableStatement stmt = conn.prepareCall("{ call MyProcPackage.my_proc(?, ?) }"); stmt.setString(1, "World"); stmt.registerOutParameter(2, Types.VARCHAR); stmt.execute(); String result = stmt.getString(2); System.out.println(result);注意:调用 Java 存储过程需要在 Oracle 中启用 Java。如果未启用 Java,则需要使用以下语句启用 Java: ALTER SYSTEM SET JAVA_ENABLED=true;启用 Java 后,还需要在数据库中创建 Java 虚拟机: CREATE OR REPLACE AND RESOLVE JAVA SYSTEM CLASSPATH; CREATE OR REPLACE JAVA SYSTEM;最后,需要将 Java 存储过程编译为数据库可用的格式: ALTER JAVA SOURCE "MyProc" COMPILE;编译后,Java 存储过程将被编译为 PL/SQL 存储过程,并可以在数据库中使用。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |