こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

ExcelのVBAからoracleデータベースのデータ取り出しについて

ORACLEのデータベース内の列名称が英文字交じりとなり
ユニコードの使用が必要みたいなのですがうまくいきません分かるかたがいらっしゃいましたら回答を御願いします。

現行
mySQL = "select 型式.仕様内容,型式.詳細内容 from A.品番 where(型式.仕様内容 like '検索内容%')"
Set rec = cnn.Execute(mySQL)

変更内容
仕様内容-> 内容A
詳細内容-> 内容B

変更後
mySQL = "select 型式.内容N'C,型式.内容D from A.品番 where(型式.内容C like '検索内容%')"
Set rec = cnn.Execute(mySQL)

エラー表示
実行時エラー (80040e14)
ORA-00923 :fromキーワードが指定の位置にありません。
と表示されます。

fromを認識させる為にはどうすればよいですか?

※N'の代わりにStrConv(対象文字,vbUnicode)を使用しても同じこととなります。

投稿日時 - 2004-02-03 13:33:21

QNo.768892

ohm

困ってます

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

エラーメッセージの内容からすると文字コードでは無く、
FROM句の問題のように見えますね。。。

一度FROM句の前後に全角のスペースが混じっていないか
など、ゴミが入っていないか調べてみてはいかがでしょうか?

ちなみに同じSQLはSQL*Plusでは動いたんですか?

投稿日時 - 2004-02-03 18:41:13

補足

回答有難うございます
from句の前後及び全体を確認しましたが、半角で入力されていました。

SQL*Plusについては、DB管理者ではないため、手持ちではありません。

半角英数字が無い列については、同様のSQL文で動作しました。

なぜだかが良く分かりません、ADO以外のモジュールを利用したほうが良いのでしょうか?oo4oは、有料だしなー。

質問文に間違いがありました。

変更内容
仕様内容-> 内容C (間違い:内容A)
詳細内容-> 内容D (間違い:内容B)

投稿日時 - 2004-02-04 08:55:50

お礼

なぜか、変更後の列名の前後に"(ダブコーテションマークだっけな?)を入れると正常に取得できるようです。
アドバイス有難うございました。

投稿日時 - 2004-02-05 10:50:54

あなたにオススメの質問