WEB开发网
开发学院数据库Oracle PL/SQL和Java开发Oracle8i应用程序 阅读

PL/SQL和Java开发Oracle8i应用程序

 2007-05-06 12:07:09 来源:WEB开发网   
核心提示: SQL语句可以在任何SQL语句内部调用函数,顶级CALL语法使用CALL语句,PL/SQL和Java开发Oracle8i应用程序(3),可以在顶级调用过程和函数,CALL是随Oracle8i新引进的语法,在SQL里调用它,就必须显式地把它“发布”到SQL当中,PL/

SQL语句可以在任何SQL语句内部调用函数。顶级CALL语法使用CALL语句,可以在顶级调用过程和函数。CALL是随Oracle8i新引进的语法。PL/SQL块、子程序、包可以在PL/SQL子程序、包或匿名块里调用它们。请注意:Java存储程序自己可以在匿名的BEGIN … END 块内被调用。触发器的隐式调用。最后,PL/SQL或Java存储过程可以在触发器执行的时候,隐式地被调用。

把JAVA与现存的PL/SQL程序结合

要想理解如何才能把Java 应用程序和现有的PL/SQL存储过程结合起来,我们首先要理解开发Java存储过程的三个步骤:

第一步:编写Java 存储过程:第一步是编写要做成存储过程的Java程序。可以用标准的Java编写,也可以用SQLJ编写?因为存储过程通常都是SQL密集型的,所以用SQLJ编写存储过程,是一个效率较高的方法。

public class Foo {
public static String prependHello(String tail) {
return "Hello " + tail;}}

第二步:步署、发布存储过程:用Java开发工具编写完Java程序后,要把它装载进Oracle8i。要用Oracle提供的loadjava命令行工具,以源文件、二进制文件、.class类文件、Java .jar归档文件的形式,把Java程序装载进Oracle8i中的目标数据库大纲。Loadjava是一个Java程序,它用Oracle的JDBC驱动程序连接服务器,自动把一组Java程序装载进服务器。(还可以使用CREATE JAVA这个工具,它是SQL*Plus的SQLDDL命令)

>loadjava -user scott/tiger@oudelsrv-1:5521:ORCL Foo.class

命令执行之后,会把类foo的方法装入scott的大纲(请参阅第后面有关Java、SQL和PL/SQL名称的内容,了解命名空间解析的问题)。下一步是,把方法登记到SQL上。这一步为什么是必不可少的呢?如果只用PL/SQL,就没有必要显式地把PL/SQL过程登记到SQL上?对SQL来说,每个PL/SQL过程自动就是可见的。反之,在使用Java的时候,所有的Java方法对SQL来说都是不可见的?要让一个Java方法能够作为存储过程,在SQL里调用它,就必须显式地把它“发布”到SQL当中。Java 类和方法不会自动地发布到数据字典、SQL和PL/SQL里,原因有二:

上一页  1 2 3 4 5 6  下一页

Tags:PL SQL Java

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接