Oracle
 sql >> Database >  >> RDS >> Oracle

Impossibile eseguire query dinamiche nella stored procedure durante la selezione del conteggio dei record

La tua istruzione dinamica non dovrebbe avere un punto e virgola alla fine; che è un separatore di istruzione e non rilevante o valido per una singola istruzione. Puoi comunque eseguire solo una singola istruzione SQL dinamicamente (a meno che non ne inserisca diverse in un blocco PL/SQL anonimo).

Il tuo into è anche nel posto sbagliato:

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;

Non sono sicuro del motivo per cui ti preoccupi di avere e assegnare variabili locali quando puoi utilizzare direttamente gli argomenti della procedura, il che penso renda l'affermazione più leggibile:

TEMP_1 := 'select count ( '|| COLUMN_SOURCE ||' ) from ' || TABLE_SOURCE;