Lists: | pgsql-es-ayuda |
---|
From: | Edwin Quijada <listas_quijada(at)hotmail(dot)com> |
---|---|
To: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Integer con '' para carga masiva |
Date: | 2008-10-27 21:41:02 |
Message-ID: | BLU137-W565B44EBDE66F291F8DE3E3240@phx.gbl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
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?
*-------------------------------------------------------*
*-Edwin Quijada
*-Developer DataBase
*-JQ Microsistemas
*-809-849-8087
* " Si deseas lograr cosas excepcionales debes de hacer cosas fuera de lo comun"
*-------------------------------------------------------*
_________________________________________________________________
Reveal your inner athlete and share it with friends on Windows Live.
http://revealyourinnerathlete.windowslive.com?locale=en-us&ocid=TXT_TAGLM_WLYIA_whichathlete_us
From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Edwin Quijada <listas_quijada(at)hotmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Integer con '' para carga masiva |
Date: | 2008-10-27 21:43:33 |
Message-ID: | 20081027214333.GK3866@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
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)
--
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)
From: | "Jaime Casanova" <jcasanov(at)systemguards(dot)com(dot)ec> |
---|---|
To: | "Alvaro Herrera" <alvherre(at)alvh(dot)no-ip(dot)org> |
Cc: | "Edwin Quijada" <listas_quijada(at)hotmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Integer con '' para carga masiva |
Date: | 2008-10-27 22:21:35 |
Message-ID: | 3073cc9b0810271521tcce2746u416f1e9b06f329a@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
2008/10/27 Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>:
>
> 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)
>
que ademas es mas sano, puesto que podras hacer pruebas de chequeo
aunque sean basicas para verificar que los datos esten bien...
--
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Asesoría y desarrollo de sistemas
Guayaquil - Ecuador
Cel. +59387171157
From: | Edwin Quijada <listas_quijada(at)hotmail(dot)com> |
---|---|
To: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
Cc: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: Integer con '' para carga masiva |
Date: | 2008-10-27 22:27:22 |
Message-ID: | BLU137-W49F509711398D1A09080C5E3240@phx.gbl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
> 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/
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 |
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: | Edwin Quijada <listas_quijada(at)hotmail(dot)com> |
---|---|
To: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
Cc: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: Integer con '' para carga masiva |
Date: | 2008-10-28 16:45:06 |
Message-ID: | BLU137-W401D584CC9AD56E6B0281DE3270@phx.gbl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
> 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)
>
Estoy tratando de hacer lo que dices pero cuando uso la otra tabla temporal al insertar '' en el campo text cuando hago INSERT INTO otratabla SELECT * FROM tabla_de_paso lllega lo mismo a la tabla original y me da el mismo error.
Pense enviarlo desde psql como csv pero me envian una coma',' al final lo que me rompe la estructura de tabla vs. archivo
> --
> 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)
> --
> TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te lo agradecerán
_________________________________________________________________
Get more from your digital life. Find out how.
http://www.windowslive.com/default.html?ocid=TXT_TAGLM_WL_Home2_082008
From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Edwin Quijada <listas_quijada(at)hotmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Integer con '' para carga masiva |
Date: | 2008-10-28 16:46:20 |
Message-ID: | 20081028164619.GD4912@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Edwin Quijada escribió:
> Estoy tratando de hacer lo que dices pero cuando uso la otra tabla temporal al insertar '' en el campo text cuando hago INSERT INTO otratabla SELECT * FROM tabla_de_paso lllega lo mismo a la tabla original y me da el mismo error.
Puedes agregar un cast explicito en esa columna en el select.
--
Alvaro Herrera http://www.PlanetPostgreSQL.org/
"Crear es tan difícil como ser libre" (Elsa Triolet)
From: | "Jaime Casanova" <jcasanov(at)systemguards(dot)com(dot)ec> |
---|---|
To: | "Alvaro Herrera" <alvherre(at)alvh(dot)no-ip(dot)org> |
Cc: | "Edwin Quijada" <listas_quijada(at)hotmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Integer con '' para carga masiva |
Date: | 2008-10-28 17:08:57 |
Message-ID: | 3073cc9b0810281008l77ea35dp813fdcd1c7c19def@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
On Tue, Oct 28, 2008 at 1:46 PM, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> wrote:
> Edwin Quijada escribió:
>
>> Estoy tratando de hacer lo que dices pero cuando uso la otra tabla temporal al insertar '' en el campo text cuando hago INSERT INTO otratabla SELECT * FROM tabla_de_paso lllega lo mismo a la tabla original y me da el mismo error.
>
> Puedes agregar un cast explicito en esa columna en el select.
>
o puedes usar una regla o mejor aun un trigger en la tabla_de_paso
que por cada fila inserte en la tabla real y dentro del trigger haces
los casts que necesites
es lo mismo pero no te toca escribir la sentencia cada vez que quieras
hacer eso sobre la tabla... claro si es algo que vas a hacer seguido
sino solo ignorame
--
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Asesoría y desarrollo de sistemas
Guayaquil - Ecuador
Cel. +59387171157
From: | Agustin <agustinhenze(at)gmail(dot)com> |
---|---|
To: | Edwin Quijada <listas_quijada(at)hotmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Integer con '' para carga masiva |
Date: | 2008-10-28 18:09:07 |
Message-ID: | 1225217347.18362.20.camel@fusioncordoba |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
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."
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 19:01:29 |
Message-ID: | f205bb120810281201n5f6902fakaf5bc48a5eda32c4@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
probaste en el ddl de la tabla porner un default al campo de los
enteros o crear un rule?
El día 28 de octubre de 2008 16:09, Agustin <agustinhenze(at)gmail(dot)com> escribió:
> 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."
>
--
Emanuel Calvo Franco
Syscope Postgresql DBA
BaPUG Member
From: | Edwin Quijada <listas_quijada(at)hotmail(dot)com> |
---|---|
To: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
Cc: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: Integer con '' para carga masiva |
Date: | 2008-10-28 19:04:04 |
Message-ID: | BLU137-W36163B4936EF194E7F8C68E3270@phx.gbl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Lo hice pero igual da el error.
*-------------------------------------------------------*
*-Edwin Quijada
*-Developer DataBase
*-JQ Microsistemas
*-809-849-8087
* " Si deseas lograr cosas excepcionales debes de hacer cosas fuera de lo comun"
*-------------------------------------------------------*
> Date: Tue, 28 Oct 2008 13:46:20 -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 hacer lo que dices pero cuando uso la otra tabla temporal al insertar '' en el campo text cuando hago INSERT INTO otratabla SELECT * FROM tabla_de_paso lllega lo mismo a la tabla original y me da el mismo error.
>
> Puedes agregar un cast explicito en esa columna en el select.
>
> --
> Alvaro Herrera http://www.PlanetPostgreSQL.org/
> "Crear es tan difícil como ser libre" (Elsa Triolet)
> --
> TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo
_________________________________________________________________
Your PC, mobile phone, and online services work together like never before.
http://clk.atdmt.com/MRT/go/108587394/direct/01/
From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Edwin Quijada <listas_quijada(at)hotmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Integer con '' para carga masiva |
Date: | 2008-10-28 19:05:13 |
Message-ID: | 20081028190513.GE4912@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Edwin Quijada escribió:
>
> Lo hice pero igual da el error.
Creo que algo hiciste mal porque debería funcionar. Por favor muestra
lo que estás haciendo y el mensaje de error.
Ahh, creo que veo el problema -- deberías usar un CASE para transformar
el '' en NULL, o algo así.
--
Alvaro Herrera http://www.PlanetPostgreSQL.org/
"El día que dejes de cambiar dejarás de vivir"
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 19:07:05 |
Message-ID: | f205bb120810281207j254c4289lcf0325bf1474fd3b@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Alvaro... se podria poner en el TODO para que tome en caso de campos
vacios el default de la ddl?
2008/10/28 Edwin Quijada <listas_quijada(at)hotmail(dot)com>:
>
> Lo hice pero igual da el error.
>
> *-------------------------------------------------------*
> *-Edwin Quijada
> *-Developer DataBase
> *-JQ Microsistemas
> *-809-849-8087
>
> * " Si deseas lograr cosas excepcionales debes de hacer cosas fuera de lo comun"
> *-------------------------------------------------------*
>
>
>> Date: Tue, 28 Oct 2008 13:46:20 -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 hacer lo que dices pero cuando uso la otra tabla temporal al insertar '' en el campo text cuando hago INSERT INTO otratabla SELECT * FROM tabla_de_paso lllega lo mismo a la tabla original y me da el mismo error.
>>
>> Puedes agregar un cast explicito en esa columna en el select.
>>
>> --
>> Alvaro Herrera http://www.PlanetPostgreSQL.org/
>> "Crear es tan difícil como ser libre" (Elsa Triolet)
>> --
>> TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo
>
> _________________________________________________________________
> Your PC, mobile phone, and online services work together like never before.
> http://clk.atdmt.com/MRT/go/108587394/direct/01/--
> TIP 4: No hagas 'kill -9' a postmaster
>
--
Emanuel Calvo Franco
Syscope Postgresql DBA
BaPUG Member
From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | postgres Emanuel CALVO FRANCO <postgres(dot)arg(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Integer con '' para carga masiva |
Date: | 2008-10-28 19:13:37 |
Message-ID: | 20081028191337.GF4912@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
postgres Emanuel CALVO FRANCO escribió:
> Alvaro... se podria poner en el TODO para que tome en caso de campos
> vacios el default de la ddl?
No me parece ... un string vacío no es lo mismo que NULL o 0.
--
Alvaro Herrera http://www.flickr.com/photos/alvherre/
"XML!" Exclaimed C++. "What are you doing here? You're not a programming
language."
"Tell that to the people who use me," said XML.
From: | Edwin Quijada <listas_quijada(at)hotmail(dot)com> |
---|---|
To: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
Cc: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: Integer con '' para carga masiva |
Date: | 2008-10-28 19:15:32 |
Message-ID: | BLU137-W52C4405076D724AACBC5DE3270@phx.gbl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
*-------------------------------------------------------*
*-Edwin Quijada
*-Developer DataBase
*-JQ Microsistemas
*-809-849-8087
* " Si deseas lograr cosas excepcionales debes de hacer cosas fuera de lo comun"
*-------------------------------------------------------*
> Date: Tue, 28 Oct 2008 16:05:13 -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ó:
>>
>> Lo hice pero igual da el error.
>
> Creo que algo hiciste mal porque debería funcionar. Por favor muestra
> lo que estás haciendo y el mensaje de error.
>
> Ahh, creo que veo el problema -- deberías usar un CASE para transformar
> el '' en NULL, o algo así.
>
Si, ahi si funciona pero eso era lo que me queria evitar porque tendria que hacer muchos. Imaginate son tablas de hasta 200 campos. Mediante el COPY si agrego un campo lo toma perfecto , estoy pensando mejor usar el COPY y agregar un campo de mas o manipular los archivos para eliminar la ultima coma de cada linea
> --
> Alvaro Herrera http://www.PlanetPostgreSQL.org/
> "El día que dejes de cambiar dejarás de vivir"
> --
> TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net
_________________________________________________________________
Your PC, mobile phone, and online services work together like never before.
http://clk.atdmt.com/MRT/go/108587394/direct/01/
From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Edwin Quijada <listas_quijada(at)hotmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Integer con '' para carga masiva |
Date: | 2008-10-28 19:17:59 |
Message-ID: | 20081028191759.GG4912@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Edwin Quijada escribió:
> > Ahh, creo que veo el problema -- deberías usar un CASE para transformar
> > el '' en NULL, o algo así.
> >
> Si, ahi si funciona pero eso era lo que me queria evitar porque
> tendria que hacer muchos. Imaginate son tablas de hasta 200 campos.
> Mediante el COPY si agrego un campo lo toma perfecto , estoy pensando
> mejor usar el COPY y agregar un campo de mas o manipular los archivos
> para eliminar la ultima coma de cada linea
Si pudieras conseguir que la aplicación no emita el '' para campos que
son números, no tendrías este problema.
--
Alvaro Herrera Valdivia, Chile ICBM: S 39º 48' 55.3", W 73º 15' 24.7"
"In Europe they call me Niklaus Wirth; in the US they call me Nickel's worth.
That's because in Europe they call me by name, and in the US by value!"
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 19:20:50 |
Message-ID: | f205bb120810281220r5b199f09m7cd58bbfa64aea37@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
perdon, me referia a campos de tipo integer. Hice una prueba y no toma
el default.
En teoria debería tomar el default? o esto lo dejaron asi a propósito
para evitar inconsistencias
o errores en la inserción?
El día 28 de octubre de 2008 17:15, Edwin Quijada
<listas_quijada(at)hotmail(dot)com> escribió:
>
>
>
> *-------------------------------------------------------*
> *-Edwin Quijada
> *-Developer DataBase
> *-JQ Microsistemas
> *-809-849-8087
>
> * " Si deseas lograr cosas excepcionales debes de hacer cosas fuera de lo comun"
> *-------------------------------------------------------*
>
>
>> Date: Tue, 28 Oct 2008 16:05:13 -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ó:
>>>
>>> Lo hice pero igual da el error.
>>
>> Creo que algo hiciste mal porque debería funcionar. Por favor muestra
>> lo que estás haciendo y el mensaje de error.
>>
>> Ahh, creo que veo el problema -- deberías usar un CASE para transformar
>> el '' en NULL, o algo así.
>>
> Si, ahi si funciona pero eso era lo que me queria evitar porque tendria que hacer muchos. Imaginate son tablas de hasta 200 campos. Mediante el COPY si agrego un campo lo toma perfecto , estoy pensando mejor usar el COPY y agregar un campo de mas o manipular los archivos para eliminar la ultima coma de cada linea
>
>
>> --
>> Alvaro Herrera http://www.PlanetPostgreSQL.org/
>> "El día que dejes de cambiar dejarás de vivir"
>> --
>> TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net
>
> _________________________________________________________________
> Your PC, mobile phone, and online services work together like never before.
> http://clk.atdmt.com/MRT/go/108587394/direct/01/--
> TIP 2: puedes desuscribirte de todas las listas simultáneamente
> (envía "unregister TuDirecciónDeCorreo" a majordomo(at)postgresql(dot)org)
>
--
Emanuel Calvo Franco
Syscope Postgresql DBA
BaPUG Member
From: | Edwin Quijada <listas_quijada(at)hotmail(dot)com> |
---|---|
To: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
Cc: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: Integer con '' para carga masiva |
Date: | 2008-10-28 19:26:50 |
Message-ID: | BLU137-W4861B9523E22DD7A4268B5E3270@phx.gbl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
----------------------------------------
> Date: Tue, 28 Oct 2008 16:17:59 -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ó:
>
>>> Ahh, creo que veo el problema -- deberías usar un CASE para transformar
>>> el '' en NULL, o algo así.
>>>
>> Si, ahi si funciona pero eso era lo que me queria evitar porque
>> tendria que hacer muchos. Imaginate son tablas de hasta 200 campos.
>> Mediante el COPY si agrego un campo lo toma perfecto , estoy pensando
>> mejor usar el COPY y agregar un campo de mas o manipular los archivos
>> para eliminar la ultima coma de cada linea
>
> Si pudieras conseguir que la aplicación no emita el '' para campos que
> son números, no tendrías este problema.
>
Si, pero para eso tendria que saber la definicion de cada campo para construir el INSERT bueno creo que me tocara eso o agregar otro campo para hacerlo mediante un COPY.
Recibo los datos sin '' enteros o no. CSV normal
> --
> Alvaro Herrera Valdivia, Chile ICBM: S 39º 48' 55.3", W 73º 15' 24.7"
> "In Europe they call me Niklaus Wirth; in the US they call me Nickel's worth.
> That's because in Europe they call me by name, and in the US by value!"
_________________________________________________________________
Get Windows Live and get whatever you need, wherever you are. Start here.
http://www.windowslive.com/default.html?ocid=TXT_TAGLM_WL_Home_082008