Pls 00382 выражение неправильного типа
Обновлено: 22.12.2024
Выполнение с помощью:
beetri 13 Мар 2014 в 21:472 ответа
Лучший ответСтрока 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Мы не можем сказать, в каком именно поле возникает эта проблема, поскольку мы не знаем структуру вашей таблицы, но я могу сказать следующее:
Очевидно, существует проблема с типом данных одного из полей, которые вы передаете в свою процедуру.
Я бы посоветовал поработать, чтобы передать в процедуру тот же тип параметра, что и в вашей таблице.
Читайте также: