Можно ли использовать commandType = text для вызова хранимой процедуры с использованием System.Data.OracleClient

Я использую System.Data.OracleClient для подключения к базе данных Oracle с помощью библиотеки Enterprise, и я хотел бы вызвать хранимую процедуру с помощью 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)


Это возможно. Я обнаружил, что моя проблема заключается в операторе «выполнить». Это не требуется для хранимых процедур Oracle.

person ptn77    schedule 26.09.2017