0
Varchar2(4000)
と定義されている表には、tbl_varchar
と呼ばれる列があります。 クライアントから格納されたプロシージャーへの入力引き数はvarchar2(4000)
です。私はそれをinput_varchar
と呼ぶ。Oracleのvarchar2と異なる文字セットの比較
:私は、同じ入力で数回これを実行しています
Update table t SET tbl_varchar = input_varchar, updated = sysdate
WHERE key = input_key and tbl_varchar != input_varchar;
を、私のタイムスタンプは毎回更新されますが、varchar型のデータがあるように見えるしないことを確認変化する。
これは、クライアントとデータベース上の異なる文字セットと何か関係がありますか?もしそうなら、それを確認する最善の方法は何ですか?私はクライアントのコントロールを持っていません。
'varchar2'列は、定義上、同じ文字セットでなければなりません。 Javaから文字列変換が行われ、文字列がUTF-16でエンコードされてOracleに送られ、 'varchar2 'はUTF-16でエンコードできないということは、可能です(ほぼ確実です)。しかし、それは同じアプリケーションから一貫しているはずです。同じアプリケーションを複数回実行して別の結果を得ていることはほとんどありません。 –