Buenos dias:

2017-01-23 16:24 GMT+01:00 jvenegasperu . <jvenegasp...@gmail.com>:
> insert into
> cdrs.errores_sunat
> (faultcode,faultstring,invoice_type_code,s_num,ambiente,lado,metodo)
> values ('.200',$$ Detalle: Failed to establish a backside
> connection$$,'RA','FF14-1','beta',':Serve','getStatus');

La parte problematica al menos parece no dar problemas:


n=> values ('.200',$$ Detalle: Failed to establish a backside
connection$$,'RA','FF14-1','beta',':Serve','getStatus');
 column1 |                       column2                       |
column3 | column4 | column5 | column6 |  column7
---------+-----------------------------------------------------+---------+---------+---------+---------+-----------
 .200    |  Detalle: Failed to establish a backside connection | RA
  | FF14-1  | beta    | :Serve  | getStatus
(1 row)

> 1.- Cuando intento guardar con pgadmin o php con el espacio en blanco al
> inicio guarda todos los campos excepto este campo y no me devuelve ningun
> error
> 2.- Cuando quito el espacio al inicio de la cadena he intento guardar con
> pgadmin si me guarda el campo

Eso tiene toda la pinta de ser caprichitos de pgAdmin, no lo us nunca,
pero es posible que si pones que version (de pgAdmin) usas ( ya que si
no recuerdo mal acaban de sacar una nueva ) alguien te pueda ayudar.

> 3.- Cuando quito el espacio al inicio de la cadena he intento guardar con
> php solo me guarda "Detalle:" y se corta donde empieza los dos puntos

Eso tiene toda la pinta de que el PHP te este usando, en su subsistema
de base de datos, los : como marcador de campo a sustituir por nombre.
No estoy familiarizado con el, pero en las docs estara y cosas como
esas pasan en muchas API.

En general, desde un programa, NUNCA uses una cadena con el query
completo, usa sustituciones, cosas tipo execute('insert into
cdrs.errores_sunat
(faultcode,faultstring,invoice_type_code,s_num,ambiente,lado,metodo)
values (?,?,?,?,?,?)',
'.200',
"Detalle: Failed to establish a backside connection",
'RA','FF14-1','beta',':Serve','getStatus')

La sintaxis exacta variara con el lenguage / requester que uses, pero
todos lo soportan, y ademas si tienes las cosas en variables como
suele pasar es mucho mas comodo (execute($query, $v1, $v2, ....), RTFM
for details pero seguro que se puede ).

> Quitar el espacio al inicio me supone menos espacio usado por el registro y
> se soluciona con un trim.
> Sin embargo desde php me corta la cadena hasta los dos puntos alguien me
> podria indicar como podria grabar esa cadena incluido los dos puntos y me
> queda la duda no se puede insertar en postgres una cadena que empieza con
> espacio en blanco?

Si que se puede, tu problema parece ser de los programas clientes que
usas. Usando uno sencillito ( el psql que viene incluido ):

n=> create temporary table t (v varchar);
CREATE TABLE
n=> insert into t values (' '), ($$ $$), (' $$ $$ '), ($$ ' ' $$);
INSERT 0 4
n=> select '<'||v||'>', length(v) from t;
 ?column?  | length
-----------+--------
 < >       |      1
 < >       |      1
 < $$ $$ > |      7
 < ' ' >   |      5
(4 rows)

Francisco Olarte.

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a