Po połączeniu SQL Server z Salesforce sposób wstawiania danych zależy od typu danych Salesforce w kolumnach docelowych. Na przykład, biorąc pod uwagę prostą niestandardową tabelę Salesforce, która zawiera dwa pola tekstowe, prawidłowe są obie następujące instrukcje 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'); Typy danych Salesforce, o których wiemy, że wymagają alternatywnego podejścia, to obszar tekstowy i obszar długiego tekstu. Na przykład:
INSERT INTO MYSALESFORCELINKEDSERVER.SF.DBO.Product2(Name,Description,Family)
VALUES ('Easysoft ODBC-Oracle Driver', 'ODBC Driver for Oracle 8-12',
'Easysoft Data Access') jest poprawną instrukcją wstawiania, ale kończy się niepowodzeniem, ponieważ SQL Server nie obsługuje tego, co próbuje zrobić:
OLE DB provider "MSDASQL" for linked server "MYSALESFORCELINKEDSERVER" returned message "Query-based insertion or updating of BLOB values is not supported.".
i musisz użyć alternatywy, aby obejść ten problem:
EXEC ('INSERT INTO Product2 ( [Name], ProductCode, [Description] )
VALUES ( ''Easysoft ODBC-Oracle Driver'', ''ODBC Driver for Oracle 8-12'',
''Easysoft Data Access'')')
AT MYSALESFORCELINKEDSERVER Nasze artykuły dotyczące wkładek to:
- Wskazówki dotyczące używania SQL Server z Salesforce
- Wstawianie dużych danych obiektowych do Salesforce.com z SQL Server
- Używanie INSERT INTO z SQL Server do zmiany danych Salesforce
- Otrzymuję komunikat „Wieloetapowa operacja OLE DB wygenerowała błędy” podczas wstawiania do pola master-detail Salesforce z SQL Server. Co mogę zrobić?
Przykłady aktualizacji:
- Aktualizowanie danych Salesforce za pomocą kursora SQL Server