来自,
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不一样吗?
7.1和v7r1是同一件事...
作为技术刷新(TR(9级
的一部分添加正则表达支持从命令行中,使用PTF组(WRKPTFGRP(命令
使用工作WRKPTFGRP PTFGRP(SF99707) PTFGRPLVL(*INSTALLED)
另外,您需要有5770-SS1选项#39 Unicode的国际组件。您可以使用显示软件资源(DSPSFWRSC(检查一下。
如果未安装,您会看到一条消息:
SQL0204 -QSYS类型中的QQQSVREG *找不到SRVPGM。