本帖最后由 feier00 于 2014-07-07 18:04:54 编辑

解决方案 »

  1.   

    class必须放到oracle Server的某一目录下边,并且授权。
    此处授权为目录授权。这里既然用到了外部文件,必然要将class文件放到oracle Server的某一目录下边。
    public class OracleJavaProc
    {
        public static void main(String[] argv)
        {
            System.out.println("It''s a Java Oracle procedure.");
        }
    }
    SQL> grant create any directory to scott;授权成功。SQL> conn scott/[email protected]
    已连接。
    SQL> create or   replace   directory   test_dir   as  ''d:\oracle'';目录已创建。SQL> create or replace java class using bfile(test_dir, ''OracleJavaProc.CLASS'')
      2  /Java 已创建。SQL> create or replace procedure testjavaproc as language java name ''OracleJavaProc.main(java.lang.String[])'';
      2  /过程已创建。SQL> call testjavaproc();调用完成。SQL> execute testjavaproc;PL/SQL 过程已成功完成。SQL> set serveroutput on size 5000
    SQL> call dbms_java.set_output(5000);调用完成。SQL> execute testjavaproc;
    It''s a Java Oracle procedure.