Estou tentando implementar o processo com DBMS_JOB.SUBMIT
uma instrução INSERT, mas não consigo transferir os dados de uma tabela para outra.
DECLARE
l_job NUMBER;
BEGIN
DBMS_JOB.SUBMIT(
job => l_job,
what => 'BEGIN insert into customers_tbl1 select * from customers_tbl;
END;'--,
-- next_date => SYSDATE--, -- Schedule for 1 hour from now
--interval => 'SYSDATE' -- Reschedule every day
);
COMMIT; -- Important to commit the transaction to schedule the job
END;
Dados da tabela:
CREATE TABLE customers_tbl
( customer_id number(10),
customer_name varchar2(50),
city varchar2(50)
);
insert into customers_tbl(customer_id,customer_name,city) values(1,'Albert','Munich');
insert into customers_tbl(customer_id,customer_name,city) values(2,'Alex','Stuttgart');
insert into customers_tbl(customer_id,customer_name,city) values(3,'Sasuke','Tokyo');
CREATE TABLE customers_tbl1
( customer_id number(10),
customer_name varchar2(50),
city varchar2(50)
);
O parâmetro what precisa de um bloco PL/SQL apropriado
(BEGIN ... END;)
e termina aINSERT
instrução com um ponto e vírgula.Código corrigido:
Você pode usar
SYSDATE + 1/24
in next_date se quiser agendar para daqui a uma hora.Verifique se os dados são transferidos ou não:
Monitore o status do seu trabalho: