• ベストアンサー

Oracle 8i コンマ(,)を含むデータをinsertしたい

再度、質問させていただきます。 コンマを含むデータをinsertするにはどうしたらよいでしょうか? 例えば、次のようなテーブルを作成します。 CREATE TABLE SAMPLE (NAME VARCHAR( 15) NOT NULL, ADDRESS VARCHAR(30)); そして、 insert into sample values (Yamada, '731 Fondren,Houston,TX'); とinsertすると当然エラーになります。”ORA-00984: ここでは列は使用できません”というエラーが返ってきます。 "731 Fondren,Houston,TX"というコンマを含むアドレスをinsertしたいのですが、どうしたらよいでしょうか? set scan off をしてもダメで、 '[731 Fondren,Houston,TX]'という風に変えても、上と同じ”ORA-00984: ここでは列は使用できません”というエラーが返ってきます。グーグルで調べて、arrayof(text)という風にタイプを変えるのかなと試しましたが、だめでした。 何かアドバイスをお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

insert into sample values ('Yamada', '731 Fondren,Houston,TX'); としてください。

Fireworks
質問者

お礼

成功しました。ありがとうございました。

その他の回答 (2)

回答No.3

カンマ区切りのデータでもシングルクオーテーション ' がついていれば通常問題なくinsert出来ます 今回の例で insert into sample values (Yamada, '731 Fondren,Houston,TX'); がカットアンドペーストされたものだとすると yamada が ' でくくられていないのが原因だと思います。

Fireworks
質問者

お礼

おっしゃる通りでした。char関連の型は、'でくくらないといけないのですね。ありがとうございました。

  • kots
  • ベストアンサー率18% (4/22)
回答No.1

実行する環境にもよるのですが、 PLSQLを使ってみてはどうでしょうか? 例えばこんな感じにね! declare addr := '731 Fodren,Houston TX'; begin insert into sample values('yamada',addr); commit; end; /

Fireworks
質問者

お礼

PLSQLという方法もあるのですね。参考になりました。ありがとうございました。

関連するQ&A