マイSASセッションの詳細は以下のとおりです。 -SASセッションエンコーディングLATIN1は、Unicode文字のために、故障
ENCODING = LATIN1
LOCALE = EN_US
私は、Javaコードを使用してそれらを復号化、暗号化された顧客の名前を読んでいていますjavaobjを使用してがsasコードで実装されています。
data outlib.X1 (ENCODING = 'asciiany');
set inlib.INP1 (ENCODING = 'asciiany') end=eof;
length decryptedvalue $100;
declare javaobj jObj("<jarname>");
jObj.callstringmethod("<method>", FIRST_NAME , decryptedvalue);
run;
jObj.callstringmethodは、復号化されたfirst_name値を文字列decryptedvalueに返します。私はSASコードの最後にproc exportを行い、暗号化されたすべての名前をcsvファイルとして保存します。
最後の実行では、名前の一部に特殊文字があります。リアル。これは、SASの実行が次のエラーで失敗の原因となっている
: -
ERROR: Transcoding failure at line 30 column 2.
ERROR: DATA STEP Component Object failure. Aborted during the EXECUTION phase.
は、SASセッション(LATIN1が)これらのUnicode文字を受け入れるようにするいくつかの方法はありますか? にdecryptedvalue変数のエンコーディングを設定できますか?私はsas_u8を使って私のSASセッション全体をUnicodeで動かしたくありません。私はこれらの文字を受け入れるだけです これらの問題のある値を空白として読み込んでもOKです。
私はすでに、次のことを試してみました: - libnameを
メイクENCODING入力データセットのために= 'asciiany' の
セットinencoding = UTF8。
任意の入力が便利です。
ありがとうございます!
UnicodeセッションエンコーディングでSASを実行しようとしましたか?なぜそれがそんなに問題なのか分からないのですか? – Joe
私はsas_u8で実行しようとしました。しかし、私のメインコードはredshift dbクエリを持っていて、次のエラーで失敗しています** "クエリの実行中にエラーが発生しました:ERROR:識別子にASCII文字のみが使用できます。現在、私はsasコードを2つの部分に分割しています.1つはredshift用で、もう1つはsas_u8を使って実行する解読用です。しかし、これは実行可能な解決策ではありません。 – NVK
うーん、興味深い。 SASテクニカルサポートで後者の問題を解決すると、u8セッションからの赤方偏移(適切なドライバ経由)に接続できないようにすべき理由はありません。ドライバはASCII形式のダウンコンバージョンを処理する必要があります。 – Joe