丢失第一个换行符的段落格式(Coldfusion / Oracle)

时间:2013-10-14 17:24:35

标签: oracle coldfusion oracle11g string-formatting coldfusion-10

使用Oracle 11g,CF 10。

我试图了解CF / Oracle如何以及为何更改已保存的段落。如果将以下内容保存到clob字段中,则从textarea输入:

This is paragraph 1.
This is paragraph 2.

This is paragraph 3.

输出到页面时,使用:

<p>
    <cfoutput>#ParagraphFormat(myTable.myCLOBfield)#</cfoutput>
</p>

格式如下:

This is paragraph 1. This is paragraph 2.

This is paragraph 3.

当我直接从查询结果中复制保存的文件并将其粘贴到记事本中时, 启用“查看所有字符”后,我可以看到格式与原始输入相同,并且所有CRLF都是我希望看到它们的位置。

似乎Oracle正在将CRLF转换为chr(10)。使用

regexp_replace(myCLOBfield, chr(13) || chr(10), 'HEY', 1, 0) myCLOBfield

不会导致任何替换。但是,使用

regexp_replace(myCLOBfield, chr(10), 'HEY', 1, 0) myCLOBfield

找到所有CRLF并用'HEY'替换它们。但我很困惑,为什么将内容粘贴到记事本然后显示CRLF并正确格式化它们,而ParagraphFormat失去了第一个换行符。

似乎最一致的解决方案是用单打替换所有双chr(10)s,然后用双打替换所有单个chr(10)s,所以我总是得到双线断点,所有新段落都是由一条线分开。我是这样做的:

regexp_replace(regexp_replace(myCLOBfield, chr(10) || chr(10), chr(10), 1, 0), chr(10), chr(10) || chr(10), 1, 0) myCLOBfield

导致以下(可接受的)格式化:

This is paragraph 1.

This is paragraph 2.

This is paragraph 3.

有人更了解如何保留原始格式吗?

0 个答案:

没有答案
相关问题