带参数的C#OracleCommand SQL调用过程
我想从C#调用(Oracle)过程。我的代码:带参数的C#OracleCommand SQL调用过程,c#,sql,oracle,parameters,C#,Sql,Oracle,Parameters,我想从C#调用(Oracle)过程。我的代码: try { OracleConnection myOracleConnection = new OracleConnection(connectionString); myOracleConnection.Open(); OracleCommand command = myOracleConnection.CreateCommand(); command.CommandText = String.Format("BE
try
{
OracleConnection myOracleConnection = new OracleConnection(connectionString);
myOracleConnection.Open();
OracleCommand command = myOracleConnection.CreateCommand();
command.CommandText = String.Format("BEGIN MISSINGTABLES ('{0}', '{1}'); END;", "PEKA_ERP_001", "ASE_ERP_001");
command.CommandType = System.Data.CommandType.Text;
command.ExecuteNonQuery();
myOracleConnection.Close();
}
catch (OracleException e)
{
throw e;
}
catch (Exception e)
{
throw e;
}
程序如下:
CREATE OR REPLACE PROCEDURE MISSINGTABLES (S1 IN VARCHAR2, S2 IN VARCHAR2) AS
BEGIN [...]
在command.ExecuteOnQuery()上代码>我得到一个异常..:
PL/SQL: Statement ignored
OracleException Unhandled
我做错了什么?做了:)
为什么要连接一个字符串而不使用?因为我真的不知道如何使用参数。你可以看到,我需要他们之间的->开始。。。结束声明。那么如何做占位符呢?网上有很多教程,你问之前搜索过吗?sry伙计们,下次,我会搜索;)做到了
OracleCommand command = myOracleConnection.CreateCommand();
command.CommandText = "MISSINGTABLES";
command.Parameters.Add(new OracleParameter("S1", OracleType.VarChar)).Value = "PEKA_ERP_001";
command.Parameters.Add(new OracleParameter("S2", OracleType.VarChar)).Value = "ASE_ERP_001";
command.CommandType = System.Data.CommandType.StoredProcedure;
command.ExecuteNonQuery();
myOracleConnection.Close();