我已经在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/

10-12 04:36