DB2 v7r1(7.1?)中的 REGEXP_LIKE
Posted
技术标签:
【中文标题】DB2 v7r1(7.1?)中的 REGEXP_LIKE【英文标题】:REGEXP_LIKE in DB2 v7r1 (7.1?) 【发布时间】:2017-04-21 17:44:10 【问题描述】:从,
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。原因 。 . . . . : 在标记处检测到语法错误。令牌无效 令牌。有效标记的部分列表是 = != >= ¬ ¬= 输入。此列表假定该陈述在以下情况下是正确的 令牌。错误可能在语句的前面,但语法 到目前为止,该声明似乎是有效的。恢复 。 . . : 执行以下一项或多项操作,然后重试请求: -- 验证 令牌区域中的 SQL 语句。 更正陈述。错误可能是缺少逗号或 引号,可能是拼写错误的单词,也可能是相关的 按照从句的顺序。 -- 如果错误标记是 ,请更正 SQL 语句,因为它没有以有效的子句结尾。
这个例子不起作用有什么原因吗? IBM v7r1 和 7.1 不一样吗?
【问题讨论】:
确认您使用的是哪个版本的 DB2:SELECT GETVARIABLE('SYSIBM.VERSION') FROM SYSIBM.SYSDUMMY1
或 SELECT * FROM SYSIBMADM.ENV_INST_INFO
这些都不起作用=/
我的 SYSIBM.SYSDUMMY1 表只是一列 IBMREQD 和一行“Y”
第一个命令在 GETVARIABLE 上也失败,GETVARIABLE in *LIBL type *N not found.
我试图确认您正在运行的实际版本,测试对zOS
和LUW
有效。我不知道 iSeries
的版本检查是什么
【参考方案1】:
7.1 和 v7r1 是一回事...
作为技术更新 (TR) 级别 9 的一部分添加了正则表达式支持
在命令行中,使用使用 PTF 组 (WRKPTFGRP) 命令
WRKPTFGRP PTFGRP(SF99707) PTFGRPLVL(*INSTALLED)
此外,您需要安装 5770-SS1 Option #39 International Components for Unicode。您可以使用显示软件资源 (DSPSFWRSC) 进行检查。
如果未安装,您会看到一条消息: SQL0204 - 未找到 QSYS 类型 *SRVPGM 中的 QQQSVREG。
【讨论】:
SF99707 显示 6 级,谢谢!感谢您的回答。每天学习更多...安装了该选项的 DSPSFWRSC。 请问您是如何发现(或知道)它是 TR 9 级的一部分? 我的意思是我现在在link 看到它,但是......没有关键字 TR 我迷路了。 @CodyG。我只知道它并不总是可用......所以我去寻找它何时被添加。 7.1 是 IBM 开始使用更频繁的 TR 而不是完整的操作系统更新的时候。 @CodyG。 - V7R1 表示法可以理解但已过时。这是过去的遗留物。说 7.1 肯定更正确。以上是关于DB2 v7r1(7.1?)中的 REGEXP_LIKE的主要内容,如果未能解决你的问题,请参考以下文章