gpt4 book ai didi

c# - 使用 "Oracle.DataAccess"(带参数)在 C# 中调用 Oracle 存储过程

转载 作者:行者123 更新时间:2023-11-30 14:17:52 27 4
gpt4 key购买 nike

所以我试图从我的 C# .NET 应用程序调用 Oracle 存储过程。我能找到的大多数在线引用资料都建议“使用 System.Data.OracleClient;”,但 .Net 3.5 无法识别该命名空间,因此我改用“Oracle.DataAccess.Client”。

下面是我的代码的一些释义,其中一个名为“myConn”的先前设置和测试的 OracleConnection 已经填充了参数“:arg_myArg”(如果重要的话,它是一个数字):

command.Connection = myConn;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "exec mySchema.myProc(:arg_myArg)"
command.ExecuteNonQuery();

诀窍是程序在设计上不返回任何内容,它只是填充我从中提取的不同表。但是,当我尝试运行上面的代码时,在最后一行出现“OracleException”并给出此错误:

ORA-06550: line 1, column 13:
PLS-00103: Encountered the symbol "MYSCHEMA" when expecting one of the following:

:= . ( @ % ;
The symbol ":=" was substituted for "MYSCHEMA" to continue.

从命令中删除“exec”会出现此错误:

ORA-06550: line 1, column 8:
PLS-00801: internal error [22503]
ORA-06550: line 1, column 8:
PL/SQL: Statement ignored

有什么想法吗?我很乐意澄清任何事情

这是我第一次在 stackoverflow.com 上发帖,也是我在这份工作中的最后一周,所以我感谢你的理解和相对快速地解决这个问题

最佳答案

我认为你需要这样的东西

command.Connection = myConn;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "mySchema.myProc"; // the proc name
command.Parameters.Add(/* TODO: Add parameter here */);
command.ExecuteNonQuery();

关于c# - 使用 "Oracle.DataAccess"(带参数)在 C# 中调用 Oracle 存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5378683/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com