Oracleでクエリを実行していますが、そのクエリは、アンパサンド付きの値を持つ可能性のある列順に並べられています。ただし、アンパサンドは並べ替えアルゴリズムによって無視されているようです。
例えば:
select * from (
select '&' txt from dual
union
select 'P' txt from dual
union
select 'N' txt from dual
)
order by txt
正確に(そして正しく、私は推測します)印刷します:
&
N
P
ただし、「&」を含むテキストを「&Z」に変更すると、結果は次のように変わります。
select * from (
select '&'||'Z' txt from dual // concatenating just to
// avoid variable substitution
union
select 'P' txt from dual
union
select 'N' txt from dual
)
order by txt
結果は次のとおりです。
N
P
&Z
'Z'を'A'に変更すると、結果は次のようになります。
&A
N
P
'&'はORDERBY句で考慮されていないようです。これが予期される動作であるかどうか、または構成手順が欠落しているかどうかを誰かが知っていますか?挿入または更新のためにアンパサンドをエスケープする必要があることを理解しています。しかし、事はキャラクターがすでにテーブルにいるということです!
よろしくお願いします。