是否可以使用 commandType = text 来调用使用 System.Data.OracleClient 的存储过程
Is it possible to use commandType = text to call a stored procedure using System.Data.OracleClient
我正在使用 System.Data.OracleClient
通过企业库连接到 Oracle 数据库,我想使用 commandType = Text
调用存储过程,如下所示:
Microsoft.Practices.EnterpriseLibrary.Data.Database database = null;
database = DatabaseFactory.CreateDatabase("DbInstanceName");
System.Data.Common.DbConnection conn = database.CreateConnection();
conn.Open();
commandObj = database.GetSqlStringCommand("execute procName('paramValue1','paramValue2')");
commandObj.CommandType = CommandType.Text;
commandObj.Connection = conn;
returnCode = database.ExecuteNonQuery(commandObj);
我不断收到无效的 SQL 语句错误,想知道是否可以使用 CommandType.Text
调用 Oracle 的存储过程。
我们不能使用CommandType = StoredProcedure
,因为传入的命令字符串包括字符串中存储过程调用的所有参数值。如果这不可能,我将不得不从字符串中解析出每个参数值并将它们放入参数对象中。
这是可能的。我发现我的问题是 "execute" 语句。这对于 Oracle 存储过程是不需要的。
我正在使用 System.Data.OracleClient
通过企业库连接到 Oracle 数据库,我想使用 commandType = Text
调用存储过程,如下所示:
Microsoft.Practices.EnterpriseLibrary.Data.Database database = null;
database = DatabaseFactory.CreateDatabase("DbInstanceName");
System.Data.Common.DbConnection conn = database.CreateConnection();
conn.Open();
commandObj = database.GetSqlStringCommand("execute procName('paramValue1','paramValue2')");
commandObj.CommandType = CommandType.Text;
commandObj.Connection = conn;
returnCode = database.ExecuteNonQuery(commandObj);
我不断收到无效的 SQL 语句错误,想知道是否可以使用 CommandType.Text
调用 Oracle 的存储过程。
我们不能使用CommandType = StoredProcedure
,因为传入的命令字符串包括字符串中存储过程调用的所有参数值。如果这不可能,我将不得不从字符串中解析出每个参数值并将它们放入参数对象中。
这是可能的。我发现我的问题是 "execute" 语句。这对于 Oracle 存储过程是不需要的。