问题
我想了解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
,但我不知道这对性能有何影响。
问题
- 在启动存储过程方面,是否有一种优于另一种?有关系吗?
- 如果关系到,有什么情况下两者都适用?
- 它们之间有任何性能差异吗?最佳实践是什么?