国产美女一级毛片精品久久久|婷婷影院在线综合免费视频|最新国产午夜精品视频成人|久久精品九九无码免费

如何運(yùn)用Java編寫Oracle存儲(chǔ)過程?

來源:北大青鳥飛迅校區(qū)|發(fā)布時(shí)間:2013-04-22 16:56:54

  一般我們都使用Ps/SQL為Oracle編寫存儲(chǔ)過程,從Oracle 8開始我們可以有另一種選擇:Java。8.0開始,Oracle自帶一個(gè)JVM,內(nèi)置對(duì)Java的支持,任何Java能做的事情你都可以放到Oracle里面來做,你甚至可以在里面操作db2。這讓Oracle具備了極其巨大的擴(kuò)展能力,只要你愿意,完全可以開發(fā)一個(gè)trigger,讓它在適當(dāng)?shù)臅r(shí)候給管理員的msn發(fā)送一條即時(shí)消息。

  好消息說完了,現(xiàn)在是壞消息:由于ps/SQL是過程化的語言,它基本上不具備多態(tài)的概念,供Oracle使用的Java方法必須申明為static,所以在Oracle中你無法使用Java的動(dòng)態(tài)特性,比如接口、反射等。不過這并不妨礙你用Java做愛做的事。

  我們以一個(gè)簡單的hello world為例,我想任何一個(gè)有經(jīng)驗(yàn)的Java程序員都能夠通過這個(gè)例子,派生出其他希奇古怪的應(yīng)用,有好的創(chuàng)意記得要與我共享。

  首先是創(chuàng)建一個(gè)Java類,你可以用Jbuilder/Eclipse來編寫,也可以直接在Oracle的控制臺(tái)里面創(chuàng)建。前者不多說,看看后一種方式。

  啟動(dòng)SQL plus,執(zhí)行如下命令:

  create or replace and compile java source named "hello_sp" as

  package org.bromon.oracle;

  public class Hello

  {

  public static String say(String name)

  {

  return "你好,"+name;

  }

  }

  Java程序已創(chuàng)建。

  然后在Oracle中把這個(gè)類導(dǎo)入成為一個(gè)函數(shù),執(zhí)行命令:

  create or replace function hello_sp(name varchar2) return varchar2

  as language java name

  'org.bromon.oracle.Hello.say(java.lang.String) return java.lang.String';

  函數(shù)已創(chuàng)建

  現(xiàn)在可以調(diào)用該函數(shù),執(zhí)行:

  select hello('bromon') from dual;

  返回結(jié)果:你好,bromon

  有一個(gè)需要注意的問題是,假如我們的java方法是沒有參數(shù)的,比如:

  public static String say()

  {

  return "你好”;

  }

  那么在創(chuàng)建函數(shù)的時(shí)候,函數(shù)名不應(yīng)該有擴(kuò)號(hào):hello_sp,否則會(huì)報(bào)告函數(shù)有編譯錯(cuò)誤。

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

  啟動(dòng)enterprise manage console,在“方案”下找到“源類型”,右擊“Java類”,選擇“加載Java”,選擇對(duì)應(yīng)的class文件即可。

上一篇:學(xué)習(xí)Java編程語言,三大方面要注意
下一篇:怎樣學(xué)好JAVA編程開發(fā)?

熱門話題

招生熱線: 4008-0731-86 / 0731-82186801

學(xué)校地址: 長沙市天心區(qū)團(tuán)結(jié)路6號(hào)

Copyright © 2006 | 湖南大計(jì)信息科技有限公司 版權(quán)所有

湘ICP備14017520號(hào)-3

關(guān)注我們
在線咨詢
嘿,我來幫您!
土默特右旗| 山阴县| 南乐县| 神农架林区| 阳东县| 盐山县| 深圳市| 右玉县| 隆安县| 双柏县| 固始县| 新津县| 丁青县| 兴仁县| 安多县| 安丘市| 西丰县| 兴国县| 正定县| 淮南市| 青海省| 北宁市| 台山市| 永州市| 嵩明县| 云龙县| 萨迦县| 墨竹工卡县| 西和县| 拉孜县| 泗水县| 宣恩县| 闻喜县| 和静县| 汉寿县| 鹿泉市| 崇阳县| 合肥市| 安义县| 武清区| 监利县|