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.SYSDUMMY1SELECT * FROM SYSIBMADM.ENV_INST_INFO 这些都不起作用=/ 我的 SYSIBM.SYSDUMMY1 表只是一列 IBMREQD 和一行“Y” 第一个命令在 GETVARIABLE 上也失败,GETVARIABLE in *LIBL type *N not found. 我试图确认您正在运行的实际版本,测试对zOSLUW 有效。我不知道 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的主要内容,如果未能解决你的问题,请参考以下文章

连接到 db2 7.1 as400 的 jdbc 驱动程序

《DSP using MATLAB》Problem 7.1

db2中的常用命令及使用方法

DB2:忽略更新触发器中的列

DB2 与 Oracle 中的查询

iOS 7.1 中的 UISlider setMaximumTrackTintColor