這幾天存儲(chǔ)過程應(yīng)用的點(diǎn)滴
Posted on 2007-08-14 19:01 久城 閱讀(981) 評(píng)論(4) 編輯 收藏 所屬分類: 數(shù)據(jù)庫(kù)學(xué)習(xí)最近在應(yīng)用oracle的存儲(chǔ)過程,積累點(diǎn)滴,有待指教。
1. sql的執(zhí)行順序是從右(下)向左(上)的,所以當(dāng)有多個(gè)判斷條件的時(shí)候,斷言的判斷條件放在右(下)邊。
2. 通常情況下,聯(lián)合查詢要比子查詢的效率更高。
3. 在存儲(chǔ)過程中,select column_name from table_name, 這個(gè)語(yǔ)句會(huì)報(bào)錯(cuò)的。查詢語(yǔ)句通常是:
(1)column_name后接into,目的是為了取表中的某個(gè)值。
(2)放在游標(biāo)中,目的是為了取結(jié)果集。
4. 在select a into b的時(shí)候,通常要先判斷一下a是否為null,如果a為null程序會(huì)報(bào)錯(cuò)。
比如:select nvl(a,0) into b from ...
5. 創(chuàng)建存儲(chǔ)過程的時(shí)候,盡量不要養(yǎng)成create or replace procedure xxx...這種習(xí)慣。or replace有時(shí)很危險(xiǎn)。
6. 起別名的時(shí)候,不用as,且別名不能和字段名稱相同。
7. 參數(shù)名不要和字段名相同。
8. 執(zhí)行一條字符串語(yǔ)句:
var_sql := 'update tabletest ......';
execute immediate to_char(var_sql);
8. JAVA調(diào)用存儲(chǔ)過程:研究CallableStatement這個(gè)類,一切搞定。很多框架都對(duì)它進(jìn)行了封裝。
9. 執(zhí)行存儲(chǔ)過程。
1)SQL命令。exec procedure_name(...)。
2)在PL/SQL語(yǔ)句中,直接把存儲(chǔ)過程名寫在begin..end之間。begin procedure_name(...); end;
歡迎來訪!^.^!
本BLOG僅用于個(gè)人學(xué)習(xí)交流!
目的在于記錄個(gè)人成長(zhǎng).
所有文字均屬于個(gè)人理解.
如有錯(cuò)誤,望多多指教!不勝感激!