【转】loadjava 加载 java class到oracle database

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”错误

共有 0 条评论

Top