teradataの「ヘルプテーブル」関数によって生成されたデータセットからテーブルを作成して、テーブルに関する情報を追加し、条件で行をフィルタリングできるようにしたいと思います。テーブルには400以上の列があるため、これは管理に非常に便利です。selectとしてテーブルを作成するのと同じようなことをしたいのですが、ヘルプテーブルの構文では機能しません。データをExcelにエクスポートしてから、手動でテーブルスキーマを作成し、テーブルをインポートして戻す以外に、ヘルプテーブルクエリの出力をteradataのテーブルに変換する方法を知っている人はいますか?
2582 次
1 に答える
5
HELP TABLEコマンドからの出力は、データディクショナリから取得されます。
私が正しく理解していれば、次の出力で新しいテーブルを作成する必要があります。
ヘルプテーブルt1; ***ヘルプ情報が返されました。4行。 ***合計経過時間は1秒でした。 列名タイプコメント ------------------------------ ---- -------- a1 I? b1 CF? c1 D? d1 DA?
これらの3つの列すべて(またはそれ以上)をテーブルDBC.TVFieldsから取得できます。
ヘルプテーブルdbc.tvfields; ヘルプテーブルdbc.tvfields; ***ヘルプ情報が返されました。37行。 ***合計経過時間は1秒でした。 列名タイプコメント ------------------------------ ---- ---------------- TableId BF? FieldName CV? FieldId I2? ヌル可能CF? FieldType CF? MaxLength I? DefaultValue CV? DefaultValueI BV? TotalDigits I2? ImpliedPoint I2? FieldFormat CV? FieldTitle CV? CommentString CV? CollationFlag CF? UpperCaseFlag CF? DatabaseId BF? 圧縮性CF? CompressValueList CV? FieldStatistics BV? ColumnCheck CV? CheckCount I2? CreateUID BF? CreateTimeStamp TS? LastAlterUID BF? LastAlterTimeStamp TS? LastAccessTimeStamp TS? AccessCount I? SPParameterType CF? CharType I2? LobSequenceNo I2? IdColType CF? UDTypeId BF? UDTName CV? TimeDimension CF? VTCheckType CF? TTCheckType CF? ConstraintId BF?
ただし、最初にDatabaseIdとTableIdを見つける必要があります。
databaseidを選択します dbc.dbaseから ここで、databasename ='db1'; ***クエリが完了しました。1つの行が見つかりました。1つの列が返されました。 ***合計経過時間は1秒でした。 DatabaseId ---------- 00000F04
TVMIdを選択 dbc.tables2から ここで、databaseid = '00000F04'xb およびTVMName='t1'; ***クエリが完了しました。1つの行が見つかりました。1つの列が返されました。 ***合計経過時間は1秒でした。 TVMId ------------ 0000D8070000
これで、必要なすべての列を一覧表示して、それに応じて保存できます。
dbc.tvfieldsから*を選択します ここで、databaseid = '00000F04'xb およびtableid='0000D8070000'xb;
于 2010-09-15T20:40:18.980 に答える