1
   sel cast(trim(Env) as char(6)) ,
    cast (trim(Databasename) as char(30)) from DB.Top_Space_Consumer;

私は高速エクスポートを介して上記のクエリを実行し、以下の形式でデータを取得しています。

%^@^@PKPTD DB1
%^@^@PKPTD DB2
%^@^@CLPTD DB3
%^@^@PKPTD DB4

以下の形式のデータが必要です。

PKPTD DB1
PKPTD DB2
CLPTD DB3
PKPTD DB4

テーブルのサイズは数ギガバイト「大きい」ので、文字を削除するためにテキストエディタでテーブルを開くことはできません。

問題は 、この「余分な文字」を取得しないようにするには、スクリプトで何を変更する必要があるかということです。

4

1 に答える 1

3

エクスポート形式はFASTLOADまたはBINARYだと思います。FastExportは、各レコードの先頭に2バイトのデータを追加します。

これを回避するために、過去にフィールドを選択した区切り文字と連結し、データ型を文字にキャストしてから、レコードを固定長にキャストしました。これは、最後に末尾の空白があることを意味しますが、データを次の環境にロードするときに簡単に説明できます。次に、エクスポート形式をTEXTに変更すると、バイナリデータはレコードの先頭に追加されません。

于 2013-03-01T21:03:31.340 に答える