none
ExcelからMicrosoft QueryでOracleデータベースに接続してデータ抽出する際の日本語テーブル名に対して生成されるSQLについて RRS feed

  • 質問

  • ExcelからOracleデータベースに接続してデータを抽出する際にMicrosoft Queryを使っています。手順は下記のとおりです。
    1. リボンの[データ]タブを選択、[その他データソース]->[Microsoft Query]を選択する。
    2. "データソースの選択"画面が表示され、[データベース]タブを選択して、一覧から事前にOracle ODBC設定したデータソースを選択後、[OK]ボタンを押下する。
    3. "Oracle ODBCドライバ接続"画面が表示される。入力項目としてサービス名/ユーザ名/パスワードを入力し、[OK]ボタンを押下する。
    4. "クエリ ウィザード・列の選択"画面が表示される。この際、以下のようなマルチバイト文字(漢字)表記のテーブル(またはビュー)名を選択する。
      「(和)漢字テーブル名」
    5. "クエリ ウィザード・列の選択"画面の[クエリの列(C):]に「(和)漢字テーブル名」の列が表示されたことを確認し、[次へ(N)]ボタンを押下する。
    6. "クエリ ウィザード・データ抽出"画面の表示され、[抽出する列(C):]を確認し、[次へ(N)]ボタンを押下する。
    7. "クエリ ウィザード・完了"画面の表示され、[Microsoft Excel にデータを返す(R)]を選択し、[完了]ボタンを押下する。
    この際、通常であれば"データのインポート"画面が表示される筈なのですが「ORA-00923:FROMキーワードが指定の位置にありません。」というエラー・ダイアログが出現します。
    これに対してOracleのサポートに問い合わせたところ、以下のような回答でした。
    「マルチバイト文字のテーブル名でSQLクエリを実行するときは名称を二重引用符で囲まなければならない。Microsoft Queryが生成したクエリをSQL*Plusで実行しても同様のエラーになる筈。」
    実際にSQL*Plusで試して、そのとおりの結果になりました(この場合、テーブル名冒頭の全角の丸括弧がSQL構文的に半角の括弧と同様に扱われたようです)。そこで質問です。
    Microsoft Query自動生成のSQLに上記のようなマルチバイト文字のテーブル名やカラム名には二重引用符で囲んで生成するという機能はないのでしょうか。
    以上、宜しくお願い致します。

    2017年11月15日 8:58