最近、Oracle と SQL Server のテキスト データ型の違いに関連する問題に直面しています。より正確には、Oracle の文字の連結とvarchar
SQL Server の列を比較しています。
条件は次のとおりです。
rtrim(NUM1) || ' ' || rtrim(NUM2) <> D2.NUM
Oracleから起動されます。
NUM1 と NUM2 はvarchar2
Oracle のデータ型で、NUM はvarchar
SQL Server のものです。
条件を false にしたいのですが、残念ながら true です。
通常、両方の変数は同じ値 = '7 a' を持ちますが、同じであるとは認識されません。
ハードコーディングされた比較を手動で実行しようとしていましたが、'7 a' <> D2.NUM
これは false です。Oracle は値を同じと見なしますが、rtrim(NUM1) || ' ' || rtrim(NUM2)
'7 a' と比較すると、Oracle はそれらを異なると見なします。
rtrim(NUM1) || ' ' || rtrim(NUM2) <> '7 a'
オラクルがそれが真実であると考える理由を誰かが知っていますか?