Я пытался зациклить имя таблицы из списка и вставить два поля во временную таблицу, я сделал несколько изменений без удачи, кажется, ближе, но так как я новичок в plsql, это, надеюсь, может исправить, что я незнаете, спасибо за помощь!
CREATE OR REPLACE PROCEDURE pots_upd (ic VARCHAR2) IS
TYPE tbl_array_type IS TABLE OF VARCHAR2(80)
INDEX BY binary_integer;
dml_str VARCHAR2 (200);
tbl_array tbl_array_type;
BEGIN
SELECT table_name BULK COLLECT INTO tbl_array
FROM
(select table_name from ALL_TABLES WHERE OWNER = 'POTS_LANDING'
AND SUBSTR(TABLE_NAME, LENGTH(TRIM(TABLE_NAME))-3, 3) = '_LN');
FOR i IN tbl_array.first..tbl_array.last LOOP
dml_str := 'insert into temp(maxdate,ic)' || 'select update_dt, ic
from ' ||tbl_array(i) ;
EXECUTE IMMEDIATE dml_str USING ic;
END LOOP;
END;
show errors;