سؤال

محاولة إدراج الحرف في جدول النتائج في تحذير.

على سبيل المثال:

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)

أحد يعرف كيفية الحصول على حول هذا ؟

هل كانت مفيدة؟

المحلول

جزئيا.النص المدرج ، ولكن التحذير لا يزال يتم إنشاء.

وجدت المناقشة التي أشارت إلى أن النص بحاجة إلى أن تكون مسبوقة مع 'E', على هذا النحو:

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');

نصائح أخرى

باردة.

أنا أيضا العثور على وثائق تتعلق E:

http://www.postgresql.org/docs/8.3/interactive/sql-syntax-lexical.html#SQL-SYNTAX-STRINGS

كيو يقبل أيضا "الهروب" ثوابت السلسلة التي هي امتداد SQL القياسية.هروب ثابت سلسلة المحدد عن طريق كتابة حرف E (العلوي أو السفلي الحالة) فقط قبل افتتاح اقتباس مفردة مثلهـ'foo'.(عندما استمرار هروب سلسلة ثابتة عبر خطوط الكتابة الإلكترونية فقط قبل افتتاح أول الاقتباس.) في الهروب من سلسلة حرف مائل (\) يبدأ C مثل مائل تسلسل الهروب التي مزيج من مائل وبعد حرف(s) يمثل قيمة البايت الخاصة.\b backspace, \و هو شكل من الأعلاف ، سطر جديد هو إرجاع ، tab.كما دعمت هي \الأرقام ، حيث الأرقام تمثل ثماني قيمة البايت ، \xhexdigits ، حيث hexdigits يمثل سداسي عشري قيمة البايت.(ومن مسؤوليتكم أن البايت تسلسل يمكنك إنشاء صالحة الشخصيات في الخادم ترميز مجموعة الأحرف.) أي حرف بعد مائل تؤخذ حرفيا.وهكذا تشمل مائل حرف اكتب شرطتين مائلتين عكسيتين (\\).كما اقتبس واحدة يمكن تضمينها في الهروب سلسلة طريق الكتابة \ ' ، بالإضافة إلى الطريقة العادية ".

التحذير صدر منذ كنت تستخدم الخطوط المائلة العكسية في سلاسل الخاص بك.إذا كنت ترغب في تجنب رسالة ، اكتب هذا الأمر "تعيين standard_conforming_strings=على"؛.ثم استخدام "هاء" قبل سلسلة الخاص بك بما في ذلك الخطوط المائلة العكسية التي تريد كيو إلى intrepret.

أجد أنه من المستبعد جدا بالنسبة بوستجرس إلى اقتطاع البيانات الخاصة بك على المدخلات - إما يرفض ذلك أو مخازن الأمر كما هو.

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=> create table EscapeTest (text varchar(50));
CREATE TABLE
milen=> insert into EscapeTest (text) values ('This will be inserted \n This will not be');
WARNING:  nonstandard use of escape in a string literal
LINE 1: insert into EscapeTest (text) values ('This will be inserted...
                                              ^
HINT:  Use the escape string syntax for escapes, e.g., E'\r\n'.
INSERT 0 1
milen=> select * from EscapeTest;
          text
------------------------
 This will be inserted
  This will not be
(1 row)

milen=>

حقا سؤال غبي:هل أنت متأكد من السلسلة يتم اقتطاع وليس فقط كسر في لينيبريك تحديد (وربما لا يظهر في واجهة)?أي هل تتوقع مجال عرض

هذا وسيتم إدراج هذا لن يكون

أو

هذا وسيتم إدراج

هذا لن يكون

أيضا ، ما واجهة تستخدمه ؟ هل من الممكن أن شيئا ما على طول الطريق هو تناول الخطوط المائلة العكسية?

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top