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

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

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

    氧氣中毒 - J2EE

    爪吐奕奕征途
    posts - 24, comments - 10, trackbacks - 0, articles - 0
       :: 首頁 :: 新隨筆 ::  ::  :: 管理

    使用Java編寫oracle存儲過程

    Posted on 2006-06-14 15:00 氧氣中毒 閱讀(1003) 評論(0)  編輯  收藏 所屬分類: 數據處理
    通常我們都使用pl/sql為oracle編寫存儲過程,從oracle?8開始我們可以有另一種選擇:Java。8.0開始,oracle自帶一個jvm,內置對java的支持,任何java能做的事情你都可以放到oracle里面來做,你甚至可以在里面操作db2。這讓oracle具備了極其巨大的擴展能力,只要你愿意,完全可以開發一個trigger,讓它在適當的時候給管理員的msn發送一條即時消息。

    ????好消息說完了,現在是壞消息:由于pl/sql是過程化的語言,它基本上不具備多態的概念,供oracle使用的java方法必須申明為static,所以在oracle中你無法使用java的動態特性,比如接口、反射等。不過這并不妨礙你用java做愛做的事。

    ????我們以一個簡單的hello?world為例,我想任何一個有經驗的java程序員都能夠通過這個例子,派生出其他希奇古怪的應用,有好的創意記得要與我共享,我的msn是chenzhihuang@yahoo.com.cn

    ????首先是創建一個java類,你可以用jbuilder/eclipse來編寫,也可以直接在oracle的控制臺里面創建。前者不多說,看看后一種方式。

    ????啟動sql?plus,執行如下命令:

    1. create?or?replace?and?compile?java?source?named?"hello_sp"?as
    2. /**
    3. ?*創建oracle存儲過程的java類
    4. ?*@author?zhchen
    5. **/
    6. package?org.bromon.oracle;
    7. public?class?Hello
    8. {
    9. ??public?static?String?say(String?name)
    10. ??{
    11. ????return?"你好,"+name;
    12. ??}
    13. }

    Java以創建。

    然后在oracle中把這個類導入成為一個函數,執行命令:
    1. create?or?replace?function?hello_sp(name?varchar2)?return?varchar2
    2. as?language?java?name?
    3. 'org.bromon.oracle.Hello.say(java.lang.String)?return?java.lang.String';


    函數已創建

    現在可以調用該函數,執行:
    1. select?hello('zhchen')?from?dual;


    返回結果:你好,zhchen

    有一個需要注意的問題是,假如我們的java方法是沒有參數的,比如:
    1. public?static?String?say()
    2. ??{
    3. ????return?"你好”;
    4. ??}

    那么在創建函數的時候,函數名不應該有擴號:hello_sp
    否則會報告函數有編譯錯誤。

    如果你的java類是在IDE里面編寫的,那么只需要在oracle中加載編譯過的class文件即可,方法是:

    啟動enterprise?manage?console,在“方案”下找到“源類型”,右擊”java類”,選擇”加載java“,選擇對應的class文件即可。
    主站蜘蛛池模板: 免费一级一片一毛片| 国产91色综合久久免费| 亚洲免费视频一区二区三区| 久久亚洲色WWW成人欧美| 永久免费AV无码网站在线观看| 国产亚洲精品成人AA片| 搡女人真爽免费视频大全| 中文字幕乱码亚洲无线三区| 女人18毛片特级一级免费视频| 亚洲中文字幕一区精品自拍| 女人被弄到高潮的免费视频 | 亚洲精品午夜国产va久久| 免费99精品国产自在现线| 久久亚洲国产成人影院| 成人毛片手机版免费看| 日韩精品亚洲专区在线影视| 4338×亚洲全国最大色成网站| 成人无码视频97免费| 亚洲午夜未满十八勿入| 国产无人区码卡二卡三卡免费| 亚洲精品又粗又大又爽A片| 亚洲AV无码成H人在线观看| 中国一级特黄的片子免费 | 日韩精品人妻系列无码专区免费 | 青柠影视在线观看免费高清 | 国产乱子精品免费视观看片| 亚洲成A人片在线播放器| avtt亚洲天堂| 日韩中文字幕在线免费观看| 日韩久久无码免费毛片软件| 国产亚洲综合色就色| 青娱分类视频精品免费2| 国产亚洲精品欧洲在线观看| 亚洲高清专区日韩精品| 无码人妻久久一区二区三区免费丨 | 亚洲精品线在线观看| 好大好硬好爽免费视频| 久久免费线看线看| 亚洲欧美日韩国产成人| 国产亚洲精品精华液| 免费无码又爽又刺激高潮的视频 |