2017-08-29 9 views
1

Oracle 11g DBを使用していて、varchar列を持つ表の1つに後続のスペースがあるデータがあります。私は列を更新するためにTRIM関数を試しましたが、文字列の最後にスペースが残っています。後続スペースの理由は何でしょうか?この問題を解決する方法について説明します。oracleのvarchar列の後続スペースをTRIMにできません

次のように列の内容が表示されます。

select '<'||mycol||'>' from mytab 
Output : <mysamplestring > 

select DUMP(mycol) from mytab 
Output : Typ=1 Len=28: 67,114,117,100,101,32,80,101,116,114,111,108,101,117,109,32,69,120,116,114,97,99,116,105,111,110,194,160 

おかげ

+2

トリムが機能します。実際のクエリを表示します。私が使用した – wolfrevokcats

+0

更新クエリ:update mytab set mycol = TRIM(mycol); –

+2

'DUMP(mycol、1016)'を実行してください。 –

答えて

0

は(トリム)期待通りに動作するはずです!確かにchar列ではないvarchar2列ですか?

+1

はいvarchar2の列とTRIMが機能していません:( –

+0

'chr(160)'のように見えますが、上記のコメントに記載されているようにトリミングされていません。 || chr(160); 'トリムはこれをトリミングしません。 – oey

0

char型からvarchar2型に変更します。char型は、値をスペースで空白にしてフィールドのサイズを埋めます。あなたは 'ABC' を挿入する際UNISTRを使用して 'ABC              '

0

が私のためにトリックをしたように、CHAR(10)列のために、それが自動的に挿入されます。文字160と194を削除しました

update mytab set mycol = REPLACE(mycol,unistr('\00A0'),'') 
関連する問題