工作中碰到這樣一種情況,做一個data patch,將表中的某個字段的內容copy到另一個字段,添加時若目標字段有值,需要換行處理。
首先,oracle中的回車符是chr(13),換行符是chr(10),回車的意思是光標回到當前行的開頭,換行是光標停到當前位置的下一行,兩個結合就是下一行的開頭。
在window中,大家都熟悉的換行是\r\n,其實\r就是回車符,\n是換行符。
我的畫面上有兩處需要顯示patch后的字段值,一處是在textarea,另一處是div中顯示,在寫patch的sql腳本時,一開始我用了chr(10),發現在textarea中會換行,但到了div中,卻沒有換行,后來我又換了chr(13),發現效果還是一樣,再后來我用了chr(10)||chr(13),發現textarea中顯示竟然換了兩行。最后我沒有抱多大希望的換成了chr(13)||chr(10),結果竟然兩處都顯示正常了。
最后,我找到了原因,在div中顯示之前,會對數據中的字段值進行替換,會將\r\n替換成<br/>。
所以在oracle中需要換行的話,還是規規矩矩的加上chr(13)||chr(10)吧,這樣正好對應\r\n,前提是在window系統中。