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;