Почему я не могу выполнить хранимую процедуру? (OracleException был пойман) - PullRequest
2 голосов
/ 31 января 2011

Это код для подключения к базе данных Oracle.Сбой в последней строке: dbDataAdapter.Fill (dtResult);

private object Execute(CommandType commandType, Common.DATA.SqlCommonExecutionType sqlCommonExecutionType, DbCommand dbCommand)

dbc = dbConnection.CreateCommand();
dbc.CommandType = commandType;
dbc.CommandText = dbCommand.CommandText;
dbc.CommandTimeout = 3600;

if (dbc.Connection.State == ConnectionState.Closed)
   dbc.Connection.Open();

DataTable dtResult = new DataTable();
DbDataAdapter dbDataAdapter = dbProviderFactory.CreateDataAdapter();
dbDataAdapter.SelectCommand = dbc;
dbDataAdapter.Fill(dtResult);

Ошибка «OracleRxception перехвачено:

ORA-06550: line 1, column 7:
PLS-00201: identifier 'RESETUNFINISHEDJOBS' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

У меня есть доступ к базе данных через Oracle SQL *Плюс. Почему я получаю эту ошибку? Отсутствует хранимая процедура на стороне базы данных или это мой код? Есть идеи, как решить эту проблему?

Ответы [ 2 ]

4 голосов
/ 31 января 2011

Вам может потребоваться определить schema.package.storedprocedure (или schema.table) в вашем командном тексте

Вместо:

select * from table

Использование:

select * from schema.table

... и то же самое относится к функциям / хранимым процедурам

Если ваш commandText содержит только хранимую процедуру:

storedprocedurename

Попробуйте:

schema.package.storedprocedurename
1 голос
/ 31 января 2011

Также вы можете использовать общедоступные синонимы.Обычно лучше создать общедоступные синонимы для объекта, чем явно использовать подход «владелец / схема».Пользователю этих объектов не нужно беспокоиться о нотации schema.someObject при таком подходе.

...