所以我想从我的C#.NET应用程序中调用Oracle存储过程。我能找到的大多数在线参考都提示“使用System.Data.OracleClient;”,但.Net 3.5无法识别该名称空间,因此我使用的是“Oracle.DataAccess.Client”。使用“Oracle.DataAccess”(带参数)在C#中调用Oracle存储过程
这里是我下面的代码一些转述,与先前安装和测试的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和我上周在此工作,所以我感谢您的理解和相对匆忙用搞清楚了这一点
我希望你使用微软客户端。确保你添加了一个引用System.Data.OracleClient.dll – pilotcam 2011-03-21 14:08:44
为什么@pilotcam?微软已经贬低了MS Oracle客户端(System.Data.OracleClient)并建议使用ODP(Oracle.DataAccess.Client)。 http://blogs.msdn.com/b/adonet/archive/2009/06/15/system-data-oracleclient-update.aspx – 2011-03-21 14:18:41