1

私は問題があります。Teradata Database から直接 SAS にデータをプルしています。データは次のようになります。

id fragmentId   fragment
1     34       (some text)
2     67       (some text)
3     89       (some text) 
.......

問題は、フラグメント フィールドに 10 ページ以上(30,000,000 文字)のテキストが含まれていることです。したがって、SASでは、列が切り捨てられ、データが失われます。テキストを含む SAS 列の制限を増やすにはどうすればよいですか?

(PS:dbmax_text@Joeが提案したようにオプションを調べました。ただし、このオプションはteradata以外のすべてのdbmsに適用されるようです)。どのようにコーディングできますか?

4

1 に答える 1

1

実際、Teradata は DBMAX_TEXT をサポートしていません。また、リストされているほど大きな文字サイズをサポートしていないようです。Teradataのドキュメント ページには、最大 64,000 バイトが記載されています。さらに、SAS は 1 つの列に最大 32767 文字しか保持できません。

あなたの場合、データベース内の列を 32767 バイトのチャンク (または必要に応じて論理的に意味のあるもの) に分割することを検討することをお勧めします。ビューのパススルーでそれを行い、そのビューからデータを読み取ります。

-- 以前の情報 (Teradata 以外の DBMS には役立ちますが、ここでは役に立ちません) --

オプションをより大きなものに変更する必要がある可能性がありdbmax_textます - デフォルトでは 1024 になる傾向があります。

プル (データ ステップまたは SQL クエリ) でデータセット オプションとして変更するか、データベース libname ステートメントで変更できます。

詳細については、ドキュメント ページを参照してください。

于 2013-09-19T20:30:10.873 に答える