Problem
I'm trying to understand the difference between Oracle SQL commands CALL
and EXECUTE
.
I've been using CALL
to kick off stored procedures but in talking with another developer I found that he almost exclusively uses EXECUTE
. I did some research online to see if I was doing something incorrectly but I'm not seeing the clear distinction between the two commands and people seem to use them interchangeably.
Based on the documentation, they seem remarkably similar (at least in terms of interacting with stored procedures).
- 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
It does look like CALL
is a universal SQL command while EXECUTE
seems to be proprietary so I would be inclined to use CALL
over EXECUTE
but then again I don't know what that means in regards to performance.
Questions
- Is one preferable over the other in terms of kicking off a stored procedure? Does it matter?
- If it does matter, what is a situation where either is appropriate?
- Are there any performance differences between the two? What's best practice?