Можно ли использовать 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 ответ

Решение

Это возможно. Я обнаружил, что моей проблемой является оператор "execute". Это не требуется для хранимых процедур Oracle.