Câu lệnh động của bạn không được có dấu chấm phẩy ở cuối; đó là dấu phân tách câu lệnh và không liên quan hoặc hợp lệ cho một câu lệnh đơn lẻ. Dù sao thì bạn cũng chỉ có thể chạy một câu lệnh SQL đơn lẻ (trừ khi bạn đặt nhiều câu lệnh vào một khối PL / SQL ẩn danh).
into
cũng ở sai chỗ:
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;
Không chắc tại sao bạn lại bận tâm đến việc gán và gán các biến cục bộ khi bạn có thể sử dụng trực tiếp các đối số thủ tục, điều này tôi nghĩ làm cho câu lệnh dễ đọc hơn:
TEMP_1 := 'select count ( '|| COLUMN_SOURCE ||' ) from ' || TABLE_SOURCE;