2010-06-01 3 views
0

У меня есть процедура Oracle - editBacklog, которую я вызываю с CFM-страницы через cfstoredproc. После нескольких изменений в процедуре Я начал получать ORA-06550: строка 1, столбец 7: PLS-00306: неправильное количество или типы аргументов при вызове 'EDITBACKLOG'. Я получил это раньше и обнаружил, что если я изменил название процедуры, он снова начнет работать. Я изменил имя на editBacklog2, и он работал так, как я ожидал. Я изменил имя обратно на editBacklog и получил ту же ошибку. Я снова сменил имя на editBacklog2 и начал получать ORA-01003: никакой синтаксический анализ не обрабатывался. НИЧЕГО не изменилось в этот момент, за исключением имен. Я изменил имя еще раз на editBacklog3, и он работает так, как ожидалось.no statement проанализировано и неверно число или типы аргументов - cfstoredproc

Как прямо сейчас
editBacklog = ORA-06550
editBacklog2 = ORA-01003
editBacklog3 = работает (любопытное)

Вся эта вещь началась, когда я пытался исправить ошибки ORA-01821: дата формат не распознанной ошибки. Я боюсь, когда я начну менять вещи, я начну получать такое же хромое поведение, описанное выше.

Либо Oracle, либо CF возится со мной, и я в конечном итоге люблю одного из них из-за этого.

Я предполагаю, что, вероятно, cfstoredproc кэширует метаданные или что-то в этом роде, но ни у Google, ни у живых, ни у OTN есть что сказать о моей ситуации.

Я не SA или DBA.

У кого-нибудь есть идеи?

+0

изменить: изменилось «после нескольких изменений» на «после нескольких изменений в процедуре» только для того, чтобы быть ясным. – Travis

+0

Ну, я уверен, что это проблема кеширования, возможно, с CFStoredProc. Я только что вернулся с обеда, а editBacklog, editBacklog2 и editBacklog3 работают нормально. Как только это произойдет снова, я попытаюсь найти способ очистить кеш и отчитаться. – Travis

ответ

5

ColdFusion кэширует некоторые вещи при работе с базой данных.

два предложения:

  1. Отключения/повторное включение соединения с базой данных в администраторе ColdFusion (Источник данных Дополнительных настроек, отключить Connections флажок)

  2. Перейти в любую администрации модуля у вас есть для вашей базы данных и убейте сеансы из ColdFusion

В любом случае восстановление соединения приведет к тому, что t он сохранил Proc, чтобы его снова кэшировали.

+0

Спасибо, Al. К сожалению, у меня нет доступа к любому из средств администрирования, как я сказал в своем OP. Я не SA или DBA. У меня есть несколько трюков, которые я могу попробовать в следующий раз. – Travis

+0

ColdFusion Administrator не является базой данных. Вы тоже заблокированы? – ale

+0

yes, yes I am ... – Travis