【发布时间】: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的版本检查是什么
标签: db2 ibm-midrange db2-400