Easysoftのお客様は、Salesforce.com ODBCドライバーを使用して、SQLServerでSalesforce.comデータを操作します。顧客がSQLServerからSalesforce.comにラージオブジェクトデータを挿入しようとすると、問題が発生します。たとえば、Product2の説明フィールドにデータを挿入しようとしています:
INSERT OPENQUERY (SALESFORCE, 'SELECT Name, ProductCode, Description FROM Product2') VALUES ('LongProd', 'LP01', 'My Long Field');
OLE DB provider "MSDASQL" for linked server "SALESFORCE" returned message "Query-based insertion or updating of BLOB values is not supported."
結果のエラーメッセージに示されているように、このINSERTは失敗します。根本的な問題は、一部のINSERTメソッドで、ODBCベースのリンクサーバーを使用しているときにSQLServerからLONGVARCHAR/LONGNVARCHARフィールドを更新できないことであると思われます。 (問題フィールドの説明は、Salesforce.comODBCドライバーがLONGNVARCHARとしてSQLServerに報告するSalesforce.comTEXTAREAです。)
大きなオブジェクトデータをSalesforce.comに挿入する唯一の方法は次のとおりです。
EXEC ('INSERT INTO Product2 ( [Name], ProductCode, [Description] ) VALUES ( ''MyProduct'', ''MP01'', ''MyProduct long description'')') AT MySalesforceLinkedServer
LONGVARCHARデータの挿入に反対するSQLServerのレイヤーが使用されていないため、おそらくこのメソッドは成功します。 (ただし、この方法では引き続きリンクサーバーが使用されるため、Salesforce.com ODBCドライバーが使用されます。)
関連項目
- SalesforceでSQLServerを使用するためのヒント
- SQLServerからのINSERTINTOを使用したSalesforceデータの変更