0 返信 最新の回答 日時: Oct 8, 2013 1:47 AM ユーザー:t-nakamura

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

    t-nakamura

      タイトル

      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)とすると、数値変換された結果が正常に返されます。

            

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