私はシェル(Ksh)から実行しているBTEQスクリプトを持っています。 目的はにエクスポートし、.csvファイルへのTeradataテーブルの内容をにエクスポートします。 問題は、データのエクスポート中に列間に空白が多すぎます。私は試しました
1.個々の列のトリミング
2.キャストを使用して、Charの各列のデータ型を
に変換しますが、これは役に立ちません。
BTEQコードは、私は、ファイルのヘッダーを必要とするので、(私はREPORTファイルを使用している次のようになります。Teradata BTEQファイルからデータをエクスポート中に空白が入ってきます
.EXPORT REPORT FILE = exportfilepath.csv;
.SET SEPARATOR ",";
.SET TITLEDASHES OFF;
.set RECORDMODE OFF;
.set width 65531;
.SET ERRORLEVEL 3807 SEVERITY 0
select
trim('"' || trim(cast(col1 as char(256))) || '"') AS col1,
trim('"' || trim(cast(col2 as char(256))) || '"') AS col2,
trim(cast(col3 as INTEGER)) AS col3,
trim(cast(col4 as char(6))) AS col4,
trim(col5) AS col5,
trim(cast(col6 as decimal(18,2)) AS col6,
trim(date) AS date
from table A;
のCol1とcol2が、私はそれらの空白を削除することができます方法についてのthem.Anyヘルプの間に空白をたくさん持っています
col1とcol2の間にカンマを持つ名前があるため、ここで「」を追加しました。エクスポートされているので.csvファイルが適切でないと書かれている必要があります。
質問にサンプルデータを含めてください。 – zarruq
テストしなかった、おそらくこれを試してください:あなたの通常の出力にはない '.SET SEPARATOR"# "'を選んでください。セパレータの周囲のすべてのスペースを削除します。すべての二重引用符を2つに置き換えます(csv形式でエスケープします)。すべてのフィールドの前後に二重引用符を入れてください(セパレータの行頭、行末、および両脇)。そしてあなたが望むものとsepを置き換えてください。 'sed 's /"/""/g; s /^.*$/ "&"/; s/*#* /"、 "/ g"のようなものです。 –