利用Java編寫Oracle存儲過程


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類 
Java代碼 
create or replace and compile java source named TestJava1 as   
public class TestJava1   
{   
  public static void test()   
  {   
   System.out.println("Hello");   
  }   
}  

create or replace and compile java source named TestJava1 as
public class TestJava1
{
  public static void test()
  {
   System.out.println("Hello");
  }
}
執行它,以保存並編譯。 

--2.增加一個procedure,執行如下命令: 
Java代碼 
create or replace procedure testJava1 as language java name 'TestJava1.test()';  

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

--3.在command window里輸入: 
Java代碼 
SET SERVEROUTPUT ON;   
CALL dbms_java.set_output(2000);  

SET SERVEROUTPUT ON;
CALL dbms_java.set_output(2000);
以使System.out重定向到當前窗口; 
在command window里輸入,exec testJava1(); 
即可看到結果: 

Hello 

PL/SQL procedure successfully completed 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM