我试图在Netezza列中替换逃生字符,但不能正确替换。请帮助我一个。
select replace('replacestring','','\\');
我需要输出为replaces\\tring
。以下是我收到的错误消息...
错误[42S02]错误:函数'替换(未知,未知,未知(' 不存在无法识别满足给定的函数 参数类型您可能需要添加明确的类型
预先感谢。
这是因为需要安装REPLACE
函数(默认情况下不是(。还有另一个称为TRANSLATE
的功能,可以以有限的方式而不是REPLACE
使用,但不幸的是不适合您的情况。
您可以使用以下查询:
SELECT SUBSTRING(x, 1, INSTR(x, '') - 1) || '\\' || SUBSTRING(x, INSTR(x, '') + LENGTH('')) FROM
(SELECT 'replacestring' AS x) t
-
传递给
INSTR
,LENGTH
是要替换的字符串。请注意,它们出现在三个位置。 - 中间的
\\
是替换字符串。 -
replacestring
是要搜索的字符串。
检查以下示例的替换 love 用> in 我爱Netezza :
SELECT SUBSTRING(x, 1, INSTR(x, 'love') - 1) || 'like' || SUBSTRING(x, INSTR(x, 'love') + LENGTH('love')) FROM
(SELECT 'I love Netezza' AS x) t
该特定函数是" SQL扩展工具包"的一部分,并且在我们的系统上,它放置在SQLEXT数据库的管理模式中。所有用户都被授予执行该模式的访问。此外,数据库已放置在路径中(DBA在全球范围内完成,但是您可以在会话中发出" SET PATH = ..."(如果需要的话((
(我们的道路是:
select current_path;
CURRENT_PATH
---------------------------------------------------------------------------------------
SQLEXT.ADMIN,INZA.INZA,NZA.INZA,NZM.INZA,NZMSG.INZA,NZR.INZA,NZRC.INZA,SYNCHDB.ADMIN
您可以看到Sqlext在开始...