Итак, я пытаюсь вызвать хранимую процедуру Oracle из своего приложения С# .NET. Большинство онлайн-справок, которые я могу найти, предлагают «использовать System.Data.OracleClient;», но .Net 3.5 не распознает это пространство имен, поэтому вместо этого я использую «Oracle.DataAccess.Client».
Вот некоторый перефраз моего кода ниже, с ранее настроенным и протестированным OracleConnection под названием «myConn», уже заполненным параметром «: arg_myArg» (это число, если это имеет значение):
command.Connection = myConn;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "exec mySchema.myProc(:arg_myArg)"
command.ExecuteNonQuery();
Хитрость в том, что процедура ничего не возвращает, она просто заполняет другую таблицу, из которой я извлекаю данные. Однако, когда я пытаюсь запустить приведенный выше код, я получаю «OracleException» в последней строке и выдает эту ошибку:
ORA-06550: line 1, column 13:
PLS-00103: Encountered the symbol "MYSCHEMA" when expecting one of the following:
:= . ( @ % ;
The symbol ":=" was substituted for "MYSCHEMA" to continue.
Вместо этого удаление «exec» из команды дает эту ошибку:
ORA-06550: line 1, column 8:
PLS-00801: internal error [22503]
ORA-06550: line 1, column 8:
PL/SQL: Statement ignored
Есть идеи? Буду рад прояснить что-нибудь
Это моя первая публикация на stackoverflow.com и моя последняя неделя на этой работе, поэтому я ценю ваше понимание и относительную поспешность в выяснении этого.