Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Não é possível executar a consulta dinâmica no procedimento armazenado ao selecionar a contagem de registros


Sua instrução dinâmica não deve ter um ponto e vírgula no final; que é um separador de instrução e não é relevante ou válido para uma única instrução. Você só pode executar uma única instrução SQL dinamicamente de qualquer maneira (a menos que você coloque várias em um bloco PL/SQL anônimo).

Seu into também está no lugar errado:
TEMP_1 := 'select count ( '|| E ||' ) from ' || C;

DBMS_OUTPUT.PUT_LINE ('STARTED');
DBMS_OUTPUT.PUT_LINE (TEMP_1);

EXECUTE IMMEDIATE TEMP_1 INTO Count_source;

Não tenho certeza por que você está se preocupando em ter e atribuir variáveis ​​locais quando pode usar os argumentos do procedimento diretamente, o que acho que torna a instrução mais legível:
TEMP_1 := 'select count ( '|| COLUMN_SOURCE ||' ) from ' || TABLE_SOURCE;