2017-02-03 15 views
0

SSIS経由でSQL Serverにデータをインポートしようとしましたが、列の1つがvarchar(max)データ型です。そして私は以下のエラーを受けました。 SQL Server Native Client 11.0はvarchar(max)をサポートしていないようです。誰でもコメントできますし、どうすれば解決できますか?ありがとう。SQL Serverネイティブクライアント11.0のVarchar(最大)問題

enter image description here

答えて

0

SSISはVarchar(Max)DT_TEXTとしてデータ型(BLOB列)のデータ型を持つ列を読んだからあなたは、いくつかの回避策を行う必要があります:あなたはVarchar(8000)にソース列のデータ型を変更することができる場合

1-

2-スクリプトコンポーネントを追加し、入力として、あなたの列をマークし、データ型DT_STR(4000)の出力列を追加し、SCRの(8000は、varcharデータ型の最大長さです) varchar型(max)は2ギガバイトを格納することができながら、varchar型は、8000文字(nvarchar型= 4000)を格納することができます:IPTの文字列に

string BlobColumnToString(BlobColumn blobColumn) 
{ 
    if (blobColumn.IsNull) 
     return string.Empty; 

    var blobLength = Convert.ToInt32(blobColumn.Length); 
    var blobData = blobColumn.GetBlobData(0, blobLength); 
    var stringData = Encoding.Unicode.GetString(blobData); 

    return stringData; 
} 

注意をごDT_Text列の内容を変換するには、次の機能を使用します。

+0

これはSQL SERVER NATIVE CLIENT 11.0の制限事項を意味しますか? – user1902849

+0

いいえ、それはまた、SQL Serverの新しいバージョンにあると思います。 – Hadi

+0

この問題は、Varcharは最大8000文字(nvarchar = 4000)を格納でき、varchar(max)は2 GB – Hadi

関連する問題