こんにちは、CData Software Japan パートナーサクセスの赤塚です。
今回は CData Software Advent Calendar 2023 2日目の記事として、SAP HANA データに SQL Server のリンクサーバーとして接続する場合に invalid table name エラーが発生する場合の対応方法についてご紹介いたします。
SQL Server にはリンクサーバーと呼ばれる外部の DB を SQL Server から呼び出せる統合機能があり、CData ODBC Driver for SAPHANA に付属している SQL Gateway を使えば、SAP HANA データを SQL Server のリンクサーバーとして利用できます。
SAP HANA データにSQL Server のリンクサーバーとして接続する方法
リンクサーバーを設定し、SQL Server Management Studio (SSMS) で SELECT 文を実行した際に invalid table name エラーが発生する場合、クエリで指定したテーブルへのルーティングが正しく行われていない可能性がありますので、以下を参考に修正を行ってみてください。
現象
SSMS 側で SELECT 文などのクエリを実行すると以下のエラーが発生。
メッセージ 0、レベル 16、状態 1、行 3
[500] 指定したコマンドが実行できませんでした。invalid table name: Could not find table/view <テーブル名> in schema <スキーマ名>: line 1 col 375 (at pos 374)
前提条件
以下については正しく設定が行われていることが前提となりますのであらかじめご確認ください。
- SQL Gateway でのSAP HANA ODBC DSN を設定し、ODBCデータソースアドミニストレーター の、「システムDSN」にて、テーブルのプレビューが表示可能であること
- SQL Server でSAP HANA リンクサーバーを設定しSSMSで作成したSAPHANAのリンクサーバーにて、SAP HANA 側のテーブル一覧が表示可能であること
対応方法
SSMS でクエリ実行時に対象のテーブルが参照できないことが原因のため、以下の手順で 「ODBC データソースアドミニストレーター」 の、「システムDSN」内にある「スキーマ名」を正しく設定し直します。
- ODBCデータソースアドミニストレーターのシステムDSNのタブにて SAP HANA構成を開く
- 以下のスクリーンショット「スキーマ名の確認」を参考に「スキーマ名」に該当する値を確認
- 以下のスクリーンショット「接続設定」を参考に「Schema」の項目に2で確認したスキーマ名を設定
念のため「Database」の項目も正しく設定されているかもご確認ください。
- DSN構成にて「接続テスト」をクリックして問題なく接続可能なことを確認、OK をクリックして DSN 構成を保存し、ODBCデータソースアドミニストレーター自体もOKをクリックして設定を保存
CData SQL Gateway を再起動
- SSMS にてサーバー接続を切断し、再度接続
- SSMS にて、参照したいテーブルを右クリックして表示される「新しいクエリエディタウィンドウ」に記載さる SELECT 文を実行し、SSMS から問題なくクエリが実行できることを確認
以上です。
明日は CData Software Advent Calendar 2023 3日目の記事です。お楽しみに!
関連コンテンツ