是否可以使用commandType = text来使用System.Data.OracleClient调用存储过程

时间:2017-09-06 15:43:14

标签: oracle enterprise-library data-access-layer oracleclient system.data.oracleclient

我使用System.Data.OracleClient使用Enterprise库连接到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,因为传入的命令字符串包含字符串中存储过程调用的所有参数值。如果这是不可能的,我将不得不从字符串中解析出每个参数值并将它们放入参数对象中。

1 个答案:

答案 0 :(得分:0)

这是可能的。我发现我的问题是“执行”语句。 Oracle存储过程不需要这样做。