Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Inserindo dados de objetos grandes no Salesforce.com a partir do SQL Server


Os clientes da Easysoft usam nosso driver ODBC do Salesforce.com para trabalhar com dados do Salesforce.com no SQL Server. As dificuldades surgem quando os clientes tentam inserir dados de objetos grandes no Salesforce.com a partir do SQL Server. Por exemplo, tentando inserir dados no campo de descrição Product2:
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 falha, conforme indicado pela mensagem de erro resultante. O problema subjacente parece ser que, para alguns métodos INSERT, você não pode atualizar um campo LONGVARCHAR/LONGNVARCHAR do SQL Server ao usar um servidor vinculado baseado em ODBC. (O campo do problema, Descrição, é um TEXTAREA do Salesforce.com, que o driver ODBC do Salesforce.com relata ao SQL Server como LONGNVARCHAR.)

A única maneira que encontramos de inserir dados de objetos grandes no Salesforce.com é:
EXEC ('INSERT INTO Product2 ( [Name], ProductCode, [Description] )
VALUES ( ''MyProduct'', ''MP01'', ''MyProduct long description'')')
AT MySalesforceLinkedServer

Presumivelmente, esse método é bem-sucedido porque a camada no SQL Server que se opõe à inserção de dados LONGVARCHAR não é usada. (Embora esse método ainda use um servidor vinculado e, portanto, o driver ODBC do Salesforce.com.)

Veja também

  • Dicas para usar o SQL Server com o Salesforce
  • Usando INSERT INTO do SQL Server para alterar dados do Salesforce