oracle中java source的使用

dengxm發表於2011-06-20
鑑於java相比oracle procedure 更為強大的計算能力,呵呵,個人認為哈
梳理一下這個不太常用的java source。
 
CREATE OR REPLACE AND COMPILE  JAVA  SOURCE  NAMED helloworld
  AS
public   class   helloworld {
  
   public   static   void   db_run (){
   system.out.println( 'hello   world');
  }
}

--ORA-00904: "SYS"."DBMS_JAVA"."SHORTNAME": invalid identifier
這是什麼提示啊?不太對吧
 
處理辦法:
SQL> set echo on
SQL> spool jvminst.log
SQL> @?/javavm/install/initjvm.sql;
SQL> spool off
------------------------------------------------------------------------------------------
一、建立java source
SQL> CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED GETTIMESTAMP
  2    as
  3    import java.lang.String;
  4    import java.sql.Timestamp;
  5    import java.text.SimpleDateFormat;
  6     public class timestamptest
  7      {
  8       public static String gettimestamp() {
  9       SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 定義格式,不顯示毫秒
 10       Timestamp now = new Timestamp(System.currentTimeMillis());// 獲取系統當前時間
 11       return df.format(now);
 12       }
 13     };
 14    /

------------------------------------------------------------------------------------------
二、建立Oracle過程或函式來指定呼叫特定的Java Source
SQL> CREATE OR REPLACE FUNCTION MyTimeStamp RETURN VARCHAR2 IS
  2  LANGUAGE JAVA NAME 'timestamptest.gettimestamp() return java.lang.String';
  3  /
Function created.
------------------------------------------------------------------------------------------------
三、呼叫Oracle過程或函式
SQL> select MyTimeStamp,to_char(sysdate,'yyyy-mm-dd') ORACLE_TIME from dual;
MYTIMESTAMP
--------------------------------------------------------------------------------
ORACLE_TIME
---------------------------------------------------------------------------
2011-06-20 21:30:01
2011-06-20

注意:
嚴格遵守大小寫,建議在eclipse中完成java source部分的編寫,避免在toad中編寫使用格式化工具。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13726712/viewspace-700334/,如需轉載,請註明出處,否則將追究法律責任。

相關文章