El lun, 27-10-2008 a las 21:41 +0000, Edwin Quijada escribió:
> Estoy tratando de ingresar datos en una tabla mediante insert. El problema es 
> que los iNsert que recibo son de la sigte forma 
> INSERT INTO table VALUES('x','1','','','r');
> 
> Mi problema es que si el campo es integer y envio '' me da un error. Lo que 
> quiero es saber si hay una forma de poder omitir este error y que PG cuando 
> reciba '' lo convierta en NULL o 0 como quiera. Se que puedo analizar el 
> insert antes de , pero seria un gran trabajo tomando en cuenta la cantidad de 
> records que tengo y la cantidad de archivos q es ademas tendria que estar 
> averiguando el ti[po de datos de cada columna.
> 
> Podria hacerlo en un trigger?

Esto es algo parecido a lo que haría yo, pero no se bien cual es el
caso. Esta función o impovisación para ser mas exacto revisa los valores
int1,2 y 3 si no tienen nada les pone cero y luego inserta el valor en
la tabla, por supuesto a modo de ej.

create or replace function insertarValor (char1 text, int1 text, int2
text, int3 text, char2 text)
returns void
as $$
if int1 == "":
  args[1] = 0
if int2 == "":
  args[2] = 0
if int3 == "":
  args[3] = 0
sentencia = "INSERT INTO tabla VALUES('" + "','".join(map(str, args)) +
"')"
hola = plpy.execute(sentencia)
$$ language plpythonu;

PD: Si el msj llega dos veces, perdón...

---

TiN

"A computer is like an air conditioner.It stops working when 
you open windows."

Attachment: signature.asc
Description: Esta parte del mensaje está firmada digitalmente

Responder a