Pls 00382 выражение неправильного типа

Обновлено: 22.12.2024

Выполнение с помощью:

beetri 13 Мар 2014 в 21:47

2 ответа

Лучший ответ

Строка 25 вашего анонимного блока выглядит так:

P_ORA_ROWSCN определяется как NUMBER . localtimestamp возвращает TIMESTAMP . Неявного преобразования из TIMESTAMP в NUMBER нет, поэтому преобразование не выполняется. Для меня не очевидно, что вы хотите использовать для инициализации P_ORA_ROWSCN . Обычно я предполагаю, что это должно происходить из псевдостолбца ORA_ROWSCN определенной строки из определенной таблицы. Но может ты хочешь dbms_flashback.get_system_change_number ? Или, может быть, вы используете ROWSCN , но на самом деле не имеете в виду номер изменения системы Oracle (SCN).

Между прочим, опубликованное вами определение пакета не будет компилироваться, потому что оно использует тип g_cursor , который не определен в пакете. Может быть, вы удалили это, когда разместили определение пакета? Поскольку ваш анонимный блок, похоже, ожидает, что этот тип будет объявлен в этом пакете.

Justin Cave 13 Мар 2014 в 18:22

Мы не можем сказать, в каком именно поле возникает эта проблема, поскольку мы не знаем структуру вашей таблицы, но я могу сказать следующее:

Очевидно, существует проблема с типом данных одного из полей, которые вы передаете в свою процедуру.

Я бы посоветовал поработать, чтобы передать в процедуру тот же тип параметра, что и в вашей таблице.

Читайте также: