SQLRPGLE插入语句不起作用

Jav*_*Ali 1 db2 rpgle ibm-midrange

我有一个简单的插入语句,我想用sqlrpgle执行.我首先根据哪些变量为空来构建语句,然后想要使用exec sql来执行插入.这不起作用.

但是在STRSQL中使用子查询输入相同的insert语句可以正常工作.

我已经将sql语句分解为这个问题的最简单版本.

这是SQLRPGLE代码片段 在此输入图像描述

这是我在STRSQL中输入相同语句的地方 在此输入图像描述

任何援助将不胜感激.

**编辑

这只发生在我添加一个where子句时,这本质上是我需要的,以及为什么我尝试使用sqlrpgle来实现它.声明如

sqlstmt = 'insert into jallib/sbrmrpt (shscdt, shcmdt) ' + 
          'select shscdt, shcmdt ' +
          'from r50files/sbschd ';
Run Code Online (Sandbox Code Playgroud)

sqlstmt = 'insert into jallib/sbrmrpt (shscdt, shcmdt) ' + 
          'values (10, 10) ';
Run Code Online (Sandbox Code Playgroud)

所有工作都很好,一旦将where子句添加到子查询中,它就不能在RPG代码中工作但在STRSQL中

Pla*_*1st 7

您已sqlstmt定义为最多100个字符,并且where子句的字符串长度超过100个字符.您的SQL语句被截断,这就是它无法正常工作的原因.我怀疑你知道如何解决这个问题,但为了完整性,解决方案如下:

D sqlstmt          s            500a   varying
Run Code Online (Sandbox Code Playgroud)