3

最近 Informix DB から顧客テーブルをアンロードしましたが、いくつかの行が拒否されました。これは、顧客名の列にエスケープされていない縦棒 (パイプ記号) 文字が含まれていたためです。これは、ソース データベースのデフォルトの DBDELIMITER です。顧客フォームのフィールドには、任意の文字、数字、または記号を含む任意の英数字を入力できる入力マスクがあることがわかりました。そこで、その列に対して一括更新を実行して、パイプ記号をセミコロンに変更するようにユーザーを説得しました。また、別の列にアスタリスクとコンマを含む他の行も発見しました。このテーブルが csv 形式でアンロードされるとどうなるか、またはアスタリスクがどのような損害を与える可能性があるかを想像することができました!

区切り文字として定義するのに最適な文字は? テーブルが既にパイプ、コンマ、アスタリスク、タブ、バックスラッシュなどで汚染されている場合、それらをクリーンアップする最善の方法は何ですか?

4

3 に答える 3

0

可能であれば、複数文字の区切り記号を使用してください。それでも失敗する可能性はありますが、その可能性ははるかに低いはずです。

または、エクスポート ファイルの書き込み中に区切り文字をエスケープします (Informix のドキュメントでは、"LOAD TABLE" は、区切り文字の前にバックスラッシュを付けてエスケープすると述べています)。適切な CSV には引用符とエスケープがあるため、エクスポーターとローダーが適切な CSV を処理できない場合を除き、データにコンマが含まれていても問題ありません。

于 2013-08-19T22:02:17.417 に答える