??????在前一篇文章中簡單介紹了JAVA程序如何調(diào)用Oracle存儲過程的基本語法程序結(jié)構(gòu),?本文將介紹JAVA跟Oracle的另一種關(guān)系,即通過JAVA編寫Oracle存儲過程。
通常情況下,我們都是使用Oracle數(shù)據(jù)庫系統(tǒng)中的ps/sql語句來為oracle編寫各種存儲過程,不過,在Oracle的第八個版本8之后,為我們提供了編寫存儲過程的另一種新的選擇,那就是使用JAVA來編寫Oracle存儲過程。從Oracle8.0版本開始,在Oracle數(shù)據(jù)庫系統(tǒng)中自帶了java虛擬機(jī)jvm,因此使得Oracle內(nèi)置了對JAVA的全面支持,我們在使用JAVA可以實(shí)現(xiàn)的任何功能現(xiàn)在都可以放到Oracle中來實(shí)現(xiàn),當(dāng)然我們也可以在oracle中來操作其他數(shù)據(jù)庫。JAVA的加入讓Oracle展能力得到了升華,我們可以定義一個觸發(fā)器來在進(jìn)行任何數(shù)據(jù)庫操作的時(shí)候?qū)ν饨邕M(jìn)行其他操作的功能。
???下面準(zhǔn)備舉個例子來說明下如何通過JAVA來創(chuàng)建Oracle存儲過程,例子不在于有多高級,功能不在于多完善,我想,如果能從一個簡單例子,引申出去,去繁衍更多的方法,去實(shí)現(xiàn)更多你自己需要的功能,這才是簡單例子的作用。所以,認(rèn)為我寫的簡單,寫的膚淺的人你可以不用看,但是我寫出來就是為了讓任何有JAVA基礎(chǔ)的人都能容易懂得,而從簡單的例子去構(gòu)造出其他的應(yīng)用。個人認(rèn)為,中國軟件界更需要有的程序員素質(zhì),就是能更多幫助那些初學(xué)者,讓他們少走彎路,才能讓我國的IT行業(yè)有更好的發(fā)展,對那些將初學(xué)者的問題拒之千里之外的程序員的做法,在此表示遺憾....
???當(dāng)然,以上是題外話,但是希望能引起大家的思考,,,,能引起在我博客話我發(fā)的內(nèi)容簡單的人的反思。。。
???二、使用JAVA創(chuàng)建Oracle存儲過程
???先看下如何使用JAVA來編寫Oracle存儲過程,我們在Oracle的sql plus中編寫語句。
???Ⅰ、啟動SQL PLUS
???Ⅱ、編寫JAVA類,定義JAVA類別名,本存儲過程為簡單地輸出傳入?yún)?shù)的平方值。
?
create?or?replace?and?compile?java?source?named?
"PF"
?as
/**
?*通過JAVA類來
創(chuàng)建Oracle存儲過程
?*
**/
package
?org.oraclejava.pro;
public
?
class
?javaCreatePro
{
?
public
?
static
?
String
?test(
int
num)
?{
???
return
?num+
"的平方為:
"
+num*num;
?}
}
???Ⅲ、將JAVA類中的方法test創(chuàng)建為一個Oracle函數(shù)方法
create?or?replace?function?PF_FUN(name?integer)?return?varchar2?as?language?java?name?'org.oraclejava.pro.javaCreatePro.test(java.lang.Integer)?return?java.lang.String';?

???Ⅳ、在控制臺直接調(diào)用創(chuàng)建的Oracle函數(shù)
? select?PF_FUN(10)?from?dual;
???Ⅴ、輸出結(jié)果

10的平方為:100
???以上即是在Oracle中的SQL PLUS中使用JAVA程序來產(chǎn)生Oracle存儲過程的演示例子,演示了其基本語法的實(shí)現(xiàn)跟簡單的功能實(shí)現(xiàn),可以看出在JAVA跟Oracle之間存在很多有趣的用法,因?yàn)閛racle中有java虛擬機(jī),使得Oracle變得更加有趣更加豐富多彩。
?????????????????????????????????????????? 轉(zhuǎn)載請注明出處!
?
鳳凰涅槃/浴火重生/馬不停蹄/只爭朝夕
???? 隱姓埋名/低調(diào)華麗/簡單生活/完美人生