編寫JAVA儲存過程

csbin發表於2006-12-05

 

用Java編寫Oracle儲存過程

關鍵字: Database

Oracle裡可以使用多種語言來編寫儲存過程,比如Pro*C/C++,PL/SQL,COBOL,在Oracle8i開始支援用Java編寫儲存過程。

如果非要寫儲存過程的話,做為以Java謀生的我,首選用Java編寫,用PL/SQL需要記憶很多的語法(Pascal類的語法)和函式,遠不如使用Java/JDBC這麼輕車熟路。而且,DB2等資料庫都支援Java儲存過程,所以不比為每一種資料學習一種編寫儲存過程的方法了。

Java儲存過程與一般的JDBC程式有所不同的是:
1.有安全限制,畢竟是在oracle內部執行的,不允許訪問作業系統的資源,如檔案。
2.獲取資料庫聯接方式,connection = new OracleDriver().defaultConnection();
3.System.out,System.err,System.in等輸入輸出有所不同。可以利用某些命令重定向。

下面用Java 儲存過程寫一個Hello World的例子。
1)在plsqldeveloper裡,java source裡增加一個TestJava1類,

程式碼
  1. create or replace and compile java source named TestJava1 as
  2. public class TestJava1
  3. {
  4. public static void test()
  5. {
  6. System.out.println("Hello");
  7. }
  8. }

執行它,以儲存並編譯。

2)增加一個procedure,執行如下命令:

程式碼
  1. create or replace procedure testJava1 as language java name 'TestJava1.test()';

3)在command window裡輸入

程式碼
  1. SET SERVEROUTPUT ON;
  2. CALL dbms_java.set_output(2000);

以使System.out重定向到當前視窗;
在command window裡輸入,exec testJava1();
即可看到結果:

Hello

PL/SQL procedure successfully completed

參考資料:
Oracle? Database Java Developer's Guide http://download-west.oracle.com/docs/cd/B19306_01/java.102/b14187/toc.htm
Sample:
http://www.oracle.com/technology/sample_code/tech/java/jsp/oracle9ijsp.html

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

相關文章