我有一个带有signiture的oracle存储过程:(包的一部分:承包商)
PROCEDURE usp_sel_contractors(g_contractors OUT sel_contractor);
我试图执行它:
execute Contractor.usp_sel_contractors;
我习惯了MSSqlServer。这似乎应该是向前发展的。
我一直收到错误:
Invalid Sql Statement
谢谢!
答案 0 :(得分:3)
假设sel_contractor是引用游标类型,您可以在SQL Plus中执行此操作:
var rc refcursor
exec usp_sel_contractors(:rc)
print rc
答案 1 :(得分:1)
我不确定为什么你会得到那个特定的错误信息,但显而易见的问题是该过程有一个参数而你没有传递一个。由于它是一个OUT参数,您需要传递一个适当类型的变量,该变量将由过程填充。
例如:
DECLARE
my_contractors sel_contractor;
BEGIN
usp_sel_contractors( my_contractors );
// Do something with the contents of my_contractors here
END;
/