工作中碰到这样一种情况,做一个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系统中。
时间: 2024-10-15 12:13:58