от
Попытка вставить символ в таблице результатов в виде предупреждения. Например:
create table EscapeTest (text varchar(50));

insert into EscapeTest (text) values ('This is the first part \n And this is the second');
Выдает предупреждение:
WARNING:  nonstandard use of escape in a string literal
(Используя psql в 8.2) Кто-нибудь знает как обойти это?

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

6 Ответы

0 голосов
от
Попытка вставить символ в таблице результатов в виде предупреждения. Например:
create table EscapeTest (text varchar(50));

insert into EscapeTest (text) values ('This is the first part \n And this is the second');
Выдает предупреждение:
WARNING:  nonstandard use of escape in a string literal
(Используя psql в 8.2) Кто-нибудь знает как обойти это?
0 голосов
от
Частично. Текст вставляется, но предупреждение все равно генерируется. Я нашел обсуждение, что указанный текст необходимо предшествует "е", как таковой:
insert into EscapeTest (text) values (E'This is the first part \n And this is the second');
Это подавляет предупреждение, но текст был все-таки не правильно возвращена. Когда я добавил дополнительный Слэш, как Майкл предложил, он работал. В качестве таких:
insert into EscapeTest (text) values (E'This is the first part \\n And this is the second');
0 голосов
от
Круто. Я также обнаружил, что документация относительно е: http://www.postgresql.org/docs/8.3/interactive/sql-syntax-lexical.html#SQL-SYNTAX-STRINGS PostgreSQL также можно "убежать" строковые константы, которые представляют собой расширение стандарта SQL. Строку постоянный вылет определяется пишу букву Е (верхний или нижний регистр) просто до открытия одинарные кавычки, например, по электронной'foo'. (При продолжении строку побег постоянным по всей линии, писать е только перед первой открывающей кавычки.) В строку, символ обратной косой черты (\) начинается с-как escape-последовательности обратная косая черта, в которой комбинация обратный Слэш и символ(ы) представляет собой особый байт. \B-это клавиша Backspace, \Ф-это форма питания, \N-это перевод строки, \R-это возврат каретки, \T-это табуляция. Также поддерживаются \цифр, где цифры представляет собой восьмеричное значение байта, и xhexdigits\, где hexdigits представляет собой шестнадцатеричное значение байта. (Это ваша ответственность, что последовательности байтов, которые вы создаете, допустимые символы в характере сервер установить кодировку). Любой другой символ после обратной косой черты стоит воспринимать буквально. Таким образом, чтобы включить обратную косую черту, пишут две обратные косые черты (\\). Кроме того, один цитаты могут быть включены в строку, написав \', в дополнение к обычному способу ".
0 голосов
от
Предупреждение выдается, если вы используете символы в строки. Если вы хотите избежать сообщение, введите команду "установить standard_conforming_strings=о;". Затем используйте "E" до вашего строку, включая символы, которые вы хотите PostgreSQL для intrepret.
0 голосов
от
Я нахожу это крайне маловероятным для Postgres, чтобы обрезать ваши данные на входе - это либо отклоняет его или сохраняет его как.
milen@dev:~$ psql
Welcome to psql 8.2.7, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

milen=
0 голосов
от
Очень глупый вопрос: вы уверены, что строка усекается, а не просто разбитый на разрыв строки можно указать (и, возможно, не показывает в интерфейсе)? Т. е. вы ожидаете поле, чтобы показать, как Это будет вставлено \N это не будет быть или Это будет вставлено Этого не будет Кроме того, какой интерфейс вы используете? Возможно, что-то ест ваши обратные слеши?
Добро пожаловать на сайт ByNets, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...