1

こんにちは私はDataManager内でデータを取得しており、Salesforce経由でデータを取得しているため、データ型と制限はSalesforceで設定されていますが、これを制御することはできません。MSSQLに挿入されるデータの量を制限する方法を知りたいです。これはエラーです:

[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です。

ありがとう!

4

2 に答える 2

0

このエラーはいつ発生しますか?

エラーはデータからではなく、「SF Schema」.「Campaign」テーブルの DDL から発生しています。

そのテーブルにサイズ 32000 の列があるのはどうしてですか? どこで定義されましたか?

この小さなサンプル コードは、エラー メッセージを再現する方法を示しています。

DECLARE @table TABLE
(
    dummy nvarchar(32000)
)

これにより、次の出力が生成されます。

メッセージ 131、レベル 15、状態 2、行 3 列「ダミー」に指定されたサイズ (32000) は、任意のデータ型に許可されている最大値 (8000) を超えています。

別の回答で述べられているように、おそらくLEFTが役立ちますが、ソーステーブルの定義に問題があるため、同じエラーが発生すると思います。

MSDN の左: http://msdn.microsoft.com/es-es/library/ms177601.aspx

于 2012-09-28T10:39:20.657 に答える
0

LEFT() を使用して最初の 8000 文字を取得できます

SELECT LEFT(Description,8000) AS Description FROM YourTable
于 2012-09-28T10:27:28.180 に答える