Я постоянно сталкиваюсь с проблемой, связанной со следующей процедурой PL/SQL. Мне нужны переменные для создания динамического оператора SQL, но мне также нужна вложенная таблица.Вложенная таблица и EXECUTE IMMEDIATE
l_code list_code := list_code();
l_code := PKG_DATA.GET_CODES(in_code) ;
v_sql := 'SELECT ' || in_var_name ||'
FROM view
WHERE supplier = '||in_supplier ||'
AND factory = '|| in_factory ||'
AND code IN ('|| (SELECT * FROM TABLE(l_code))||') ';
EXECUTE IMMEDIATE v_sql
INTO v_value;
v_value является вложенной таблицей
[Ошибка] PLS-00103 (60: 46): PLS-00103: Встречающийся символ "SELECT" когда ожидается одно из следующих действий:
(- + корпус мод новый не нулевой продолжить, [Error] PLS-00103 (60: 74): PLS-00103: Обнаружен символ ")" когда ожидается один из следующее:
,; для как группа с пересечением минус порядок начала союза wh
У кого-нибудь есть идея или отрезанная?
ТНХ
спасибо, это работает ! :) –
Единственная ошибка в вашем коде: 'EXECUTE IMMEDIATE v_sql using in_supplier, in_factory, in_code INTO v_value; . Исправлено: «ВЫПОЛНИТЬ IMMEDIATE v_sql INTO v_value, используя in_supplier, in_factory, in_code; ' –
@michael Хорошо, спасибо – Multisync