2012-09-28 63 views
1

您好我正在通過Salesforce從Data Manager中獲取數據,因此數據類型和限制在Salesforce中設置,我無法控制。我想知道如何限制進入和插入MS SQL的數據量。這是錯誤:SQL超出允許的最大錯誤

[42000]Microsoft SQL Server Native Client 10.0 
The size (32000) given to the column 'Description' exceeds the maximum allowed for any data type (8000). 

這是我的查詢其拉數據:

SELECT "Id", 
"IsDeleted", 
"Name", 
"ParentId", 
"Type", 
"Status", 
"StartDate", 
"EndDate", 
"CurrencyIsoCode", 
"ExpectedRevenue", 
"BudgetedCost", 
"ActualCost", 
"Description", 
"ExpectedResponse", 
"NumberSent", 
"IsActive", 
"NumberOfLeads", 
"NumberOfConvertedLeads", 
"NumberOfContacts", 
"NumberOfResponses", 
"NumberOfOpportunities", 
"NumberOfWonOpportunities", 
"AmountAllOpportunities", 
"AmountWonOpportunities", 
"OwnerId", 
"CreatedDate", 
"CreatedById", 
"LastModifiedDate", 
"LastModifiedById", 
"SystemModstamp", 
"LastActivityDate", 
"CampaignMemberRecordTypeId", 
"Date_of_Event__c", 
"Venue__c" 
FROM "SF Schema"."Campaign" 

反正是有限量的「說明」最大是8000

謝謝!

+0

你可能要重新考慮該列您取得進一步進展之前。 – noel

+0

您在表模式中設置的列大小是多少? – Prasanna

+0

模式來自salesforce,所以我無法將varchar修改爲varchar(max),所以無論如何我可以對上面的SQL查詢進行一些修改,以將描述站點限制爲小於8000? – user1383080

回答

0

可以使用LEFT獲得第8000個字符()

SELECT LEFT(Description,8000) AS Description FROM YourTable 
+0

它不接受left()函數。 – user1383080

+1

發生任何錯誤? – Prasanna

0

當這個eror發生?

您的錯誤不是來自您的數據,而是來自「SF架構」,「Campaign」表格的DDL。

這張表怎麼可能有一個大小爲32000的列?它在哪裏定義?

這個小示例代碼顯示瞭如何重現您的錯誤信息。

DECLARE @table TABLE 
(
    dummy nvarchar(32000) 
) 

這將產生以下輸出:

消息131,級別15,狀態2,第3行 給予列 '虛設' 的大小(32000)超過允許的任何數據類型的最大(8000 )。

也許左,正如另一個答案中所述可以幫助你,但我想你會得到同樣的錯誤,因爲問題在於源表的定義。

留在MSDN:http://msdn.microsoft.com/es-es/library/ms177601.aspx

相關問題