【问题标题】:Convert Oracle Regexp_replace function into Netezza将 Oracle Regexp_replace 函数转换为 Netezza
【发布时间】:2016-12-24 13:59:11
【问题描述】:

以下Regexp_replace需要转换成Netezza语法:

regexp_replace(COLUMN_NAME,'([[:cntrl:]])|(^\t)|(\s+$)',null)

据我了解, cntrl 替换控制字符 ^\t 替换标签 \s+$ 替换尾随空格

请帮忙! 还请纠正我对当前正则表达式在 oracle 中的作用的理解。

【问题讨论】:

  • ^\t 仅替换一个制表符(而不是“制表符”),并且仅当它是字符串中的第一个字符时(^ 的含义)。这是其他人编写的一些代码,您想翻译成另一种语言吗?如果您不确定它的作用,为什么需要翻译它?
  • 是的!别人写的。我需要它,因为我需要 Netezza 中的确切功能

标签: regex oracle netezza


【解决方案1】:

你几乎是对的。

([[:cntrl:]])|(^\t)|(\s+$)
  1. [:cntrl:] — 匹配控制字符
  2. \t — 匹配标签
  3. ^\t 在表达式之间 - 将 ^ 和制表符匹配在一起
  4. [^\t] 在表达式之间——匹配非制表符
  5. ^\t at start - 匹配前导制表符
  6. \s+$ — 匹配带有尾随空格的文本

实际上,您的表达式将匹配 - 第一个控制字符、前导制表符或尾随空格。

【讨论】:

  • 谢谢!这有帮助。有关 Netezza 转换部分的任何信息?
  • 什么是 Netezza 语法?可以在问题中发布一些示例
  • 此正则表达式替换功能在 netezza 中不起作用!所以我想把它转换成一个函数或一组函数,它们执行与这个相同的替换但在 Netezza 中。例如: oracle: regexp_replace(column,'a','A') netezza: translate(column,'a','A')
  • 您需要安装SQL extensions toolkit。那么函数也是一样的:regexp_replace.
  • @Jeremy,谢谢,我已经安装了,但传递给函数的参数似乎工作方式不同。就像我的情况一样,如果我执行问题中最初提到的相同正则表达式,则会返回 NULL 输出
猜你喜欢
  • 1970-01-01
  • 2018-09-26
  • 2013-04-09
  • 2015-03-12
  • 2015-09-12
  • 2021-06-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多