我正在尝试从我的C# .NET应用程序中调用Oracle存储过程。大多数在线参考资料都建议使用"using System.Data.OracleClient;",但是.NET 3.5不识别该命名空间,因此我改用"Oracle.DataAccess.Client"。
以下是我的代码概述,之前设置并测试过的OracleConnection称为'myConn',已填充参数':arg_myArg'(它是一个数字,如果有影响的话):
这个技巧在于该过程设计上并不返回任何结果,它只是填充了一个我从中提取数据的不同表。但是,当我尝试运行上面的代码时,最后一行会出现'OracleException'错误,并显示以下错误信息:
将命令中的 "exec" 移除后,将出现以下错误:
以下是我的代码概述,之前设置并测试过的OracleConnection称为'myConn',已填充参数':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上发布问题,也是我在这份工作的最后一周,所以感谢您的理解和相对迅速地解决问题。