sql >> Base de Datos >  >> RDS >> Sqlserver

Insertar datos de SQL Server en Salesforce.com

Después de conectar SQL Server a Salesforce, la forma en que inserta los datos depende del tipo de datos de Salesforce de las columnas de destino. Por ejemplo, dada una tabla de Salesforce personalizada simple que contiene dos campos de texto, las dos declaraciones SQL siguientes son válidas:

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'); 

Los tipos de datos de Salesforce que sabemos que requieren un enfoque alternativo son el área de texto y el área de texto largo. Por ejemplo:

INSERT INTO MYSALESFORCELINKEDSERVER.SF.DBO.Product2(Name,Description,Family)
VALUES ('Easysoft ODBC-Oracle Driver', 'ODBC Driver for Oracle 8-12',
        'Easysoft Data Access')

es una declaración de inserción válida, pero falla porque SQL Server no es compatible con lo que intenta hacer:

OLE DB provider "MSDASQL" for linked server "MYSALESFORCELINKEDSERVER" returned
message "Query-based insertion or updating of BLOB values is not supported.".

y necesita usar una alternativa para evitar esto:

EXEC ('INSERT INTO Product2 ( [Name], ProductCode, [Description] )
VALUES ( ''Easysoft ODBC-Oracle Driver'', ''ODBC Driver for Oracle 8-12'',
         ''Easysoft Data Access'')')
AT MYSALESFORCELINKEDSERVER

Nuestros artículos relacionados con insertos son:

  • Sugerencias para usar SQL Server con Salesforce
  • Inserción de datos de objetos grandes en Salesforce.com desde SQL Server
  • Uso de INSERT INTO desde SQL Server para cambiar los datos de Salesforce
  • Obtengo "Errores generados por la operación OLE DB de varios pasos" al insertar en un campo principal-detalle de Salesforce desde SQL Server. ¿Qué puedo hacer?

Actualizar ejemplos:

  • Actualización de datos de Salesforce con un cursor de SQL Server