我在SQL Plus裡寫了一個java Source進行測試,以下是全部過程,可運行時總出現method not found的錯誤,請高手幫忙看看: 
1. 創建java source並且編譯通過! 
create or replace and compile java source named testJavaSource as 
public class testJavaSource 

  public static void entry() 
  { 
          System.out.println("entry() been called!"); 
  } 
  public void sayOK(){ 
          System.out.println("Load java source ok!測試成功!"); 
  } 

2. 查詢創建情況: 
SVRMGR> select dbms_java.longname(object_name) name,object_type type,status from user_objects where object_type like 'JAVA%'; 
NAME  TYPE               STATUS 
--------------------------------------------------------------------- 
TESTJAVASOURCE  JAVA SOURCE        VALID 
testJavaSource  JAVA CLASS         VALID 
選取了 2 筆資料列. 
3. 創建procedure呼叫java class並編譯通過! 
create or replace procedure HelloWorld  
as language java name 'testJavaSource.sayOK()'; 
4. 在sql plus裡執行procedure! 
SQL> set serveroutput on size 5000 
SQL> call dbms_java.set_output(5000); 已完成呼叫. 
SQL> execute HelloWorld; 
BEGIN HelloWorld; END; * 
 ERROR 在行 1: 
ORA-29531: no method sayOK in class testJavaSource 
ORA-06512: at "PYE.HELLOWORLD", line 0 
ORA-06512: at line 1 
-------------------------------------------------------------- 
以上,請高手幫忙解決! 
萬分感謝!

解决方案 »

  1.   

    解決了!
    把這段改成這樣:
    create or replace and compile java source named testJavaSource as  
    public class testJavaSource  
    {  
      public static void entry()  
      {  
              System.out.println("entry() been called!");  
      }  
      public static void sayOK(){  
              System.out.println("Load java source ok!測試成功!");  
      }  
    }  
    抄書上抄得太快,以致忘了java是怎麼執行的了^^
    thanks all!