SQLについて質問です。

DBはオラクル(9i)を使用しています。

SQLの項目に2バイト文字が入った場合にエラーが出るので下記の例のように\"で囲って回避しています。

例)
SELECT 名前,住所
FROM 個人データ
↓↓↓↓↓↓↓
SELECT \"名前\",\"住所\"
FROM \"個人データ\"

上記の様にしているのですが、数百行もあるSQLで\"を埋め込んでいくのが非常に時間がかかっています。自動的に\"を埋め込んむツール、方法等はないでしょうか。

よろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2011/11/24 14:31:55
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:windofjuly No.1

回答回数2625ベストアンサー獲得回数1149

ポイント150pt

あなたが直面しているような問題があるから、
日本語のテーブル名やカラム名は使うなってのが定説になってたりします
 
そのため、もっとも楽で、今後もいらぬトラブルを回避するって意味で、
まずは半角英数だけでテーブルを構築しなおして、そこにデータをコピー
プログラムのほうは文字列置換で対応するのが正攻法となります
 
「先の事なんか知るか!」「とにかく動けばいいんだ!」ということであれば、
まずは下記のように半角スペースでしっかり区切るようにしてみてください
これならば置換で一発変換できるはずです

SELECT 名前,住所 FROM 個人データ
  ↓ ↓ ↓
SELECT 名前 , 住所 FROM 個人データ

 
過去質問と”をエスケープしてるってことでVB系だとは思いますが、
上記でもダメならば接続方法や利用しているドライバの関係だと思いますので、
環境(oo4oバージョンxxとかODBC・・・とか)と、
その部分のコードを明記して、他の回答を待ってみてください

id:KAIHATSU

ご回答ありがとうございます。

半角スペースで区切ることでは避けれないケースがありましたので、
自作でツール作成することにしました。

2011/11/24 14:30:46

その他の回答1件)

id:windofjuly No.1

回答回数2625ベストアンサー獲得回数1149ここでベストアンサー

ポイント150pt

あなたが直面しているような問題があるから、
日本語のテーブル名やカラム名は使うなってのが定説になってたりします
 
そのため、もっとも楽で、今後もいらぬトラブルを回避するって意味で、
まずは半角英数だけでテーブルを構築しなおして、そこにデータをコピー
プログラムのほうは文字列置換で対応するのが正攻法となります
 
「先の事なんか知るか!」「とにかく動けばいいんだ!」ということであれば、
まずは下記のように半角スペースでしっかり区切るようにしてみてください
これならば置換で一発変換できるはずです

SELECT 名前,住所 FROM 個人データ
  ↓ ↓ ↓
SELECT 名前 , 住所 FROM 個人データ

 
過去質問と”をエスケープしてるってことでVB系だとは思いますが、
上記でもダメならば接続方法や利用しているドライバの関係だと思いますので、
環境(oo4oバージョンxxとかODBC・・・とか)と、
その部分のコードを明記して、他の回答を待ってみてください

id:KAIHATSU

ご回答ありがとうございます。

半角スペースで区切ることでは避けれないケースがありましたので、
自作でツール作成することにしました。

2011/11/24 14:30:46
id:taknt No.2

回答回数13539ベストアンサー獲得回数1198

ポイント50pt

秀丸でマクロを使って置換したみたらいかがでしょうか?

http://hide.maruo.co.jp/lib/macro/listreplace211.html

id:KAIHATSU

ツール等がなければマクロ、スクリプトで自作かなぁとは思っていたんですが、やはり自作しかないのですねぇ

2011/11/24 14:26:37

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません