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

Insertar datos de objetos grandes en Salesforce.com desde SQL Server

Los clientes de Easysoft utilizan nuestro controlador ODBC de Salesforce.com para trabajar con datos de Salesforce.com en SQL Server. Surgen dificultades cuando los clientes intentan insertar datos de objetos grandes en Salesforce.com desde SQL Server. Por ejemplo, intentar insertar datos en el campo de descripción del Producto2:

INSERT OPENQUERY (SALESFORCE, 'SELECT Name, ProductCode, Description FROM Product2')
VALUES ('LongProd', 'LP01', 'My Long Field');
OLE DB provider "MSDASQL" for linked server "SALESFORCE" returned message
"Query-based insertion or updating of BLOB values is not supported."

Este INSERT falla, como lo indica el mensaje de error resultante. El problema subyacente parece ser que para algunos métodos INSERT, no puede actualizar un campo LONGVARCHAR/LONGNVARCHAR desde SQL Server cuando se usa un servidor vinculado basado en ODBC. (El campo del problema, Descripción, es un TEXTAREA de Salesforce.com, que el controlador ODBC de Salesforce.com informa a SQL Server como LONGNVARCHAR).

La única forma que hemos encontrado para insertar datos de objetos grandes en Salesforce.com es:

EXEC ('INSERT INTO Product2 ( [Name], ProductCode, [Description] )
VALUES ( ''MyProduct'', ''MP01'', ''MyProduct long description'')')
AT MySalesforceLinkedServer

Presumiblemente, este método tiene éxito porque no se usa la capa en SQL Server que objeta la inserción de datos LONGVARCHAR. (Aunque este método aún utiliza un servidor vinculado y, por lo tanto, el controlador ODBC de Salesforce.com).

Ver también

  • Sugerencias para usar SQL Server con Salesforce
  • Uso de INSERT INTO desde SQL Server para cambiar los datos de Salesforce