Intentar insertar un carácter de escape en una tabla da como resultado una advertencia.
Por ejemplo:
create table EscapeTest (text varchar(50));
insert into EscapeTest (text) values ('This is the first part \n And this is the second');
Produce la advertencia:
WARNING: nonstandard use of escape in a string literal
( Usando PSQL 8.2 )
¿Alguien sabe cómo solucionar esto?
string
postgresql
escaping
rjohnston
fuente
fuente
psql \copy
nota: descubrí queE'\n'
se escribió en el archivo en'\n'
lugar de como una nueva línea cuando lo usé en el argumento de consulta del metacomando `\ copy 'de psql.Frio.
También encontré la documentación sobre la E:
http://www.postgresql.org/docs/8.3/interactive/sql-syntax-lexical.html#SQL-SYNTAX-STRINGS
fuente
La advertencia se emite porque está utilizando barras invertidas en sus cadenas. Si desea evitar el mensaje, escriba este comando "set standard_conforming_strings = on;". Luego use "E" antes de su cadena, incluidas las barras invertidas que desea que postgresql interprete.
fuente
\copy xxxxxxxxxxx FROM /support01/db/data/xxxxxxxxx_7F.txt DELIMITER AS E'\x7f'
, obtengoparse error at "'\x7f'"
. Si tengo el standard_conforming_strings = off; y use el mismo comando anterior sin la E y las Comillas ... (DELIMITER AS \ x7f) Recibo el mensaje de advertencia, pero los datos se cargan bien. Entonces, su declaración puede ser correcta, pero no en este caso.Me parece muy poco probable que Postgres trunque sus datos en la entrada, ya sea que los rechace o los almacene como están.
fuente
character varying(4)
columna con la entrada "prueba" (dos espacios después de la palabra, 6 caracteres) truncará los espacios y almacenará el valor "prueba". Sin embargo, como regla general, puede asumir que Postgres producirá un error en lugar de truncar sus datos.Pregunta realmente estúpida: ¿está seguro de que la cadena se está truncando y no solo se rompe en el salto de línea que especifica (y posiblemente no se muestra en su interfaz)? Es decir, ¿espera que el campo se muestre como
o
Además, ¿qué interfaz estás usando? ¿Es posible que algo en el camino te esté comiendo las barras invertidas?
fuente