rpgle - RPGLE 嵌入式 SQL“从最终表中选择...”在编译时抛出 SQL0029
问题描述
看似简单的 SQL 语句却抛出错误 SQL0029...“嵌入式语句中缺少位置 14 INTO 子句。”。
第一个明显的点是我的语句中没有缺少“INTO”,但 SQL 预编译器有时会提供与真正原因没有直接关系的消息。
我已将声明分解为最简单的步骤,并分阶段构建。我采取的所有步骤都已在 SQL 预编译器中编译。只有当我插入“从最终表中选择 UFVAID ...”时,它才会抛出错误。
该程序被定义为 SQLRPGLE,它包含其他不反对的 sql 语句。
我想从插入中检索的值是一个自动增量字段,将在后续插入中使用。
任何提示都会很棒。谢谢。
陈述
Exec Sql
select UFVAID from final table (
insert into elglvat
(UFVASE, UFTNAL, UFTNNU, UFVINT, UFVDEC, UFVALS,
UFVALM, UFVDAT, UFVTIM, UFVTSP)
values
(:UFVASE, :UFTNAL, :UFTNNU, :UFVINT, :UFVDEC, :UFVALS,
:UFVALM, :UFVDAT, :UFVTIM, :UFVTSP)
) ;
解决方案
您缺少into
将结果放入 RPG 变量的 select 子句的语句。不要与插入子句混淆into
。
Exec Sql
select UFVAID
into :MyRpgVar // <===== Missing this line
from final table (
insert into elglvat
(UFVASE, UFTNAL, UFTNNU, UFVINT, UFVDEC, UFVALS,
UFVALM, UFVDAT, UFVTIM, UFVTSP)
values
(:UFVASE, :UFTNAL, :UFTNNU, :UFVINT, :UFVDEC, :UFVALS,
:UFVALM, :UFVDAT, :UFVTIM, :UFVTSP)
) ;
推荐阅读
- python - 如何用逗号替换多种类型的分隔符
- javascript - Javascript控制台输出不同的值然后在文本上
- java - 如何使用 jOOQ 修改纯 sql 文本,例如附加 order-by/limit-offset 子句或更改 where 条件值?
- csv - 如何转义csv文件中的单引号?
- python - 将多个列表值转换为多个字典中的字符串
- sql - 我自己的“字符变化”类型字段,为什么它在 pgsql 视图中是“文本”类型?
- telegram - Telegram 可以通过 id 进行聊天,不能通过 @name:Chat not found
- linux-device-driver - 如何为同一平台设备的多个实例使用单一平台驱动程序?
- html - 想让我的网站具有移动响应能力
- repast-simphony - Repast Java:创建自定义边缘代理以安排特定操作