WEB开发网
开发学院数据库Oracle Oracle开发人员JAVA存储过程 阅读

Oracle开发人员JAVA存储过程

 2008-09-04 12:49:53 来源:WEB开发网   
核心提示: The Resolver Spec 基于JDK的JVM在列于CLASSPATH中的目录中查找类引用,并对其进行解析,Oracle开发人员JAVA存储过程(3),因为Oracle数据库类存在于数据库模式中,所以OracleJVM利用数据库解析器(resolver)通过列于Resolver S

The Resolver Spec

基于JDK的JVM在列于CLASSPATH中的目录中查找类引用,并对其进行解析。因为Oracle数据库类存在于数据库模式中,所以OracleJVM利用数据库解析器(resolver)通过列于Resolver Spec中的模式查找并解析类引用。与CLASSPATH不同(CLASSPATH可以应用于所有的类),Resover Spec根据每类的情况进行应用。缺省解析器首先在加载类的模式中搜寻类,然后在公共同义词(public synonyms)中搜索。

loadjava -resolve <myclass>

你可能需要指定不同的解析器,也可以在使用loadjava时强制进行解析,从而在布置时确定可能在以后运行时发生的任何问题。

loadjava -resolve -resolver "((* SCOTT) (foo/bar/* OTHERS) (* PUBLIC))"

Call Spec和存储过程调用

为了从SQL中调用Java方法(以及从PL/SQl和JDBC中调用),必须首先通过Call Spec发布公共静态方法,它为SQL定义方法采用的参数以及返回的SQL类型。

在我们的例子中,我们将利用SQL*Plus连接到数据库,并为Hello.world()定义一个顶级Call Spec:

SQL> connect scott/tiger SQL> create or replace function helloworld return VARchar2 as language java name ’Hello.world () return java.lang.String’; / Function created.

可以像下面这样调用Java存储过程:

SQL> variable myString varchar2[20]; SQL> call helloworld() into :myString; Call completed. SQL> print myString; MYSTRING --------------------- Hello world

Java存储过程可以通过其Call Spec从以下各项中进行调用:SQL DML语句(insert, update、delete、select、CALL、EXPLAIN PLAN、LOCK TABLE和MERGE)、PL/SQL块、子程序、程序包以及数据库触发器。Call Spec的美妙之处在于存储过程实现可以从PL/SQL转换为Java,反之亦可,这一点对于请求者是透明的。

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

Tags:Oracle 开发 人员

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