Pernyataan dinamis Anda tidak boleh memiliki titik koma di akhir; yang merupakan pemisah pernyataan dan tidak relevan atau valid untuk satu pernyataan. Anda hanya dapat menjalankan satu pernyataan SQL secara dinamis (kecuali jika Anda memasukkan beberapa ke dalam blok PL/SQL anonim).
into
. Anda ada di tempat yang salah juga:
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;
Tidak yakin mengapa Anda repot-repot memiliki dan menetapkan variabel lokal ketika Anda dapat menggunakan argumen prosedur secara langsung, yang menurut saya membuat pernyataan lebih mudah dibaca:
TEMP_1 := 'select count ( '|| COLUMN_SOURCE ||' ) from ' || TABLE_SOURCE;