questo stmt funziona senza la clausola where
Ciò potrebbe essere dovuto al fatto che quando concateni le stringhe vengono convertite in modo implicito e la tua condizione where non riesce in fase di esecuzione. Prova il USING
clausola con variabili bind.
stmt_ins:= 'INSERT INTO ' || n_tab2 || ' SELECT * FROM ' || n_tab || ' where ' || dt_criado || ' < :dt ' ;
EXECUTE IMMEDIATE stmt_ins USING SYSDATE;