2016-05-09 16 views
0

私はpostgresqlでテーブルを作成し、そのテーブルにデータを挿入しようとしました。しかし、それは「私が使用していても、私の文字列リテラルのエラーを与える 'または。psql端末の文字列リテラル

助けてください。

sujith=# CREATE TABLE venue (
sujith(#  oid integer NOT NULL, 
sujith(#  id integer NOT NULL, 
sujith(#  name varchar[30] NOT NULL, 
sujith(#  _time_seq_ integer, 
sujith(#  _modified_by_ integer, 
sujith(#  _modified_on_ timestamp without time zone 
sujith(#); 
CREATE TABLE 
sujith=# INSERT INTO VENUE (oid, id, name) values (0 , 1 , 'ibm'); 
ERROR: malformed array literal: "ibm" 
LINE 1: INSERT INTO VENUE (oid, id, name) values (0 , 1 , 'ibm'); 
                 ^
DETAIL: Array value must start with "{" or dimension information. 
sujith=# INSERT INTO VENUE (oid, id, name) values (0 , 1 , "ibm"); 
ERROR: column "ibm" does not exist 
LINE 1: INSERT INTO VENUE (oid, id, name) values (0 , 1 , "ibm"); 
                 ^
sujith=# 
+4

'varchar [30]'は 'varchar'の配列です;代わりに' varchar(30) 'を使用します;' 'ibm" 'は文字列リテラルではなく、' ibm'という名前の識別子です。 – Abelisto

答えて

2

をちょうどあなたの問題を解決するために()[]を置き換える。だから、varchar(30)

varchar[30]を置き換えます
CREATE TABLE venue (
oid integer NOT NULL, 
id integer NOT NULL, 
name varchar(30) NOT NULL, 
_time_seq_ integer, 
_modified_by_ integer, 
_modified_on_ timestamp without time zone); 

INSERT INTO VENUE (oid, id, name) values (0 , 1 , 'ibm'); 
関連する問題