Ingres 用の ODBC ドライバーを介して Ingres データベースから読み取る SSIS 2008 データ ソース ビューを作成しようとしています。Ingres 10 Community Edition をダウンロードして ODBC ドライバーを取得し、インストールして、データ アクセス サーバーと DSN を SSIS を実行しているサーバーにセットアップしました。
SSIS を実行しているサーバーで SQL Server 2008 データベース エンジンに接続すると、次のコマンドを実行して、ODBC DSN 経由で Ingres からデータを取得できます。
SELECT *
FROM OPENROWSET( 'MSDASQL'
, 'DSN=IngresODBC;UID=testuser;PWD=testpass'
, 'SELECT * FROM iitables')
したがって、ODBC の設定が正しいことは確かです。
Ingres はこの構文をサポートしていないため、SQL Server スタイルの括弧で囲まれた識別子の引用符を使用して同じクエリを実行しようとすると、エラーが発生します。
SELECT *
FROM OPENROWSET( 'MSDASQL'
, 'DSN=IngresODBC;UID=testuser;PWD=testpass'
, 'SELECT * FROM [iitables]')
エラーは「[Ingres][Ingres 10.0 ODBC Driver][Ingres 10.0]line 1, Unexpected character '['.」です。
私が見つけたのは、Ingres から SSIS データ ソース ビューにテーブルを追加しようとすると、同じエラーが発生することです。ODBC プロバイダーを選択する最初のステップは正常に機能し、追加するテーブル/ビューのリストが表示されます。次に、任意のテーブルを選択してビューに追加しようとすると、「エラー [5000A] [Ingres][Ingres 10.0 ODBC Driver][Ingres 10.0]line 3, Unexpected character '['.」」が表示されます。
名前付きクエリを作成するという Ed Harper の提案に従うことも妨げられているようです。名前付きクエリに次のテキストを入力すると:
SELECT *
FROM "iitables"
「エラー [5000A] [Ingres][Ingres 10.0 ODBC Driver][Ingres 10.0]line 2, Unexpected character '['」」というエラーが表示されます。
エラーによると、SSIS から ODBC に渡されたクエリ テキストは次のとおりです。
SELECT [iitables].*
FROM
(
SELECT *
FROM "iitables"
)
AS [iitables]
SSIS は、ブラケット引用文字が受け入れられない場合でも受け入れられると想定しているようです。それらを使用しないように説得するにはどうすればよいですか?二重引用符は受け入れられます。