我已经在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#中正确调用它?
谢谢。
最佳答案
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;");
关于c# - 如何使用PetaPoco从Oracle调用存储过程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26956498/