Seria mucho inconveniente que utilizaras expresiones regulares para moficar los '' por '0' ? Ma paso una vez y utilize el vi para esoen un csv de mas de 20000 registros y va de 10 :) s/\'\'/\'0\'/ dependiendo también el orden en el csv que tenga el entero, se que hay una forma de que la expresion tome desde determinado caracter en adelante. o inclusive seria mucho más comestible tratarlo con awk o si queres simplemente hacerlo con PG... probaste con PL/Perl?
El día 27 de octubre de 2008 20:27, Edwin Quijada <[EMAIL PROTECTED]> escribió: > > > > >> Date: Mon, 27 Oct 2008 18:43:33 -0300 >> From: [EMAIL PROTECTED] >> To: [EMAIL PROTECTED] >> CC: [email protected] >> Subject: Re: [pgsql-es-ayuda] Integer con '' para carga masiva >> >> 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. >> >> Hmmm :-( ¿Y no puedes recibir los datos en un formato CSV, que sea más fácil >> de digerir? >> >>> Podria hacerlo en un trigger? >> >> Creo que no. >> >> Lo que yo intentaría en este caso, sería crear una tabla de paso con varias >> columnas de tipo text, y luego de insertar todos los valores haces un >> INSERT INTO otratabla SELECT * FROM tabla_de_paso >> (opcionalmente aplicas cast si es necesario) > > Ya habia pensado en esa manera pero no solo es una son 23 con este mismo > problema. Pense tambien en declarar directamente esas columnas como varchar y > recibirlo directamente pero luego tendria q estar haciendo cast en cada caso. > Uhmm,,,,, creo que es la unica solucion. Ya probe con el trigger y nada. > > > >> >> -- >> Alvaro Herrera http://www.amazon.com/gp/registry/5ZYLFMCVHXC >> "Digital and video cameras have this adjustment and film cameras don't for >> the >> same reason dogs and cats lick themselves: because they can." (Ken Rockwell) > > _________________________________________________________________ > Your PC, mobile phone, and online services work together like never before. > http://clk.atdmt.com/MRT/go/108587394/direct/01/-- > TIP 6: ¿Has buscado en los archivos de nuestra lista de correo? > http://archives.postgresql.org/pgsql-es-ayuda > -- Emanuel Calvo Franco Syscope Postgresql DBA BaPUG Member -- TIP 4: No hagas 'kill -9' a postmaster
