色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

你知道Oracle中exec和call的區(qū)別嗎

錢多多2年前41瀏覽0評論

你知道Oracle中exec和call的區(qū)別嗎?

1、先執(zhí)行個測試Sql,檢查一下環(huán)境。

環(huán)境OK。

SQL:

select sysdate from dual

2、call:

使用call 調(diào)用一個系統(tǒng)函數(shù)dbms_output.put_line。

可以看到,可以正常執(zhí)行,并且得到預(yù)期的執(zhí)行結(jié)果。

SQL:

set serveroutput on;--用來看到函數(shù)的輸出

call dbms_output.put_line('use key call');

3、exec:

使用exec調(diào)用一個系統(tǒng)函數(shù)dbms_output.put_line。

可以看到,執(zhí)行時報錯了ORA-00900。

SQL:

execdbms_output.put_line('use key exec');

4、小結(jié):

call可以和sql一樣執(zhí)行;

exec不是sql的關(guān)鍵字,不能像sql一樣執(zhí)行。

小貼士:

exec就是execute的縮寫了

5、說好的call和exec很像,很曖昧了。在哪了

客官稍等,馬上就來:

SQL*Plus上場?。?!

命令:

sqlplus / as sysdba;

6、重復(fù)在Oracle SQL Developer中操作。

可以看到都成功了!

因為在實際的數(shù)據(jù)庫開發(fā)中,不可能在Oracle SQL Developer中執(zhí)行。

大多數(shù)是在PL/SQL腳本中,其它語言,譬如java的代碼中執(zhí)行。

這樣就分不出來這兩個關(guān)鍵字的區(qū)別了。

7、再往里面看看,這兩個關(guān)鍵詞的區(qū)別。

call 在Oracle實際執(zhí)行時沒有變化。因為本來就是Oracle的關(guān)鍵字

exec 在Oracle實際執(zhí)行時,轉(zhuǎn)換成begin exec后面跟的語句塊 end; 可以理解為Oracle為方便使用而引入的語法糖吧。

SQL:

select sql_text from v$sql where sql_text like '%目標(biāo)語句中帶的特殊字符%';

java中put,你知道Oracle中exec和call的區(qū)別嗎