<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    即興的靈感

    思維是一種藝術; 藝術需要靈感。

    博客好友

    最新評論

    JAVA與Oracle存儲過程(二)

    ??????在前一篇文章中簡單介紹了JAVA程序如何調用Oracle存儲過程的基本語法程序結構,?本文將介紹JAVA跟Oracle的另一種關系,即通過JAVA編寫Oracle存儲過程 通常情況下,我們都是使用Oracle數據庫系統中的ps/sql語句來oracle編寫各種存儲過程,不過,在Oracle的第八個版本8之后,為我們提供了編寫存儲過程的另一種新的選擇,那就是使用JAVA來編寫Oracle存儲過程。從Oracle8.0版本開始,在Oracle數據庫系統中自帶了java虛擬機jvm,因此使得Oracle內置了對JAVA的全面支持,我們在使用JAVA可以實現的任何功能現在都可以放到Oracle中來實現,當然我們也可以在oracle中來操作其他數據庫。JAVA的加入讓Oracle展能力得到了升華,我們可以定義一個觸發器來在進行任何數據庫操作的時候對外界進行其他操作的功能。
    ???下面準備舉個例子來說明下如何通過JAVA來創建Oracle存儲過程,例子不在于有多高級,功能不在于多完善,我想,如果能從一個簡單例子,引申出去,去繁衍更多的方法,去實現更多你自己需要的功能,這才是簡單例子的作用。所以,認為我寫的簡單,寫的膚淺的人你可以不用看,但是我寫出來就是為了讓任何有JAVA基礎的人都能容易懂得,而從簡單的例子去構造出其他的應用。個人認為,中國軟件界更需要有的程序員素質,就是能更多幫助那些初學者,讓他們少走彎路,才能讓我國的IT行業有更好的發展,對那些將初學者的問題拒之千里之外的程序員的做法,在此表示遺憾....
    ???當然,以上是題外話,但是希望能引起大家的思考,,,,能引起在我博客話我發的內容簡單的人的反思。。。
    ???二、使用JAVA創建Oracle存儲過程
    ???先看下如何使用JAVA來編寫Oracle存儲過程,我們在Oracle的sql plus中編寫語句。
    ???Ⅰ、啟動SQL PLUS
    ???Ⅱ、編寫JAVA類,定義JAVA類別名,本存儲過程為簡單地輸出傳入參數的平方值。

    ? create?or?replace?and?compile?java?source?named? "PF" ?as

    /**

    ?*通過JAVA類來 創建Oracle存儲過程

    ?*

    **/

    package ?org.oraclejava.pro;

    public ? class ?javaCreatePro

    {

    ? public ? static ? String ?test( int num)

    ?{

    ??? return ?num+ "的平方為: " +num*num;

    ?}
    }


    ???Ⅲ、將JAVA類中的方法test創建為一個Oracle函數方法
    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';?
    ???Ⅳ、在控制臺直接調用創建的Oracle函數

    ? select?PF_FUN(10)?from?dual;

    ???Ⅴ、輸出結果
    10的平方為:100

    ???以上即是在Oracle中的SQL PLUS中使用JAVA程序來產生Oracle存儲過程的演示例子,演示了其基本語法的實現跟簡單的功能實現,可以看出在JAVAOracle之間存在很多有趣的用法,因為oracle中有java虛擬機,使得Oracle變得更加有趣更加豐富多彩。

    ?????????????????????????????????????????? 轉載請注明出處!



    ?
    鳳凰涅槃/浴火重生/馬不停蹄/只爭朝夕
    ???? 隱姓埋名/低調華麗/簡單生活/完美人生

    posted on 2008-12-07 23:00 poetguo 閱讀(8534) 評論(13)  編輯  收藏 所屬分類: OracleJAVA

    評論

    # re: JAVA與Oracle存儲過程(二) 2008-12-08 07:59 beyond

    oracle 真牛,支持  回復  更多評論   

    # re: JAVA與Oracle存儲過程(二) 2008-12-08 09:38 caliven

    十分感謝  回復  更多評論   

    # re: JAVA與Oracle存儲過程(二) 2008-12-08 10:15 分享愛的空間

    很有意思,也開闊了我的思路,原來還可以這樣使用oracle,這樣看來,可以解決很多實際應用的問題,比如當某個記錄發生變化時,可以給外面發個信號,用于做一些事情。
    之前,總認為我們只能主動去調用oracle,現在看來oracle也可以自動調用外面的一些服務。
    我也寫了一遍oracle存儲過程的文章(http://www.tkk7.com/jiangjf/archive/2007/12/05/165514.html)
    多交流。  回復  更多評論   

    # re: JAVA與Oracle存儲過程(二)[未登錄] 2008-12-08 16:41 zxbyh

    其實lz應該講一哈為什么要用Java的存儲過程,而不用Pl-sql的存儲過程.

    各自適合什么情況..  回復  更多評論   

    # re: JAVA與Oracle存儲過程(二) 2008-12-11 23:09 wenlin

    DB2也可以,SQL Server 也行啊  回復  更多評論   

    # re: JAVA與Oracle存儲過程(二) 2010-09-01 11:17 612

    受教了,樓主說的好!
    將JAVA類中的方法test創建為一個Oracle函數方法,貌似這個方法不太對?警告: 創建的函數帶有編譯錯誤。  回復  更多評論   

    # re: JAVA與Oracle存儲過程(二) 2011-05-06 16:14 xiaofen

    頁面顯得太亂啦  回復  更多評論   

    # re: JAVA與Oracle存儲過程(二) 2011-06-01 14:42 擇業玩家

    NB  回復  更多評論   

    # re: JAVA與Oracle存儲過程(二)[未登錄] 2011-07-21 09:17 michael

    create or replace function PF_FUN(name number) return varchar2 as
    language java name 'org.oraclejava.pro.javaCreatePro.test(java.lang.Integer) return java.lang.String';

    Integer 改為number 可編譯通過,但是執行的時候,提示無java類  回復  更多評論   

    # re: JAVA與Oracle存儲過程(二)[未登錄] 2012-11-30 10:43

    樓主代碼無法通過系統,找不到JAVA建立的CLASS方法  回復  更多評論   

    # re: JAVA與Oracle存儲過程(二)[未登錄] 2012-11-30 10:52

    樓主不太負責,首先語法就有問題,在ORACLE中根本就不能用INTEGER類型表示整形,改成NUMBER后,編譯JAVA通過了,但調用時候根本找不到CLASS,推測是樓主沒有測試代碼,按自己想象的天馬星空,太不嚴謹了。我們初學者苦惱。
    真不知道,那些稱贊樓主的人,有沒有自己去運行一遍代碼啊????  回復  更多評論   

    # re: JAVA與Oracle存儲過程(二)[未登錄] 2012-11-30 12:19

    確切的說是找到了類,但找不到類中的方法:test
    --------------
    哪位兄弟,指點一下,樓主的代碼中,哪出問題了????
    有網友誰說過,ORACLE中的JAVA,方法命名很重要,不要用"main"來命名方法名,說改了方法名后,就能調用了。但此處,樓主用的是 test 方法名,而且是靜態的,符合要求的。  回復  更多評論   

    # re: JAVA與Oracle存儲過程(二)[未登錄] 2012-11-30 15:59

    知道原因了,樓主以上代碼有2處錯誤,導致無法正確運行。

    仔細觀察包裝語句(即將JAVA包裝成ORACLE函數FUNCTION)
    ---------------------------------------------
    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';

    錯誤1:function PF_FUN(name integer) --ORACLE中沒有integer類型
    該錯誤導致:無法編譯。
    改正為:function PF_FUN(name number)

    錯誤2:org.oraclejava.pro.javaCreatePro.test(java.lang.Integer)
    此處在關聯JAVA類中的方法,回到JAVA源碼一看讓人啼笑皆非
    改正為:org.oraclejava.pro.javaCreatePro.test(int)
    -----------------------

      回復  更多評論   

    主站蜘蛛池模板: 最新中文字幕免费视频| 免费国产成人午夜在线观看| 4hu四虎最新免费地址| 亚洲第一页在线播放| 最近中文字幕2019高清免费| 久久亚洲精品无码VA大香大香| 最近免费中文字幕MV在线视频3| 国产成A人亚洲精V品无码| 久久免费精品视频| 亚洲成无码人在线观看| 免费无码肉片在线观看| 亚洲国产欧洲综合997久久| 免费在线观看亚洲| 精品久久久久久无码免费| 久久久久亚洲av无码专区蜜芽| 6080午夜一级毛片免费看6080夜福利| 亚洲美女大bbbbbbbbb| 毛片A级毛片免费播放| 处破女第一次亚洲18分钟| 亚洲精品国产V片在线观看| 你懂的免费在线观看| 亚洲成人福利网站| 日本免费人成黄页网观看视频| 深夜免费在线视频| 亚洲视频在线观看| 女人与禽交视频免费看| 亚洲免费在线观看| 亚洲欧洲日产v特级毛片| 在线观看免费精品国产| 色播在线永久免费视频网站| 亚洲一区无码中文字幕乱码| 国产aa免费视频| 日韩精品无码免费一区二区三区| 国产成人亚洲综合网站不卡| 亚洲欧洲精品成人久久曰影片 | 久久99九九国产免费看小说| 精品亚洲成A人在线观看青青| 国产精品久久久亚洲| 成人黄18免费视频| 暖暖在线视频免费视频| 亚洲av无码专区在线观看亚|