Hola,
Si revisé pero no encontré nada acerca del objeto afectado, por ahora la única 
solución es: when unique_violation then GET STACKED DIAGNOSTICS 
l_RETURNED_SQLSTATE = RETURNED_SQLSTATE, l_MESSAGE_TEXT = MESSAGE_TEXT, 
l_PG_EXCEPTION_DETAIL = PG_EXCEPTION_DETAIL;  if position('uk_cliente' in 
l_MESSAGE_TEXT)> 0 then s_error_msj:=  'Ya existe un tipo_documento y 
numero_documento que coinciden con los ingresados. Por favor ingrese un tipo y 
documento diferentes o solicite restaurar la contraseña.'; end if; raise 
exception '%', s_error_msj;
 

    El Sábado 19 de diciembre de 2015 15:08, Anthony Sotolongo 
<asotolo...@gmail.com> escribió:
 
 

  Hola Alejandro, revisa los Error Diagnostics Values y tal vez te pueda dar la 
pista de la UNIQUE que te da el error, utiliza el ITEM que requieras(creo que 
COLUMN_NAME o CONSTRAINT_NAME o PG_EXCEPTION_DETAIL o PG_EXCEPTION_HINT, pueden 
ayudarte).
 te recomiendo:
http://www.postgresql.org/docs/9.4/interactive/plpgsql-control-structures.html#PLPGSQL-ERROR-TRAPPING
 
 
 Saludos
 
 
 El 12/19/2015 a las 3:04 PM, Alejandro Carrillo escribió:
  
  Buen dia, 
  Rato sin hablar en la lista. Tengo una duda, estoy creando un function en 
Postgresql 9.4 que insertará datos en una tabla, sin embargo esta tabla tiene 2 
o más unique constraint y necesito saber unicamente el nombre de cual de las 
unique constraint ha sido afectada, ej: 
  
  create or replace function insertar(  p1 character varying,    p2 character 
varying,     p3 character varying  ) RETURNS void AS $$ begin  inser into ...; 
  exception  when unique_violation then  -- ACA DEBO OBTENER UNICAMENTE EL 
NOMBRE EXACTO DE LA UNIQUE KEY AFECTADA para efectos de mostrar un mensaje de 
error personalizado.   end; $$; 
  Cordial saludo  
 
 

 
  

Reply via email to