繁体   English   中英

从.NET执行Oracle存储过程

[英]Execute Oracle stored procedure from .NET

我正在尝试运行此C#代码

string sql = @"EXECUTE GETEMPLOYEES1()";

OracleCommand cmd = new OracleCommand(sql, cnn);
cmd.CommandType = CommandType.Text;

cmd.ExecuteNonQuery();

但我不断

无效的SQL错误

我的存储过程代码很简单

CREATE OR REPLACE PROCEDURE GETEMPLOYEES1 
AS 
BEGIN
    DBMS_OUTPUT.PUT_LINE('Welcome to FYICenter!'); 
END;  

我可以使用CommandType = StoredProcedure正常运行它,但是我需要执行用户输入的一些动态代码,而对我来说至关重要的是通过CommandType = Text来执行。

EXECUTE是一个SQL * Plus命令。 使用任一

CALL GETEMPLOYEES1()

要么

BEGIN GETEMPLOYEES1(); END;

同样,如果您选择命令类型StoredProcedure,则库将添加BEGIN ... END; 内部为您服务。

当过程为无参数时, CALL还需要用括号括起来。

尝试替换DBMS_OUTPUT.PUT_LINE('Welcome to FYICenter!'); null; ,看看是否有什么不同。 我假设在连接上下文中没有尝试输出文本的感觉,也没有控制台。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM