ce stmt fonctionne sans la clause where
Cela peut être dû au fait que lorsque vous concaténez les chaînes, elles sont converties implicitement et votre condition where échoue au moment de l'exécution. Essayez le USING
clause avec des variables liées.
stmt_ins:= 'INSERT INTO ' || n_tab2 || ' SELECT * FROM ' || n_tab || ' where ' || dt_criado || ' < :dt ' ;
EXECUTE IMMEDIATE stmt_ins USING SYSDATE;