този stmt работи без клаузата where
Това може да се дължи на факта, че когато конкатенирате низовете, те се преобразуват имплицитно и вашето където условие се проваля по време на изпълнение. Опитайте USING
клауза с свързващи променливи.
stmt_ins:= 'INSERT INTO ' || n_tab2 || ' SELECT * FROM ' || n_tab || ' where ' || dt_criado || ' < :dt ' ;
EXECUTE IMMEDIATE stmt_ins USING SYSDATE;