【发布时间】:2014-01-01 12:36:48
【问题描述】:
问题
我正在尝试了解 Oracle SQL 命令 CALL 和 EXECUTE 之间的区别。
我一直使用CALL 来启动存储过程,但在与另一位开发人员交谈时,我发现他几乎只使用EXECUTE。我在网上做了一些研究,看看我是否做错了什么,但我没有看到这两个命令之间的明显区别,人们似乎可以互换使用它们。
根据文档,它们看起来非常相似(至少在与存储过程的交互方面)。
- http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_4008.htm
- http://docs.oracle.com/cd/B19306_01/server.102/b14357/ch12022.htm
- http://docs.oracle.com/cd/B28359_01/olap.111/b28126/dml_app_dbms_aw026.htm
看起来CALL 是一个通用的SQL 命令,而EXECUTE 似乎是专有的,所以我倾向于使用CALL 而不是EXECUTE 但是我不知道这意味着什么性能。
问题
- 就启动存储过程而言,一个比另一个更可取吗?有关系吗?
- 如果确实重要,在什么情况下两者都合适?
- 两者之间是否存在性能差异?最佳做法是什么?
【问题讨论】:
-
EXECUTE 是一个 SQL*PLUS 命令。您使用的是什么 SQL 客户端?
-
我们主要使用 TOAD 11.6,两个命令都编译/运行。
-
所以,不会有性能问题。他们只是调用程序。
标签: sql oracle stored-procedures call execute