From: | "postgres Emanuel CALVO FRANCO" <postgres(dot)arg(at)gmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Integer con '' para carga masiva |
Date: | 2008-10-28 13:06:45 |
Message-ID: | f205bb120810280606k44384e08o173f6baabe12f2f@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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
<listas_quijada(at)hotmail(dot)com> escribió:
>
>
>
>
>> Date: Mon, 27 Oct 2008 18:43:33 -0300
>> From: alvherre(at)alvh(dot)no-ip(dot)org
>> To: listas_quijada(at)hotmail(dot)com
>> CC: pgsql-es-ayuda(at)postgresql(dot)org
>> 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
From | Date | Subject | |
---|---|---|---|
Next Message | postgres Emanuel CALVO FRANCO | 2008-10-28 15:33:10 | FAQ_Solaris 1.28 to spanish |
Previous Message | Ernesto Lozano | 2008-10-28 00:45:39 | Re: Postgres va a la Feria Internacional de Cuba con HIA TECHNOLOGY DE VENEZUELA Y CORP COMSITE |