Váš dynamický příkaz by neměl mít na konci středník; to je oddělovač příkazů a není relevantní ani platný pro jeden příkaz. Dynamicky můžete spouštět pouze jeden SQL příkaz (pokud jich nevložíte několik do anonymního PL/SQL bloku).
Vaše into
je také na špatném místě:
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;
Nejste si jisti, proč se obtěžujete mít a přiřazovat místní proměnné, když můžete přímo použít argumenty procedury, což podle mého názoru činí příkaz čitelnějším:
TEMP_1 := 'select count ( '|| COLUMN_SOURCE ||' ) from ' || TABLE_SOURCE;