Oracle與Mysql數(shù)據(jù)庫存儲過程語法差異化整理

1诸典、創(chuàng)建語法不同
oracle:
CREATE OR REPLACE PROCEDURE 語法創(chuàng)建存儲過程;

mysql:
CREATE PROCEDURE創(chuàng)建崎苗,如果已經(jīng)存在狐粱,只能先DROP舀寓,再CREATE
2、MySQL存儲過程名字后面的”()”是必須的肌蜻,即使沒有一個參數(shù)互墓;MySQL 存儲過程的參數(shù)不能指定默認(rèn)值,不能在參數(shù)名稱前加“@”宋欺;
3轰豆、IN/OUT/INOUT關(guān)鍵字的位置不同
oracle:
參數(shù)類型IN/OUT/INOUT寫在參數(shù)名后面且都不能省略胰伍;

mysql:
參數(shù)類型IN/OUT/INOUT寫在參數(shù)名前面齿诞,如果是IN,則可以省略,如果是OUT或INOUT則不能省略骂租;
4祷杈、變量的聲明的位置不同
oracle:
變量的聲明在BEGIN…END體之前;

mysql:
變量的聲明在BEGIN…END體內(nèi)渗饮,BEGIN關(guān)鍵字之后 其他內(nèi)容之前;
變量名不能和列名相同但汞, MySQL不區(qū)分大小寫;
5互站、退出的關(guān)鍵字不一樣
oracle:
存儲過程和方法都可以使用return退出當(dāng)前過程私蕾;

mysql:
存儲過程中只能使用leave退出當(dāng)前存儲過程,不可以使用return胡桃,如:leave label踩叭;
6、調(diào)用方式不同
oracle:
    存儲過程中調(diào)用存儲過程:直接寫存儲過程名即可翠胰,如:prc_Procedure_Name(參數(shù))容贝,沒有參數(shù)時(shí)可省略“()”;
    java代碼中調(diào)用存儲過程:使用call 關(guān)鍵字之景,如CALL prc_Procedure_Name(參數(shù))斤富,即使沒有一個參數(shù)也需要“()”;

mysql:
    存儲過程中調(diào)用存儲過程:使用call 關(guān)鍵字,如CALL prc_Procedure_Name(參數(shù))锻狗,即使沒有一個參數(shù)也需要“()”;
    java代碼中調(diào)用存儲過程:使用call 關(guān)鍵字满力,如CALL prc_Procedure_Name(參數(shù)),即使沒有一個參數(shù)也需要“()”;
7轻纪、異常處理不同
oracle:
1油额、支持自定義異常,使用raise關(guān)鍵字拋出異常桐磁,如:RAISE Exception_Name;
2悔耘、存儲過程或函數(shù)末尾寫上EXCEPTION后,后面的部分即為異常處理的部分; 如下例:
EXCEPTION
    WHEN OTHERS THEN
    ROLLBACK ;
    ov_rtn_msg := c_sp_name||'('|| li_debug_pos ||'):'||
        TO_CHAR(SQLCODE)||': '||SUBSTR(SQLERRM,1,100);

mysql:
1我擂、不支持自定義異常衬以;
2贪壳、內(nèi)部異常也需要先定義,在定義的同時(shí)也需要實(shí)現(xiàn)異常的功能;如下例:
DECLARE EXIT HANDLER FOR  SQLEXCEPTION 
 BEGIN
    ROLLBACK ;
    set ov_rtn_msg = concat(c_sp_name,'(', li_debug_pos ,'):',
        TO_CHAR(SQLCODE),': ',SUBSTR(SQLERRM,1,100));
 END;
8败晴、包的聲明方式
oracle:
  支持創(chuàng)建包未桥,包下面可以創(chuàng)建多個存儲過程和方法;

mysql:
  沒有包的概念互妓,每個存儲過程和方法都是單獨(dú)的文件溪窒;

擴(kuò)展:
1、Oracle中冯勉,存儲過程可以包括PL/SQL代碼澈蚌,它可以大大減少數(shù)據(jù)庫交互的次數(shù),從而提高數(shù)據(jù)庫性能灼狰。
2宛瞄、MySQL存儲過程支持的語言有SQL和C,而Oracle除了支持這兩種語言外交胚,還支持在存儲過程中使用Java和C++份汗;
3、Oracle存儲過程可以直接使用事務(wù)和鎖蝴簇,因此可以更好地維護(hù)數(shù)據(jù)的完整性杯活。

存儲過程的缺點(diǎn)(MySQL):
1、存儲過程的執(zhí)行效率相對較低熬词,復(fù)雜的邏輯處理會給數(shù)據(jù)帶來負(fù)擔(dān)和性能瓶頸(CPU)旁钧;
2、無法像對待普通SQL語句那樣生成最優(yōu)的執(zhí)行計(jì)劃荡澎,導(dǎo)致存儲過程的執(zhí)行效率較低均践。
3、存儲過程 內(nèi)存 占用高摩幔,會給數(shù)據(jù)庫帶來性能上的影響彤委;
4、可維護(hù)性低或衡,需要在數(shù)據(jù)庫端進(jìn)行維護(hù)和升級焦影,新的存儲過程需要重新編譯,這將占用數(shù)據(jù)庫的大量資源封断,影響其它用戶的操作斯辰;
5、影響范圍大坡疼,存儲過程的代碼出現(xiàn)嚴(yán)重的錯誤彬呻,可能會導(dǎo)致數(shù)據(jù)庫服務(wù)的崩潰;
6、可擴(kuò)展闸氮、平臺移植性低剪况,各個數(shù)據(jù)庫平臺(如oracle、mysql)之間的語法差異較大蒲跨,不便于跨平臺遷移译断;
7、mysql不提供存儲過程的驗(yàn)證或悲、調(diào)試功能孙咪;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市巡语,隨后出現(xiàn)的幾起案子翎蹈,更是在濱河造成了極大的恐慌,老刑警劉巖捌臊,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件杨蛋,死亡現(xiàn)場離奇詭異,居然都是意外死亡理澎,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進(jìn)店門曙寡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來糠爬,“玉大人,你說我怎么就攤上這事举庶≈此恚” “怎么了?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵户侥,是天一觀的道長镀琉。 經(jīng)常有香客問我,道長蕊唐,這世上最難降的妖魔是什么屋摔? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮替梨,結(jié)果婚禮上钓试,老公的妹妹穿的比我還像新娘。我一直安慰自己副瀑,他們只是感情好弓熏,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著糠睡,像睡著了一般挽鞠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天信认,我揣著相機(jī)與錄音串稀,去河邊找鬼。 笑死狮杨,一個胖子當(dāng)著我的面吹牛母截,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播橄教,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼清寇,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了护蝶?” 一聲冷哼從身側(cè)響起华烟,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎持灰,沒想到半個月后盔夜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡堤魁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年喂链,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片妥泉。...
    茶點(diǎn)故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡椭微,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出盲链,到底是詐尸還是另有隱情蝇率,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布刽沾,位于F島的核電站本慕,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏侧漓。R本人自食惡果不足惜锅尘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望火架。 院中可真熱鬧鉴象,春花似錦、人聲如沸何鸡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽骡男。三九已至淆游,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背犹菱。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工拾稳, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人腊脱。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓访得,卻偏偏與公主長得像,于是被迫代替她去往敵國和親陕凹。 傳聞我的和親對象是個殘疾皇子悍抑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評論 2 354

推薦閱讀更多精彩內(nèi)容