SQL ServerをSalesforceに接続した後、データを挿入する方法は、ターゲット列のSalesforceデータ型によって異なります。たとえば、2つのテキストフィールドを含む単純なカスタムSalesforceテーブルがある場合、次のSQLステートメントの両方が有効です。
INSERT INTO MYSALESFORCELINKEDSERVER.SF.DBO.Test__c(Name, Mth__c) VALUES ('Test', 'Jan') INSERT OPENQUERY (MYSALESFORCELINKEDSERVER, 'SELECT Name, Mth__c FROM Test__c') VALUES ('Test 2', 'JAN');
別のアプローチが必要であると認識しているSalesforceデータ型は、テキスト領域と長いテキスト領域です。例:
INSERT INTO MYSALESFORCELINKEDSERVER.SF.DBO.Product2(Name,Description,Family) VALUES ('Easysoft ODBC-Oracle Driver', 'ODBC Driver for Oracle 8-12', 'Easysoft Data Access')
は有効な挿入ステートメントですが、SQL Serverが実行しようとしていることをサポートしていないため、失敗します。
OLE DB provider "MSDASQL" for linked server "MYSALESFORCELINKEDSERVER" returned message "Query-based insertion or updating of BLOB values is not supported.".
これを回避するには、別の方法を使用する必要があります:
EXEC ('INSERT INTO Product2 ( [Name], ProductCode, [Description] ) VALUES ( ''Easysoft ODBC-Oracle Driver'', ''ODBC Driver for Oracle 8-12'', ''Easysoft Data Access'')') AT MYSALESFORCELINKEDSERVER
挿入関連の記事は次のとおりです。
- SalesforceでSQLServerを使用するためのヒント
- SQLServerからSalesforce.comにラージオブジェクトデータを挿入する
- SQLServerからのINSERTINTOを使用したSalesforceデータの変更
- SQL Serverからマスター/詳細Salesforceフィールドに挿入すると、「複数ステップのOLEDB操作でエラーが発生しました」というメッセージが表示されます。何ができますか?
更新例:
- SQLServerカーソルを使用したSalesforceデータの更新