为啥我在运行查询时收到错误 -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 byfetch 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? [复制]

为啥我在运行 PageViewController 后会收到此错误?

为啥我在 C 中收到警告“分段错误,核心转储”

为啥我在编译时收到以下错误:[关闭]