1
データをスクラブするには、私のプログラムに多くのハードコード値があります。私はそれらの値をテーブルに入れようとしています。このスクラブの条件の1つは、文字の長さとコード(character_length(name) = 1)
を見つけることです。
しかし、私は^.$
を使用してこれをエミュレートしようとすると、¿
、¥
、Ã
のような値は、私が何か間違ったことをやっているなら、私に知らせてくださいキャッチされていません。
私は、コードの下に実行し、私はこの3つの値¿参照、¥、Ã
select name from email_table
where character_length(name) = 1
and name not in
(select name from email_table
where regexp_similar(translate(name USING LATIN_TO_UNICODE WITH ERROR),'^.$', 'i') = 1)
Teradataの正規表現が、文字/コードポイント文字列ではなくバイトシーケンスと非常によく似ています。 –
これは私のために正常に動作します。ソース列がLATINのときにTRANSLATEを使用する理由は何ですか? – dnoeth
はい。ソース列はラテン語で、翻訳を使用しない場合はメッセージが表示されます。SELECT Failed。 [6706]文字列に翻訳できない文字が含まれています。 – Kiran