欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

你知道Oracle中exec和call的區別嗎

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

你知道Oracle中exec和call的區別嗎?

1、先執行個測試Sql,檢查一下環境。

環境OK。

SQL:

select sysdate from dual

2、call:

使用call 調用一個系統函數dbms_output.put_line。

可以看到,可以正常執行,并且得到預期的執行結果。

SQL:

set serveroutput on;--用來看到函數的輸出

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

3、exec:

使用exec調用一個系統函數dbms_output.put_line。

可以看到,執行時報錯了ORA-00900。

SQL:

execdbms_output.put_line('use key exec');

4、小結:

call可以和sql一樣執行;

exec不是sql的關鍵字,不能像sql一樣執行。

小貼士:

exec就是execute的縮寫了

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

客官稍等,馬上就來:

SQL*Plus上場!!!

命令:

sqlplus / as sysdba;

6、重復在Oracle SQL Developer中操作。

可以看到都成功了!

因為在實際的數據庫開發中,不可能在Oracle SQL Developer中執行。

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

這樣就分不出來這兩個關鍵字的區別了。

7、再往里面看看,這兩個關鍵詞的區別。

call 在Oracle實際執行時沒有變化。因為本來就是Oracle的關鍵字

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

SQL:

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

java中put,你知道Oracle中exec和call的區別嗎