专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

你知道Oracle中exec和call的区别吗_java

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/7 1:05:01       共计:3573 浏览

你知道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 | ·下一条:你们是多久第一次见面的_java

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有