1、确认database中的jdk版本
CREATE OR REPLACE FUNCTION get_java_property (prop IN VARCHAR2)
RETURN VARCHAR2 IS LANGUAGE JAVA
name ‘java.lang.System.getProperty(java.lang.String) return java.lang.String’;
然后调用
SELECT get_java_property(‘java.version’) FROM dual;
会显示jdk的版本
2、编写java代码
例如:
public class Oscar
{ // return a quotation from Oscar Wilde
public static String quote()
{
return “I can resist everything except temptation.”;
}
}
3、使用javac编译java文件
确保编译使用的javac与1中获取到的java的版本一致,比较方便的做法是$DB_HOME下面有jdk的文件夹,下面有和database中load进去的jdk版本一致的jdk工具
4、使用loadjava命令加载class文件
loadjava -u apps/apps -r -f -v d:\Desktop\Oscar.class
arguments: ‘-u’ ‘system/***’ ‘-r’ ‘-f’ ‘-v’ ‘d:\Desktop\Oscar.class’
creating : class Oscar
loading : class Oscar
resolving: class Oscar
Classes Loaded: 1
Resources Loaded: 0
Sources Loaded: 0
Published Interfaces: 0
Classes generated: 0
Classes skipped: 0
Synonyms Created: 0
Errors: 0
5、编写测试用的function
CREATE OR REPLACE FUNCTION oscar_quote RETURN VARCHAR2 AS
LANGUAGE JAVA NAME ‘Oscar.quote() return java.lang.String’;
6、测试PL/SQL function
SELECT oscar_quote FROM dual;
注意:在编译java的时候,我们最好是检查编译的jdk的版本和数据库里面的一致,要不然的话,就出现“ java.lang.UnsupportedClassVersionError”错误