2016-07-06 3 views
0

внутри хранимой процедуры У меня есть связанный SQL-запрос. это включает в себя большой случай Expression в избранной части. на самом деле все работает нормально, когда выполняется немедленное выполнение команд. теперь я хочу сделать этот оператор более понятным для чтения пакетом этого большого случая. Выражение в функции, но все, что я попробую, Fails. можно ли вообще вызывать функции внутри динамических SQL?использовать вызов функции в динамическом выражении SQL

+0

Tag СУБД используется. – jarlh

+0

Да, но это без кода или ошибок. Не могу помочь. – kevinsky

+0

Используйте 'dbms_output.put_line', чтобы проверить свой динамический sql и запустить его в отдельном блоке, чтобы узнать, какие ошибки вы получите, и как вы можете их исправить. –

ответ

0

если вы используете 12с и вы только с помощью этой функции для этого SQL заявления вы можете использовать/SQL декларацию раздел PL в спецификаторе вашего SQL заявления

Declare 
myvariable number; 
Begin 

    EXECUTE IMMEDIATE' 
    WITH 
     FUNCTION with_function(p_id IN NUMBER) RETURN NUMBER IS 
     BEGIN 
     RETURN p_id * p_id - p_id; 
     END; 
    SELECT with_function(3) 
    FROM dual 
    WHERE rownum = 1' into myvariable; 
    dbms_output.put_line('myvariable: '||myvariable); 
    End; 
+0

отлично, это работает – user

Смежные вопросы