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

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

 2007-05-06 12:07:09 来源:WEB开发网   
核心提示: create or replace type body point ismember function jdistance (p point) return number islanguage java name´Point4.distance (Point4) return
create or replace type body point is
member function jdistance (p point) return number is
language java name
´Point4.distance (Point4) return double´;

第三步:从SQL或 PL/SQL调用Java:存储过程发布之后,它就象一个PL/SQL存储过程一样。可以用在调用规范里指定的SQL名称,在各种环境里调用它:

可以在任何SQL语句内部调用:

>SELECT prepend_hello(ENAME) FROM EMP;

使用CALL格式在顶级调用:

>CALL prepend_hello(‘BILL') INTO :x;

在PL/SQL过程、包或匿名块的内部,使用与调用其它PL/SQL过程一样的语法调用:

>DECLARE
emp_name VARCHAR;
BEGIN…
emp_name := prepend_hello(‘BILL');

END;
从一个实例的方法内部,可以调用Oracle对象的方法,从而调用底层的Java实现:select pt.p, pt.p.jdistance(point(0, 0)) from point_table pt;

最后,既然所有发布的Java子程序,对SQL和PL/SQL来说,都仿佛是一个PL/SQL子程序[内部用Java实现的子程序],那么一个Java子程序就能透明地参与到PL/SQL子程序所发起的服务器到服务器的RPC调用当中,也能参与到远程数据库服务器的SQL发出的分布式事务当中。

Java 程序如何访问SQL和PL/SQL?

Java 应用程序使用标准的JDBC语法或SQLJ语法访问SQL和PL/SQL。Oracle8i 提供了内嵌的JDBC驱动程序和内嵌的SQLJ 转换器,它们都提供了与Oracle客户端JDBC驱动程序及SQLJ转换器相同的功能,其中包括对所有Oracle专有数据类型的支持(例如ROWID、REFCursors、及Oracle8对象关系类型)。例如,有这样一个用PL/SQL编写的存储函数prepend_hello。要通过JDBC在Java程序里调用这个存储过程,我们使用下面的标准JDBC语法:

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

Tags:PL SQL Java

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