你可以运行Java存储过程的方式与 PL/SQL 存储过程相同。通常,对 Java 存储过程的调用是数据库操作的结果,因为它通常是触发器或 SQL DML 调用的结果。要调用 Java 存储过程,您必须通过调用规范发布它。
在调用 Java 存储过程之前,您必须将它们加载到 Oracle 数据库实例中并将它们发布到 SQL。加载和发布是单独的任务。许多仅由其他 Java 类引用的 Java 类从未发布过。
要自动加载 Java 存储过程,您可以使用loadjava命令行实用程序。它将 Java 源文件、类和资源文件加载到系统生成的数据库表中,然后使用 SQLCREATE JAVA {SOURCE | CLASS | RESOURCE}语句将 Java 文件加载到 Oracle 数据库实例中。您可以从文件系统、流行的 Java IDE、Intranet 或 Internet 上传 Java 文件。
创建、加载和调用 Java 存储过程涉及以下步骤:
第 1 步:创建或重用 Java 类
第 2 步:加载和解析 Java 类
第 3 步:发布 Java 类
第 4 步:调用存储过程
第 5 步:如有必要,调试存储过程
第 1 步:创建或重用 Java 类
使用首选的 Java IDE 创建类,或重用满足您要求的现有类。Oracle 数据库支持许多 Java 开发工具和客户端编程接口。例如,Oracle JVM 接受在流行的 Java IDE 中开发的程序,例如 Oracle JDeveloper、Symantec Visual Cafe 和 Borland JBuilder。
在以下示例中,您将创建public类Oscar。它有一个名为 的方法quote(),该方法返回 Oscar Wilde 的引用。
public class Oscar
{
// return a quotation from Oscar Wilde
public static String quote()
{
return "I can resist everything except temptation.";
}
}
将类保存为Oscar.java. 使用 Java 编译器,.java在您的客户端系统上编译该文件,如下所示:
javac Oscar.java
编译器输出一个 Java 二进制文件,在本例中为Oscar.class.
第2步:负载和 R解决 Java 类
使用该loadjava实用程序,您可以将 Java 源文件、类和资源文件加载到 Oracle 数据库实例中,并在其中存储为 Java 模式对象。您可以loadjava从命令行或应用程序运行,并且可以指定多个选项,包括解析器。
在以下示例中,loadjava使用默认的 JDBC OCI 驱动程序连接到数据库。您必须指定用户名和密码。默认情况下,Oscar该类被加载到您登录的用户的架构中,在本例中为scott.
$ loadjava -user scott/tiger Oscar.class
当您调用该quote()方法时,服务器会使用解析器来搜索支持类,例如String. 在这种情况下,将使用默认解析器。默认解析器首先搜索当前模式,然后搜索SYS所有核心 Java 类库所在的模式。如有必要,您可以指定不同的解析器。
第 3 步:发布 Java 类
对于可以从 SQL 调用的每个 Java 方法,您必须编写一个调用规范,该规范将方法的顶级入口点暴露给 Oracle 数据库。通常,只需要几个调用规范。如果愿意,您可以使用 Oracle JDeveloper 生成这些调用规范。
在以下示例中,您从 SQL*Plus 连接到数据库,然后为方法定义顶级调用规范quote():
SQL> 连接 scott/tiger
SQL> CREATE FUNCTION oscar_quote RETURN VARCHAR2
2 AS LANGUAGE JAVA
3 NAME 'Oscar.quote() return java.lang.String';
第 4 步:调用存储过程
您可以从 SQL DML 语句、PL/SQL 块和 PL/SQL 子程序调用 Java 存储过程。使用 SQLCALL语句,您还可以从顶层调用存储过程,例如从 SQL*Plus。存储过程也可以从数据库触发器中调用。
在以下示例中,您声明了一个 SQL*Plus 主变量:
SQL> VARIABLE 引用 VARCHAR2(50);
然后,调用该函数oscar_quote(),如下所示:
SQL> CALL oscar_quote() INTO :theQuote;
SQL> PRINT theQuote;
THEQUOTE
第 5 步:调试存储过程,如果需要的话
调试存储过程是强制性的。您的 Java 存储过程在位于单独计算机上的服务器上远程运行。但是,JDK 调试器jdb无法调试远程 Java 程序。因此,在将存储过程加载到数据库之前,您需要在客户端计算机上对其进行调试。
以上就是关于“Java存储过程的步骤”介绍,大家如果想了解更多相关知识,不妨来关注一下动力节点的Java在线学习,里面的课程内容从入门到精通,细致全面,很适合没有基础的小伙伴学习,希望对大家能够有所帮助哦。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习