Mencoba memasukkan karakter escape ke dalam tabel akan menghasilkan peringatan.
Sebagai contoh:
create table EscapeTest (text varchar(50));
insert into EscapeTest (text) values ('This is the first part \n And this is the second');
Menghasilkan peringatan:
WARNING: nonstandard use of escape in a string literal
( Menggunakan PSQL 8.2 )
Ada yang tahu bagaimana menyiasati ini?
string
postgresql
escaping
rjohnston
sumber
sumber
psql \copy
catatan: Saya menemukan bahwaE'\n'
itu ditulis ke file'\n'
daripada sebagai baris baru ketika saya menggunakannya dalam argumen kueri ke perintah meta `\ copy 'psql.Keren.
Saya juga menemukan dokumentasi tentang E:
http://www.postgresql.org/docs/8.3/interactive/sql-syntax-lexical.html#SQL-SYNTAX-STRINGS
sumber
Peringatan dikeluarkan karena Anda menggunakan garis miring terbalik di string Anda. Jika Anda ingin menghindari pesan tersebut, ketik perintah ini "set standard_conforming_strings = on;". Kemudian gunakan "E" sebelum string Anda termasuk garis miring terbalik yang Anda ingin postgresql ke intrepret.
sumber
\copy xxxxxxxxxxx FROM /support01/db/data/xxxxxxxxx_7F.txt DELIMITER AS E'\x7f'
, saya mengertiparse error at "'\x7f'"
. Jika saya memiliki standard_conforming_strings = off; dan menggunakan perintah yang sama di atas tanpa E dan Kutipan ... (DELIMITER AS \ x7f) Saya mendapatkan pesan peringatan, tetapi data dimuat dengan baik. Jadi pernyataan Anda mungkin benar tetapi tidak dalam kasus ini.Saya merasa sangat tidak mungkin bagi Postgres untuk memotong data Anda pada input - itu menolak atau menyimpannya apa adanya.
sumber
character varying(4)
kolom yang diberi input "test" (dua spasi setelah kata, 6 karakter) akan memotong spasi dan menyimpan nilai "test". Sebagai aturan umum, bagaimanapun, Anda dapat berasumsi bahwa Postgres akan error daripada memotong data Anda.Pertanyaan yang benar-benar bodoh: Apakah Anda yakin string sedang terpotong, dan tidak hanya putus pada pemutusan baris yang Anda tentukan (dan mungkin tidak muncul di antarmuka Anda)? Yaitu, apakah Anda mengharapkan bidang ditampilkan sebagai
atau
Juga, antarmuka apa yang Anda gunakan? Mungkinkah sesuatu di sepanjang jalan memakan garis miring terbalik Anda?
sumber