2013-07-30 31 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 =纳瓦拉特纳中学与空间。怎么做?

回答

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) –