Oracle里可以使用多種語言來編寫存儲過程,比如Pro*C/C++,PL/SQL,COBOL,在Oracle8i開始支持用Java編寫存儲過程。
如果非要寫存儲過程的話,做為以Java謀生的我,首選用Java編寫,用PL/SQL需要記憶很多的語法(Pascal類的語法)和函數(shù),遠不 如使用Java/JDBC這么輕車熟路。而且,DB2等數(shù)據(jù)庫都支持Java存儲過程,所以不比為每一種數(shù)據(jù)學(xué)習(xí)一種編寫存儲過程的方法了。
Java存儲過程與一般的JDBC程序有所不同的是:
1.有安全限制,畢竟是在oracle內(nèi)部運行的,不允許訪問操作系統(tǒng)的資源,如文件。
2.獲取數(shù)據(jù)庫聯(lián)接方式,connection = new OracleDriver().defaultConnection();
3.System.out,System.err,System.in等輸入輸出有所不同??梢岳媚承┟钪囟ㄏ?。
下面用Java 存儲過程寫一個Hello World的例子。
1)在plsqldeveloper里,java source里增加一個TestJava1類,
Java代碼
執(zhí)行它,以保存并編譯。
2)增加一個procedure,執(zhí)行如下命令:
Java代碼
3)在command window里輸入
Java代碼
以使System.out重定向到當前窗口;
在command window里輸入,exec testJava1();
即可看到結(jié)果:
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
如果非要寫存儲過程的話,做為以Java謀生的我,首選用Java編寫,用PL/SQL需要記憶很多的語法(Pascal類的語法)和函數(shù),遠不 如使用Java/JDBC這么輕車熟路。而且,DB2等數(shù)據(jù)庫都支持Java存儲過程,所以不比為每一種數(shù)據(jù)學(xué)習(xí)一種編寫存儲過程的方法了。
Java存儲過程與一般的JDBC程序有所不同的是:
1.有安全限制,畢竟是在oracle內(nèi)部運行的,不允許訪問操作系統(tǒng)的資源,如文件。
2.獲取數(shù)據(jù)庫聯(lián)接方式,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");??
- ?? }??
- }??
執(zhí)行它,以保存并編譯。
2)增加一個procedure,執(zhí)行如下命令:
Java代碼

- create or replace procedure testJava1 as language java name 'TestJava1.test()';??
3)在command window里輸入
Java代碼

- SET SERVEROUTPUT ON;??
- CALL dbms_java.set_output(2000);??
以使System.out重定向到當前窗口;
在command window里輸入,exec testJava1();
即可看到結(jié)果:
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
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
