2013-07-30 3 views
1

Я использую Postgresql V 9.1:значение hstore с пространством

SELECT 'k=>name, v=>Nava Ratna Secondary School'::hstore; 

Этот код возвращает ошибку:

ERROR: Syntax error near 'R' at position 17 
LINE 1: SELECT 'k=>name, v=>Nava Ratna Secondary School'::hstore; 
      ^

********** Error ********** 

ERROR: Syntax error near 'R' at position 17 
SQL state: XX000 
Character: 8 

и заполнение пробелов в 'наваратна средней школы', как 'Nava_Ratna_Secondary_School' или удалить их Работает «NavaRatnaSecondarySchool».

Но мне нужно хранить среднюю школу v = Nava Ratna с пробелами. Как это сделать?

ответ

1
SELECT 'k=>name, v=>"Nava Ratna Secondary School"'::hstore; 

Когда есть одиночные кавычки в значениях или в ключах проще всего использовать доллар цитата:

SELECT $$k=>"name", v=>"St. Xavier's Academy"$$::hstore; 

или более широкое вытекание:

SELECT 'k=>"name", v=>"St. Xavier''s Academy"'::hstore; 
+0

[ "Дубль цитаты ключей и значений, которые включают пробелы, запятые, = s или> s. "] (http://www.postgresql.org/docs/current/static/hstore.html) –

+0

Спасибо! Оно работает. Я новичок в кодировании SQL. В чем разница между использованием «или» в этом контексте? Мне нужно изучить основы. –

+0

@Ram Check [строковые константы] (http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-CONSTANTS) –

Смежные вопросы