2016-12-24 105 views
0

Regexp_replace需要被转换成Netezza的语法:转换甲骨文REGEXP_REPLACE功能到Netezza公司

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

从我个人理解, cntrl替换控制字符 ^\t替换标签 \s+$取代尾随空格

请帮帮我! 请更正我对Oracle当前正则表达式的理解。

+0

'^ \ t'只替换一个制表符(而不是“制表符”),并且只有它是字符串中的第一个字符('^'的含义)。这是一些由别人写的代码,你想翻译成不同的语言?如果你不确定它的作用,为什么你需要翻译它? – mathguy

+0

耶!别人写了它。我需要它,因为我需要Netezza – user3197677

回答

1

你几乎是正确的。

([[:cntrl:]])|(^\t)|(\s+$) 
  1. [:cntrl:] —匹配控制字符
  2. \t —匹配标签
  3. ^\t表达式—表达式—匹配非标签字符
  4. 之间匹配的 ^和制表符一起
  5. [^\t]在之间
  6. ^\t在开始—匹配领先的制表符
  7. \s+$ —匹配的文本与尾随空格

实际上,你的表达将匹配 - 第一控制字符,导致标签或尾随空格。

+0

中的确切功能,谢谢!这有帮助。 Netezza转换部分的任何信息? – user3197677

+0

什么是Netezza语法?可以在问题中发布一些示例 – GurV

+0

此正则表达式替换函数在netezza中不起作用!所以我想把它转换成一个函数或者一组函数,它们在Netezza中执行与这个相同的替换。例如: oracle:regexp_replace(列,'a','A')netezza:translate(列,'a','A') – user3197677