Gostaria de uma ajuda para criação de procedure em Oracle 10g
Tenho duas tabelas (table1 e table2).Na table1 vou ter dados que vou jogar na table2 e caso o registro já esteja na table2,
preciso fazer o update e se não, o insert. Como faço essa implementação no “if” e como faço a declaração da table2.
Segue o que tenho montado…
AS
cod_erro NUMBER;
message_erro VARCHAR2(255);
CURSOR C1 IS
SELECT emp, codigo, descricao FROM table1 FOR UPDATE;
REGISTRO C1%ROWTYPE;
BEGIN
OPEN C1;
LOOP
FETCH C1 INTO REGISTRO;
EXIT WHEN C1%NOTFOUND;
if ??????? (se o table1.emp=table2.emp então fazer o update, se não o insert)
then
update table2 set cod=REGISTRO.cod,descricao=REGISTRO.descricao) ;
else
insert into table2 (emp, codigo, descricao) values (REGISTRO.emp,REGISTRO.cod,REGISTRO.descricao);
end if;
END LOOP;
EXCEPTION
WHEN OTHERS THEN
cod_erro := SQLCODE;
message_erro := SQLERRM;
INSERT INTO CARLOS.ERROS_IMPORT
VALUES (cod_erro, message_erro, sysdate);
update table1 set date=SYSDATE where CURRENT OF c1;
CLOSE C1 ;
END;
obrigado
Carlos