Я пытаюсь запустить этот динамический SQL (используя EXECUTE IMMEDIATE
)
M_SQL_STATEMENT := 'SELECT MAX(:m_var1)+1 from :m_var2 RETURNING MAX(:m_var1)+1 INTO :m_var3';
EXECUTE IMMEDIATE M_SQL_STATEMENT
USING M_COLUMN_NAME, UPPER(P_TABLE_NAME), M_COLUMN_NAME
RETURNING INTO M_SEQ_NUMBER;
Однако, пытаясь запустить это, я продолжаю сталкиваться с
ORA-00903: Invalid table
P_TABLE_NAME - это имя таблицы, которое принимается в качестве ввода. Я подтвердил, что имя таблицы и имя столбца являются действительными. Я не могу понять, почему Oracle выдает ошибку.
FWIW Изменение оператора SQL на
M_SQL_STATEMENT := 'SELECT MAX(:m_var1)+1 SEQ from :m_var2 RETURNING SEQ INTO :m_var3';
по-прежнему приводит к той же ошибке.