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