Oracle - insertar si existe

 
Vista:
sin imagen de perfil

insertar si existe

Publicado por oscar (12 intervenciones) el 28/11/2016 21:37:46
necesito ayuda, deseo realizar una condicion que me permita validar si un registro existe... si el registro existe que me muestre un mensaje de error, y si no existe que, inserte el registro

al igual que en el update... que al momento de modificar coloquen un registro existente, que muestre un mensaje de error

esto es para oracle forms 6i

gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 12
Ha disminuido 1 puesto en Oracle (en relación al último mes)
Gráfica de Oracle

insertar si existe

Publicado por José Luis (5 intervenciones) el 29/11/2016 19:21:59
Hola,

con los triggers puedes hacer lo que preguntas.

Saludos
José Luis
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jose

insertar si existe

Publicado por Jose (3 intervenciones) el 09/02/2017 13:46:22
--Respecto a tu pregunta Oscar podes hacer esto a nivel de formulario en el trigger del forms PRE-INSERT

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
declare
  v_existe number(10);
begin
  begin
    select count(*) into v_existe from emp where empno = :bloque.empno;
  exception
    when others then
      v_existe := 0;
  end;
  if v_existe < 0 then
    --aqui haces la insercion cuando cumple, un ejemplo
    insert into emp values (sysydate);
  else
    message('El código ingresado ya existe, por lo tanto no puede insertarlo');
    raise form_trigger_failure;
  end if;
end;


-- En el caso del Update podes hacer en el trigger del forms PRE_UPDATE

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
declare
  v_existe number(10);
begin
  begin
    select count(*) into v_existe from emp where empno = :bloque.empno;
  exception
    when others then
      v_existe := 0;
  end;
  if v_existe < 0 then
    --aqui haces la Actualización cuando cumple, un ejemplo
    update emp set empno = :bloque.empno;
  else
    message('El código ingresado ya existe, por lo tanto no puede insertarlo');
    raise form_trigger_failure;
  end if;
end;

-- Algo asi lo que entendí
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar