as 后边跟上java源程序要求类的方法必须是public static的才能用于存储过程
SQL> create or replace and compile java source named javademo
as
import javasql*;
public class JavaDemo
{
public static void main(String[] argv)
{
Systemoutprintln(hello java demo);
}
}
/
Java 已创建
SQL> show errors java source javademo
没有错误
SQL> create or replace procedure javademo
as
language java name JavaDemomain(javalangString[]);
/
过程已创建
SQL> set serveroutput on
SQL> call javademo();
调用完成
SQL> call dbms_javaset_output();
调用完成
SQL> call javademo();
hello java demo
调用完成
SQL> call javademo();
hello java demo
调用完成
使用外部class文件来装载创建
eg 这里既然用到了外部文件必然要将class文件放到oracle Server的某一目录下边
public class OracleJavaProc
{
public static void main(String[] argv)
{
Systemoutprintln(Its a Java Oracle procedure);
}
}
SQL> grant create any directory to scott;
授权成功
SQL> conn scott/tiger@iiherooracledb
已连接
SQL> create or replace directory test_dir as d:\oracle;
目录已创建
SQL> create or replace java class using bfile(test_dir OracleJavaProcCLASS)
/
Java 已创建
SQL> create or replace procedure testjavaproc as language java name OracleJavaProcmain(javalangString[]);
/
过程已创建
SQL> call testjavaproc();
调用完成
SQL> execute testjavaproc;
PL/SQL 过程已成功完成
SQL> set serveroutput on size
SQL> call dbms_javaset_output();
调用完成
SQL> execute testjavaproc;
Its a Java Oracle procedure