sql >> Database >  >> RDS >> Sqlserver

Grote objectgegevens invoegen in Salesforce.com vanuit SQL Server

Klanten van Easysoft gebruiken ons Salesforce.com ODBC-stuurprogramma om met Salesforce.com-gegevens in SQL Server te werken. Er doen zich problemen voor wanneer klanten grote objectgegevens proberen in te voegen in Salesforce.com vanuit SQL Server. Als u bijvoorbeeld probeert gegevens in het veld Product2 description in te voeren:

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."

Deze INSERT mislukt, zoals aangegeven door de resulterende foutmelding. Het onderliggende probleem lijkt te zijn dat u voor sommige INSERT-methoden een LONGVARCHAR/LONGNVARCHAR-veld niet kunt bijwerken vanuit SQL Server wanneer u een op ODBC gebaseerde gekoppelde server gebruikt. (Het probleemveld, Beschrijving, is een Salesforce.com TEXTAREA, die het Salesforce.com ODBC-stuurprogramma rapporteert aan SQL Server als een LONGNVARCHAR.)

De enige manier die we hebben gevonden om grote objectgegevens in Salesforce.com in te voegen, is:

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

Vermoedelijk slaagt deze methode omdat de laag in SQL Server die bezwaar maakt tegen het invoegen van LONGVARCHAR-gegevens niet wordt gebruikt. (Hoewel deze methode nog steeds een gekoppelde server gebruikt, en dus het Salesforce.com ODBC-stuurprogramma.)

Zie ook

  • Tips voor het gebruik van SQL Server met Salesforce
  • INSERT INTO van SQL Server gebruiken om Salesforce-gegevens te wijzigen

  1. Converteer varchar naar datetime in SQL Server

  2. LEAD en LAG analytische functies

  3. Alle tabellen in een MySQL-database in één opdracht afkappen?

  4. sql cross join - wat voor nut heeft iemand er voor gevonden?