Uw dynamische verklaring mag aan het einde geen puntkomma hebben; dat is een scheidingsteken voor instructies en niet relevant of geldig voor een enkele instructie. Je kunt sowieso maar één enkele SQL-instructie dynamisch uitvoeren (tenzij je er meerdere in een anoniem PL/SQL-blok plaatst).
Uw into
staat ook op de verkeerde plaats:
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;
Ik weet niet zeker waarom je de moeite neemt om lokale variabelen te hebben en toe te wijzen als je de procedureargumenten rechtstreeks kunt gebruiken, wat volgens mij de verklaring leesbaarder maakt:
TEMP_1 := 'select count ( '|| COLUMN_SOURCE ||' ) from ' || TABLE_SOURCE;