Condiciones de dos tablas en un mismo cursor
Hola, tengo un problema. Estoy haciendo un procedimiento q abre un cursor mediante el cual inserto una serie de registros en una tabla de almacens. El problema es q tengo q controlar q cuando un registro este dado de alta no me lo añada de nuevo si no q me lo actualice.
Muchas Gracias
Muchas Gracias
Antes de insertar en la segunda tabla, sólo tienes que mirar si existe el registro.
Por ejemplo:
MI_TABLA:
COL1 NUMBER(3)
COL2 VARCHAR2(10)
OTRA_TABLA:
COL1 NUMBER(3)
COL2 VARCHAR2(10)
El procedimiento sería:
CREATE OR REPLACE PROCEDURE "PROC1" is
cuantos integer;
codigo integer;
columna2 varchar2(10);
cursor cur1 is select col1,col2 from mi_tabla;
begin
open cur1;
loop
fetch cur1 into codigo,columna2;
exit when cur1%NOTFOUND;
select count(*) into cuantos
from otra_tabla where col1=codigo;
if (cuantos=0) then
-- INSERT
insert into otra_tabla (col1,col2)
values (codigo,columna2);
else
-- UPDATE
update otra_tabla set col2=columna2
where col1=codigo;
end if;
end loop;
end;
Por ejemplo:
MI_TABLA:
COL1 NUMBER(3)
COL2 VARCHAR2(10)
OTRA_TABLA:
COL1 NUMBER(3)
COL2 VARCHAR2(10)
El procedimiento sería:
CREATE OR REPLACE PROCEDURE "PROC1" is
cuantos integer;
codigo integer;
columna2 varchar2(10);
cursor cur1 is select col1,col2 from mi_tabla;
begin
open cur1;
loop
fetch cur1 into codigo,columna2;
exit when cur1%NOTFOUND;
select count(*) into cuantos
from otra_tabla where col1=codigo;
if (cuantos=0) then
-- INSERT
insert into otra_tabla (col1,col2)
values (codigo,columna2);
else
-- UPDATE
update otra_tabla set col2=columna2
where col1=codigo;
end if;
end loop;
end;
