Pular para o conteúdo

Fóruns Engenharia de Software Substituir contéudo de variável em procedure durante execuçã Substituir contéudo de variável em procedure durante execuçã

#104719
dcarvalho
Participante

    Oi Airton,

    Você pode utilizar refcursor como no exemplo que criei abaixo:

    [i]DECLARE

    cur_obj SYS_REFCURSOR;
    v_obj_name dba_objects.object_name%TYPE;
    v_table VARCHAR2(40) := ‘dba_objects’;
    v_obj_id Dba_Objects.object_id%TYPE := 54158;

    BEGIN

    OPEN cur_obj FOR ‘select object_name from ‘||v_table||’ where object_id = :b1′ USING v_obj_id;
    LOOP

    FETCH cur_obj INTO v_obj_name;
    EXIT WHEN cur_obj%NOTFOUND;

    DBMS_OUTPUT.PUT_LINE(v_obj_name);

    END LOOP;
    CLOSE cur_obj;

    END;
    /[/i]

    Caso opte pelo execute immediate, não esqueça de usar o USING para bind variable =)

    Abraço,
    Danilo Carvalho
    https://www.profissionaloracle.com.br/blogs/dcarvalho