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データの更新