1

クエスチョンマーク「?」挿入する最初の行の最初のフィールドの前にのみ表示されます。
一度、ftp アップロード ファイルの種類を (バイナリではなく) text/ascii に変更したところ、問題が解決したように見えました。しかし、後で戻ってきました。サーバーOSはaix5.3です。
DataStage は 7.5x2 です。
オラクルは11gです。

unixエンドマークを使用して、ueを使用してファイルをutf-8に保存しました。誰もこれを前に手に入れましたか?

4

2 に答える 2

1

疑問符自体は、データベースによって認識されない特殊文字の「マスク」にすぎない可能性があるため、あまり意味がありません。あなたはあなたの環境についての詳細を提供しなかったので、ここでの私の意見は単なる推測です。それがあなたに少しの光を与えることができることを願っています。

テキストファイルはどのように作成されますか?Windows環境で作成されたファイルの場合、ブレーキライン{CR}{LF}文字が原因でこのような文字が含まれる可能性が非常に高くなります。

oracleテーブルのデータ型は何ですか?Charデータ型は、フィールドのサイズに応じてすべての位置を「埋める」ので、この場合は代わりにvarcharを使用することをお勧めします。

そうでない場合は、ファイルを16進モードで編集し、この特定の文字のASCIIコードを確認してから、TRIM(並列の場合)またはConvert(サーバーの場合)を使用して文字を置き換えます。

変換関数は次のようになります。

Convert(Char([ascii_char_number])、''、[your_string])

または、ジョブが並列ジョブの場合は、トリム機能を使用できます。

Trim([your_string]、[ascii_char_number]、'L')

オプション「L」は、すべての先頭文字を削除します。ニーズに合わせてこの関数を調整する必要がある場合があります。TRIM関数に慣れていない場合は、datastageのオンラインドキュメントで詳細を確認できます。

これを行うときに私が与える唯一の警告は、元のデータソースからデータを削除することです。したがって、このようなファイルを操作するときは、有効な情報を削除しないようにしてください。これはあまりお勧めできません。そこにあるETLの達人の間で練習してください。

ご不明な点がございましたら、一言お願いします。できれば喜んでお手伝いします。

乾杯

于 2013-02-06T04:19:48.707 に答える
1

印刷できない文字が「?」として表示されるという同様の問題がありました。これらのレコードを処理するときに、datastage が警告をスローしていました。印刷できない文字を表示しなくてもよかったので、それらの文字を印刷可能な文字に変換する関数 ICONV を使用しました。複数のオプションがありますが、それらを '.' に変換するオプションを選択しました。それは私のために働いた。詳細については、以下の IBM ページを参照してください。

https://www-01.ibm.com/support/knowledgecenter/SSZJPZ_11.3.0/com.ibm.swg.im.iis.ds.parjob.dev.doc/topics/r_deeref_String_Functions.html

http://docs.intersystems.com/ens201317/csp/docbook/DocBook.UI.Page.cls?KEY=RVBS_foconv

私が使用した変換: ICONV(column_name,"MCP")

于 2016-02-17T19:23:19.983 に答える