oracle 执行java_oracle调用JAVA类的方法
oracle調用JAVA類的方法主要有以下三種:
1. 用loadjava方法裝載;
可能是調試方便,據說這種方法比較通用。
c:\test\hello.java
public class hello
{
public static void main(String[]
args)
{
System.out.println("Hello");
hello
h = new hello();
h.insertM(9);
}
public static
void insertM(int pid)
{
System.out.println("This is the
method insertM.");
}
}
C:\test>loadjava -u test/test@mydb -v -resolve
hello.java
SQL> create procedure prc_hehe as language java name
'hello.main(java.lang.String[])
2? /
過程已創建。
SQL> call prc_hehe();
調用完成。
SQL> set serveroutput on size 2000
SQL> call prc_hehe();
調用完成。
SQL> exec dbms_java.set_output(2000);
PL/SQL 過程已成功完成。
SQL> call prc_hehe();
Hello
This is the method insertM.
調用完成。
SQL>show errors;
修改java類,先刪除再裝載,方法:
dropjava -u test/test@mydb -v -resolve
hello.java
loadjava -u test/test@mydb -v -resolve
hello.java
2. 用sql語句創建
create or replace and compile java source named hehe
AS
public class
hello
{
public static void msg(String
name)
{
System.out.println("hello,"+name);
}
};
create or replace procedure
prc_hehe
(
p_name
VARCHAR2
)
as
language java name 'hello.msg(java.lang.String)';
/
-- 調用結果
SQL> call prc_hehe('oopp');
hello,oopp
3. 用外部class文件來裝載創建
create or replace directory CLASS_DIR? as 'c:\test';
create or replace java class using bfile(class_dir,'hello.class');
create or replace procedure
prc_hello
(
p_name
VARCHAR2
)
as
language java name 'hello.msg(java.lang.String)';
-- 測試結果
SQL> call prc_hello('java');
java
4. 可能出現的錯誤
SQL> call prc_hello('Jerry');
call
prc_hello('Jerry')
*
第 1 行出現錯誤:
ORA-29516:
Aurora 斷言失敗: Assertion failure at eox.c:359
Uncaught exception System
error:?? java/lang/UnsupportedClassVersionError
原因:機器裝了多個java版本,oracle的java版本低于環境變量設置的版本。
解決方法:用$ORACLE_HOME/jdk/javac 重新編譯java文件
-- The End --
總結
以上是生活随笔為你收集整理的oracle 执行java_oracle调用JAVA类的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java位宽_Java的数据类型
- 下一篇: 著名经济学家厉以宁先生逝世 北大光华管理