从.net执行Oracle存储过程
本文关键字:存储过程 Oracle 执行 net | 更新日期: 2023-09-27 18:12:21
我正在尝试运行这个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
在过程无参数时也需要空括号
尝试用null;
替换DBMS_OUTPUT.PUT_LINE('Welcome to FYICenter!');
,看看是否有任何不同。我假设在连接上下文中没有意义尝试输出文本,没有控制台。