从,
https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_71/db2/rbafzregexp_like.htm
SELECT PID FROM PRODUCT
WHERE NOT REGEXP_LIKE(pid,'[0-9]{3}-[0-9]{3}-[0-9]{2}')
但是当我运行类似的命令时,
SELECT MYCOLUMN FROM MYTABLE
WHERE NOT REGEXP_LIKE(MYCOLUMN,'[0-9]{3}-[0-9]{3}-[0-9]{2}')
我得到了
SQL状态:42601供应商代码:-104消息:[SQL0104]令牌 无效。有效代币:< > =<> < =!< !> !=
=¬< ¬> ¬= IN。原因。 。 。 。 。 :在令牌处检测到语法错误。令牌不是有效的 令牌。有效令牌的部分列表是< > =<> < =!< !> !=> =¬< ¬> ¬= IN。此列表假定该语句是正确的 令牌。该错误可能在语句中较早,但语法为 到目前为止,该声明似乎是有效的。恢复。 。 。 : 执行以下一项或多项操作并再次尝试请求: - 验证 令牌区域中的SQL语句。 纠正声明。错误可能是缺少逗号或 引号,它可能是拼写错误的单词,也可能是相关的 按照条款的顺序。 - 如果错误标记是,则更正SQL语句,因为它不以有效子句结束。
有什么理由说明这个例子不起作用? IBM v7r1与7.1不一样吗?
答案 0 :(得分:2)
7.1和v7r1是一回事......
正则表达式支持作为技术更新(TR)级别9的一部分添加
从命令行,使用“使用PTF组(WRKPTFGRP)”命令
WRKPTFGRP PTFGRP(SF99707) PTFGRPLVL(*INSTALLED)
此外,您需要拥有5770-SS1选项#39国际组件的Unicode insallted。您可以使用显示软件资源(DSPSFWRSC)来检查它。
如果没有安装,您会看到一条消息:
SQL0204 - 未找到QSYS类型* SRVPGM中的QQQSVREG。