Oracle PL-SQL替换字符串中间的字符

时间:2015-05-07 13:10:07

标签: oracle replace plsql split

我有一个存储过程,它按以下格式检索我需要的所有数据:

column 1 | column 2 | ....
text 1   | lorem ipsum doloret & sit amet | ....
text 2   | doloret  | ....
text 3   | sit amet, tu ne quesiri | ....

因此,由于数据将显示在html表中,我需要拆分第二列,以便占用相同的空间(即换行文本)。 我在思考(面向c#),如果我使用空格作为分隔符拆分第2列,并用'<br/>'替换中间空格,它可能有效,但我不知道如何在PL-SQL中实现这一点(必须在此项目的数据库端登录。)

非常感谢, 西蒙。

3 个答案:

答案 0 :(得分:1)

我已经用一点创造力解决了这个问题,但是任何更好的建议都值得赞赏:

substr(column2,1,instr(column2,' ',7)-1) || '<br/>' || substr(column2,instr(column2,' ',7)+1

答案 1 :(得分:1)

使用正则表达式,例如在长度超过7个字符的每个单词之后,以下内容用<br/>替换空格:

REGEXP_REPLACE(str, '([^ ]{7})( )', '\1<br/>')

以及至少7个字符后的下一个:

REGEXP_REPLACE(str, '(.{7})( )', '\1<br/>')

答案 2 :(得分:0)

如果您需要按空格包装单词,为什么不使用replace(trim(column2), ' ', '<br/>')