IBM SQL 下一个发行价值
IBM SQL Next Value for issue
我正在尝试编写一个简单的查询来获取序列号。
EXEC SQL SELECT @SOP_SEQ 的下一个值 INTO :SEQ ;
EXEC SQL SELECT @SOP_SEQ 的下一个值 INTO :SEQ FROM @SOP_SEQ;
在第一行代码中,我什至在编译之前收到一条错误消息:SQL0104 令牌无效。有效标记:, FROM
我试了第二行代码,编译时出现这个错误:
SQL1103 未找到 *LIBL 中 table @SOP_SEQ 的位置 57 列定义。
有人可以指出我做错了什么吗?
SELECT ... INTO
需要一行来 运行 反对,而您没有提供任何内容,因此您没有结果集。
有两种方法可以做你想做的事。
将 SELECT INTO
与 SYSDUMMY1
结合使用
select next value for @sop_seq
into :seq
from sysibm/sysdummy1;
或者,更好的是,使用不需要引用 SYSDUMMY1
的 VALUES INTO
values next value for @sop_seq
into :seq;
tldr;
SYSIBM/SYSDUMMY1
是一个只有一条记录的目录文件,在 VALUES INTO
可用之前,通常用于在需要单行时将计算值检索到结果集中,并且没有真正的 table 适用的参考资料(如您在此处的情况)。这种技术仍在使用,但我建议使用 VALUES INTO
代替,因为不需要人为的 FROM
子句。
我正在尝试编写一个简单的查询来获取序列号。
EXEC SQL SELECT @SOP_SEQ 的下一个值 INTO :SEQ ;
EXEC SQL SELECT @SOP_SEQ 的下一个值 INTO :SEQ FROM @SOP_SEQ;
在第一行代码中,我什至在编译之前收到一条错误消息:SQL0104 令牌无效。有效标记:, FROM
我试了第二行代码,编译时出现这个错误: SQL1103 未找到 *LIBL 中 table @SOP_SEQ 的位置 57 列定义。
有人可以指出我做错了什么吗?
SELECT ... INTO
需要一行来 运行 反对,而您没有提供任何内容,因此您没有结果集。
有两种方法可以做你想做的事。
将 SELECT INTO
与 SYSDUMMY1
select next value for @sop_seq
into :seq
from sysibm/sysdummy1;
或者,更好的是,使用不需要引用 SYSDUMMY1
VALUES INTO
values next value for @sop_seq
into :seq;
tldr;
SYSIBM/SYSDUMMY1
是一个只有一条记录的目录文件,在 VALUES INTO
可用之前,通常用于在需要单行时将计算值检索到结果集中,并且没有真正的 table 适用的参考资料(如您在此处的情况)。这种技术仍在使用,但我建议使用 VALUES INTO
代替,因为不需要人为的 FROM
子句。