Datastage 経由でデータベースにインポートする一連の CSV があります。RCP とスキーマ ファイルを使用してこれを実行しようとしています。
CSV に付随するマスター テーブル リストを使用して、CSV からスキーマ ファイルを生成します。
私は1つの問題に直面しています。数値が特定のテーブルの最後の列であることがわかった場合、それはスキーマ ファイルの最後のエントリです。私の問題はnull処理です。CSV はコンマ区切りで、文字列は二重引用符で囲まれ、null のデータはありません。
マスター リストでは、これらの数値列の一部が number() として識別されます。これは、出力のオラクル記述を示しています。そのために、私はこれを試しています:
:nullable decimal[38,9] { デフォルト = 0, テキスト }; この例では、位取りと精度はデフォルトで 38,9 に設定されています。
ヌル エントリは、次のエラーになります。適切な「幅」プロパティを指定する必要があります。外部フォーマット: {text, padchar=32, nofix_zero, precision=38, scale=9, round=trunc_zero, ascii}. [10 進数/impexp.C:939]
だから私は試しました: :nullable decimal[38,9] { default=0, text, width=47 }; この例では、位取りと精度はデフォルトで 38,9 に設定されています。幅は、2 つの値の合計です (38 + 9 = 47...10 進数 [10,2] など、別の場所で指定されていない限り)。
ODBC_Connector_3,0: フィールド "" での入力バッファ オーバーラン、オフセット: ### [impexp/group_comp.C:6006]
最後に、私はそれが言ったことを正確に試して、これをしました: :nullable decimal[38,9] { default=0, text, padchar=32, nofix_zero, precision=, scale=, round=trunc_zero, ascii, width=47 } ; この例では、位取りと精度はデフォルトで 38,9 に設定されています。幅は、2 つの値の合計です (38 + 9 = 47...10 進数 [10,2] など、別の場所で指定されていない限り)。
この 3 回目で、次のエラーを受け取りました: フィールド "" で入力バッファ オーバーラン、オフセット: ### [impexp/group_comp.C:6006]
誰かがこれに遭遇しましたか?これは、10 進数がテーブルの最後の列である場合にのみ発生します。
私のレコード設定は次のとおりです: {intact, final_delim=none, record_delim='\n', charset='UTF8', delim=','}
どうもありがとうございました。