java編寫oracle存儲的方法
Java的主要工作是通過編程語言來製作互聯網頁面、製作動態效果以及網站等技術,以下是小編為大家搜索整理的java編寫oracle存儲的方法,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!
通常我們都使用Ps/SQL為Oracle編寫存儲過程,從Oracle 8開始我們可以有另一種選擇:Java。8.0開始,Oracle自帶一個JVM,內置對Java的支持,任何Java能做的事情你都可以放到Oracle裏面來做,你甚至可以在裏面操作db2。這讓Oracle具備了極其巨大的擴展能力,只要你願意,完全可以開發一個trigger,讓它在適當的時候給管理員的msn發送一條即時消息。
好消息説完了,現在是壞消息:由於ps/SQL是過程化的語言,它基本上不具備多態的概念,供Oracle使用的Java方法必須申明為static,所以在Oracle中你無法使用Java的動態特性,比如接口、反射等。不過這並不妨礙你用Java做愛做的事。
我們以一個簡單的hello world為例,我想任何一個有經驗的Java程序員都能夠通過這個例子,派生出其他希奇古怪的應用,有好的創意記得要與我共享,我的'msn是
首先是創建一個Java類,你可以用Jbuilder/Eclipse來編寫,也可以直接在Oracle的控制枱裏面創建。前者不多説,看看後一種方式。
啟動SQL plus,執行如下命令:
create or replace and compile java source named "hello_sp" as
package le;
public class Hello
{
public static String say(String name)
{
return "你好,"+name;
}
}
Java程序已創建。
然後在Oracle中把這個類導入成為一個函數,執行命令:
create or replace function hello_sp(name varchar2) return varchar2
as language java name
'(ng) return ng';
函數已創建
現在可以調用該函數,執行:
select hello('bromon') from dual;
返回結果:你好,bromon
有一個需要注意的問題是,假如我們的java方法是沒有參數的,比如:
public static String say()
{
return "你好”;
}
那麼在創建函數的時候,函數名不應該有擴號:hello_sp,否則會報告函數有編譯錯誤。
如果你的Java類是在IDE裏面編寫的,那麼只需要在oracle中加載編譯過的class文件即可,方法是:
啟動enterprise manage console,在“方案”下找到“源類型”,右擊”Java類”,選擇”加載Java“,選擇對應的class文件即可。
-
2017上半年計算機二級Java練習題及答案
計算機等級證書是我們找工作的敲門磚,現在越來越多人重視計算機等級考試。下面是本站小編為大家帶來的2017上半年計算機二級Java練習題及答案,希望對大家的學習有幫助!一、單選題1、結構化程序設計主要強調的是______。A、程序的規模B、程序的易讀性C、程序的執...
-
java的String=a; a==null和a.equals(null)這兩個判斷有什麼區別
1、String的==與equal()在對字符串的相等判斷,==判斷的是地址是否相同,equal()判斷的是字符值是否相同。大多數時候==跟equal()的結果都是相同的。這是因為String對象是不變模式的,如果你不是明確地new一個String對象,Java對於String對象的保存默認的是會把新生成...
-
Java基本元素詳解
生活呆以是甜的,也可以是苦的,但不能是沒味的。你可以勝利,也可以失敗,但你不能屈服,以下是小編為大家搜索整理了Java基本元素詳解,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!第二章基本元素第一章總結:一平台&JDK&JRE&JVM&A...
-
linux下執行java程序的sh腳本教程
文章主要介紹了linux下執行java程序的sh腳本,僅供參考,但是設置的時候環境變量是最重要的,我就是環境變量一直不對,總是按網上查到的來,不明白怎麼回事,才一直出錯,其實環境變量就是你要執行的java程序所在的位置。接下來是小編為大家收集的linux下執行java程序的sh腳...
相關文章
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別
- Java怎麼編寫Oracle存儲過程
- Java併發編程:深入剖析ThreadLocal
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別