oracle 调用存储过程和方法

您所在的位置:网站首页 oracle教学视频教程 oracle 调用存储过程和方法

oracle 调用存储过程和方法

2023-03-02 21:39| 来源: 网络整理| 查看: 265

调用存储过程

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