如何使用PetaPoco从Oracle调用存储过程

时间:2014-11-16 11:40:23

标签: c# oracle oracle-sqldeveloper petapoco

我在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#中正确调用它?

感谢。

1 个答案:

答案 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;");