AnsweredAssumed Answered

FM Server Advanced 12に、ODBCでSQL Server 2012の...

Question asked by t-nakamura on Oct 8, 2013

タイトル

FM Server Advanced 12に、ODBCでSQL Server 2012のリンクサーバとしてSELECTするとエラー

フォーラムに投稿

     はじめまして。お世話になります。

     FileMaker Server Advanced 12 を、ODBCでSQL Server 2012 Expressのリンクサーバに登録し、SQL Server 2012のManagement Studioでリンクサーバ上のテーブルからのSELECT文を発行すると、エラーとなってしまう現象に遭遇しています。

      

     SELECT文の様式は、たとえば次のような形です。(10.190.250.21がFileMakerサーバ。"キャンセル物件"はテーブル名、"プロジェクト番号"は文字型。入力値の制限(常時)で8文字の項目)

     SELECT * FROM OPENQUERY([10.190.250.21],'SELECT "プロジェクト番号" FROM "キャンセル物件"')

      

     起きるエラーは次のとおりです。

     ---

     リンク サーバー "10.190.250.21" の OLE DB プロバイダー "MSDASQL" から、メッセージ "要求された変換はサポートされていません。" が返されました。
     メッセージ 7341、レベル 16、状態 2、行 1
     リンク サーバー "10.190.250.21" の OLE DB プロバイダー "MSDASQL" から列 "[MSDASQL].プロジェクト番号" の現在行の値を取得できません。
     ---

      

     調べてみると、SELECT句で取り出そうとするフィールドが、文字型である場合に限り、エラーが起きるようで、数値型のフィールドしか含まれていないときは、エラーが起きないようです。

     引用符内のSELECT文中で、型をCAST("プロジェクト番号" AS VARCHAR(8))などとキャストしてみても、結果は変わりません。

     ちなみに、CAST("プロジェクト番号" AS NUMERIC)とすると、数値変換された結果が正常に返されます。

      

     何かヒントになりそうなことがありましたら、ご教示お願いしたく、よろしくお願いいたします。

Outcomes