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

Kan ikke køre dynamisk forespørgsel i den lagrede procedure, mens antallet af poster vælges

Dit dynamiske udsagn bør ikke have et semikolon i slutningen; det er en sætningsseparator og ikke relevant eller gyldig for en enkelt erklæring. Du kan kun køre en enkelt SQL-sætning dynamisk alligevel (medmindre du sætter flere ind i en anonym PL/SQL-blok).

Din into er også det forkerte sted:

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;

Ikke sikker på, hvorfor du gider at have og tildele lokale variabler, når du kan bruge procedureargumenterne direkte, hvilket jeg tror gør sætningen mere læsbar:

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



  1. Få særskilte poster med tæller

  2. standardværdien af ​​GUID i for en kolonne i mysql

  3. Brug en Postgres-trigger til kun at registrere JSON for de ændrede felter

  4. Databasestyring og overvågning for PostgreSQL 12