【问题标题】: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

标签: sql db2 mainframe db2-zos


【解决方案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 日停止。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 2022-06-13
    • 2022-01-26
    相关资源
    最近更新 更多