我在Oracle中存储过程
CREATE OR REPLACE PROCEDURE proc1 (p_param1 INTEGER, p_param2 CHAR, p_param3 INTEGER)
AS
BEGIN
...
END;
我在Oracle SQL Developer中使用以下语句调用它:
EXECUTE proc1(2013, 1, 3);
我尝试在Visual Studio中使用C#调用它,但它不起作用
_db.Execute("EXEC proc1 (2013, 1, 3)");
如何在C#中正确调用它?
感谢。
答案 0 :(得分:2)
EXEC
是SQL * Plus的命令。尝试使用不带EXEC
的命令或匿名PL / SQL块:
_db.Execute("proc1 (2013, 1, 3)");
或
_db.Execute("begin proc1 (2013, 1, 3); end;");
此外,在这种情况下,1
可以自动转换为CHAR,而在其他情况下,您需要使用引号''
:
_db.Execute("begin proc1 (2013, 'abc', 3); end;");