- - PR -
レコードの追加(PostgreSQL)について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-09-03 15:42
初めて投稿させていただきます。 redhat7.3にpostgresql-7.3.3をインストールいたしました。 データベースとテーブルを作成後にレコードを追加しようとしたのですが、 エラーが表示されて上手くいきません。。。 文字コードをunicodeにしたので、utf-8対応のエミュレータ(putty)も 使用してみましたが、結局上手くいきませんでした。。 詳しくは以下をご参照下さい↓(実施した内容) ◆文字コードをUnicodeとしてデータベースを作成 bash-2.05a$ createdb -E UNICODE sampledb CREATE DATABASE ◆「keijiID」というシーケンス(初期値1)を作成 sampledb=# CREATE SEQUENCE keigiid START 1; CREATE SEQUENCE ◆作成したシーケンスとテーブルを確認 sampledb=# \d List of relations Schema | Name | Type | Owner --------+---------+----------+---------- public | keigiid | sequence | postgres public | keiji | table | postgres (2 rows) ◆テーブルの構造を確認 sampledb-# SELECT \d keiji Table "public.keiji" Column | Type | Modifiers -----------+-----------------------------+-------------------------------------- ----------------------- id | integer | not null default nextval('KeijiID'::t ext) name | character varying(255) | not null email | character varying(255) | title | character varying(255) | not null body | character varying(2048) | not null writedate | timestamp without time zone | not null default ('now'::text)::times tamp(6) with time zone host | character varying(255) | Indexes: keiji_pkey primary key btree (id) ◆テーブルにレコードを追加 ⇒ エラーとなってしまいます。。。 sampledb=# insert into keiji (name, title, body) sampledb-# values ('掲示板テスト' '掲示板サンプル' '掲示板のテストです'); ERROR: parser: parse error at or near "'掲示板サンプル'" at character 62 ◆テーブルにレコードを追加(putty使用) ⇒エラーとなってしまいます。。。 sampledb=# insert into keiji (name, title, body) sampledb-# values ('掲示板テスト' '掲示板のサンプル' ' sampledb'# 掲示板のテストです'); ERROR: parser: parse error at or near "'掲示板のサンプル'" at character 68 ※実際には2バイト文字は画面上には表示されていません こんな具合です。 何がいけないのでしょうか? どなたがご教授下さい。宜しくお願い申し上げます。 | ||||
|
投稿日時: 2005-09-03 23:19
「,」忘れていませんか?
sampledb-# values ('掲示板テスト' , '掲示板サンプル' , '掲示板のテストです'); | ||||
|
投稿日時: 2005-09-04 00:33
せんさん
ご返答誠にありがとうございます。 ご指摘の通り、「,」を忘れていましたので、 以下の通り実行いたしました。 sampledb=# insert into keiji (name, title, body) sampledb-# values ('掲示板テスト', '掲示板サンプル', '掲示板サンプル'); sampledb'# 「;」を入力して本人は、コマンドの入力は終了したつもりでしたが、 コマンドの入力待ちとなっているのです。。。 そこでまた以下の通り入力したのですが、結局エラーが表示されます。。 sampledb'# '; sampledb(# ); ERROR: parser: unterminated quoted string at or near "'; );" at character 100 ネットでいろいろ調べましたが??です。。 ご教授の程、宜しくお願い申し上げます。 | ||||
|
投稿日時: 2005-09-04 02:05
上記から、「'」(単一引用符)が抜けていると思われます。 こちらのページに記述してある、sql文をコピペする限りは insert は正常に実行されますので、 再度実行している sql文を見直すか、こちらに書いてある sql文をコピペしてみてください。 | ||||
|
投稿日時: 2005-09-04 23:52
せんさん
>こちらのページに記述してある、sql文をコピペする限りは insert は正常に実行され >ますので、 >再度実行している sql文を見直すか、こちらに書いてある sql文をコピペしてみて >ください。 上記でいうこちらのsql文というのは、私が記述したものでしょうか? それとも、せん様が記述して下さったものでしょか? 私のものは、エラーが表示されたものをそのままコピーしたものです。 せん様から教えて頂いたものをコピペして実行致しましたが、 以下の通りの結果となってしまいました。 sampledb=# insert into keiji (name, title, body) sampledb-# values ('掲示板テスト' , '掲示板サンプル' , '掲示板のテストです'); ERROR: Invalid UNICODE character sequence found (0xc800) やっぱり、文字コードをunicodeにしたのがいけないのでしょうか? | ||||
|
投稿日時: 2005-09-05 00:26
[quote]
tk919さんの書き込み (2005-09-04 23:52) より: 上記でいうこちらのsql文というのは、私が記述したものでしょうか? それとも、せん様が記述して下さったものでしょか? [/quote] ごめんなさい。混乱させたようですが、tk919 さんが記述したものです。 [quote] sampledb=# insert into keiji (name, title, body) sampledb-# values ('掲示板テスト' , '掲示板サンプル' , '掲示板のテストです'); ERROR: Invalid UNICODE character sequence found (0xc800) [/quote] 実行環境によるのだとおもいますが、 上記 SQLを「EUC_JP」なターミナルでコピペすると、同様なエラーが発生します。 「UNICODE( UTF-8 )」なターミナルでコピペすると、正常に登録されます。 この辺はどうでしょうか? | ||||
|
投稿日時: 2005-09-05 00:49
せんさん
ご返答誠にありがとうございます。 > 上記 SQLを「EUC_JP」なターミナルでコピペすると、同様なエラーが発生します。 >「UNICODE( UTF-8 )」なターミナルでコピペすると、正常に登録されます。 >この辺はどうでしょうか? ありがとうございます。 確かに、UTF対応のターミナルでコピペをしたら登録はされました。 しかし、画面上には日本語で入力した文字は表示されないのです。 よって、 #SELECT * FROM keiji; と入力しても、画面上には、文字スペースがあるのみで 文字自体は表示されないのです。。。 これは、私が使っているターミナル(putty)の問題かもしれません。 差し支えなければ、せん様が使用されているターミナルを 教えていただけないでしょうか? 何卒、宜しくお願い申し上げます。 |
1