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

Responder a