SQLについて質問です。

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

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

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

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

よろしくお願いします。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/11/22 20:38:00
  • 終了:2011/11/24 14:31:55

ベストアンサー

id:windofjuly No.1

うぃんど回答回数2625ベストアンサー獲得回数11492011/11/22 21:18:48

ポイント150pt

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

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

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

id:KAIHATSU

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

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

2011/11/24 14:30:46

その他の回答(1件)

id:windofjuly No.1

うぃんど回答回数2625ベストアンサー獲得回数11492011/11/22 21:18:48ここでベストアンサー

ポイント150pt

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

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

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

id:KAIHATSU

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

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

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

きゃづみぃ回答回数13537ベストアンサー獲得回数11982011/11/22 21:21:40

ポイント50pt

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

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

id:KAIHATSU

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

2011/11/24 14:26:37

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません