Ao Inserir dados de uma tabela, usar select para inserir esses dados em outra tabela

Estou tentando montar um trigger para que toda vez que for inserido um novo dado na tabela ‘OWGCTCLP.TMP_TESTE’ eu consigo fazer select nesses novos dados e inseri-los em outra tabela ‘OWGCTCLP.TMP_TESTE2’, alguem poderia me ajudar?
Eu montei um trigger para ser ativado toda vez que for inserido novos valores, e assim eu chamo um procedure para pegar esses dados e fazer um select para inserir na outra tabela.
Eu não posso utilizar o comando VALUES porque eu ainda irei usar dados de outra tabela, por isso estou usando o SELECT no exemplo

CREATE OR REPLACE TRIGGER TESTE_TRG
_ AFTER INSERT ON OWGCTCLP.TMP_TESTE _

_ FOR EACH ROW_
DECLARE
_ PRAGMA AUTONOMOUS_TRANSACTION;_
_ _
BEGIN
_ _
_ teste_proc(:NEW.DATA_FATURA)_
_ _
_ ;_
_ _
END TESTE;


_create or replace procedure teste_proc(DATA_FATURA DATE) _
is
begin
_ _

INSERT INTO OWGCTCLP.TMP_TESTE2 T2 (T2.DATA_FATURA)

–INSERE NOVAS NOTAS PENDENTES NA TABELA.
–VALUES(TO_NUMBER(DATA_FATURA,‘DD’))
–VALUES(TO_CHAR(teste_proc.DATA_FATURA,‘DD’))
SELECT TO_CHAR(teste_proc.DATA_FATURA,‘DD’) FROM teste_proc
;
_ COMMIT;_
_ – RAISE;_

_ _
_ _
end teste_proc;

Bom, apenas alertando, sua abordagem com trigger para o que vc quer, eu não acho que seja boa ideia, a performance pode cair muito a longo prazo…

Uma abordagem melhor seria vc usar eventos (vc não disse qual banco está usando) em mysql, por exemplo existe os schedules/events, pesquise algo parecido para seu banco…

Resumindo, imagine rodar um evento a cada X tempos (agendado), pegando o que foi inserido de uma tabela para a outra…

Isso é minha recomendação obviamente, agora quanto a sintaxe para usar insert com select, os values vc não define, ex:

INSERT tabela (campos...) SELECT campos... FROM tabela2...

Espero ter ajudado.

Eu estou usando PL/SQL, acredito que não tenha essa opção de Eventos
estou usando o TRIGGER
E--------TRIGGER--------

CREATE OR REPLACE TRIGGER TESTE_TRG
__ AFTER INSERT ON OWGCTCLP.TMP_TESTE __

__ FOR EACH ROW__
DECLARE
__ PRAGMA AUTONOMOUS_TRANSACTION;__
__ __
BEGIN
__ __
__ teste_proc(:NEW.DATA_FATURA)__
__ __
__ ;__
__ __
END TESTE;

--------PROCEDURE--------

**create or replace procedure teste_proc(DATA_FATURA DATE) **
is
begin


INSERT INTO OWGCTCLP.TMP_TESTE2 T2 (T2.DATA_FATURA)

–INSERE NOVAS NOTAS PENDENTES NA TABELA.

SELECT TO_CHAR(teste_proc.DATA_FATURA,‘DD’) FROM teste_proc
;
** COMMIT;**



end teste_proc;

Será que não tem mesmo?

https://docs.oracle.com/cd/B28359_01/server.111/b28310/scheduse008.htm#ADMIN10020