为啥我在运行查询时收到错误 -4700(尝试使用新功能模式)?
Posted
技术标签:
【中文标题】为啥我在运行查询时收到错误 -4700(尝试使用新功能模式)?【英文标题】:Why am I getting error -4700 (attempt to use new function mode) when running a query?为什么我在运行查询时收到错误 -4700(尝试使用新功能模式)? 【发布时间】:2016-08-19 08:57:06 【问题描述】:我尝试在 SPUFI 中运行查询:
select * from (select * from emptable
order by empno asc fetch first 10 rows only) as A
order by empno desc fetch first 1 rows only;
返回的错误是:
sqlcode = -4700,错误:尝试在新功能模式之前使用新功能。
我正在运行 DB2 for z/OS 版本 9。
【问题讨论】:
嗯,根据手册 -4700 是“-4700 尝试在新功能模式之前使用新功能”。但是我找不到任何关于您的查询的特别之处,即在当前的 DB2 安装中需要 NFM。您正在运行什么版本的 DB2(在 CM 中)? 嗨 Piet,我刚刚运行了查询 - 从 SYSIBM.SYSDUMMY1 中选择 getvariable('SYSIBM.VERSION`) 结果是 DSN09010 .. 所以我认为它的版本 9 【参考方案1】:问题是您在子选择中使用order by
和fetch first
- 这是 DB2 for z/OS 版本 9 之前不存在的功能:
在 DB2 for z/OS 的先前版本中,ORDER BY 和 FETCH FIRST n 行 ONLY 子句仅在语句级别支持,作为 选择语句或 SELECT INTO 语句。版本 9 提供了额外的 通过允许 FETCH FIRST 实现灵活性 n ROWS ONLY 和 ORDER BY 子句 当它们被指定为子选择或全选语句的一部分时。
(用于 z/OS 的 DB2 版本 9.1 - 新增功能?GC18-9856-12)
显然您的 DB2 安装仍在兼容模式下运行,并且尚未切换到新功能模式,因此该功能尚不可用。
请注意,您的安装存在比 CM 更严重的问题 NFM 因为
对 DB2 for z/OS 版本 9 的支持已于 2014 年 6 月 27 日停止。
【讨论】:
以上是关于为啥我在运行查询时收到错误 -4700(尝试使用新功能模式)?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我在第二次运行测试时在 Mongoose 中收到错误“一旦编译后无法覆盖模型”?
为啥我在第二次运行测试时在 Mongoose 中收到错误“一旦编译后无法覆盖模型”?
为啥我在 Mysql SELECT 查询期间收到此 UnicodeDecodeError? [复制]