2016-10-22 10 views
1

私はcastテラデータの列の長さの関数を使用する必要があります。teradata:キャストの長さをキャリブレーションする

は、私は私はそれをどのように行うことができます

select cast(name as CHAR(<length of column>) from table 

のようなキャスト操作のものを使用する必要が

id | name 
1|dhawal 
2|bhaskar 

、私は次のようなデータを持つテーブルがあると言いますか?

おかげ Dhawal

+0

固定長のCHARでなければならないのですか、それともVARCHARでもOKですか? – dnoeth

答えて

0

あなたは、テーブル定義を見て、長さを見つけなければならない - 手動(show table)またはdbc.ColumnsVを照会dynamic SQLを書き込むことで。

FastExportが含まれて2バイトの長さの情報を削除するためにあなたが

select max(length(cast(... as varchar(<large enough value>))) from TABLE 

を使用して、実際のデータの最大長を見つけることができます。しかし、これはFastExportのためであれば、私はcasting as varchar(large-enough-value)を考えると後処理
更新が優れています(CHAR()をエクスポートするとスペースがたくさんある固定長の出力ファイルになります)。

あなたはこれを知っているかもしれませんが、その場合には:Teradataは通常、従来のfexpではなくTPTに切り替えることを推奨しています。

+0

私は、パイプで区切られたファイルとしてテーブルのデータを保存するために高速エクスポートを使用するperでプログラムを書く必要があります。他のデータベースにロードすることができます。 高速エクスポートによって追加された特殊文字を削除するには、キャスト操作を使用する必要があります。また、ファイルのスペースを節約する必要があるので、列データの長さのキャスト演算を使用する必要があります。 – Dhawal

+0

返信ありがとう、私は列の長さを見つけることができますが、その長さにキャストできるように列のデータの長さを見つける必要があります。 – Dhawal

+0

@Dhawalは更新された答えを参照してください。 – Nickolay

関連する問題