SQLRPGLE插入语句不起作用

时间:2018-07-26 14:52:28

标签: db2 ibm-midrange rpgle

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

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

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

这是SQLRPGLE代码段 enter image description here

这是我在STRSQL中输入相同语句的地方 enter image description here

任何帮助将不胜感激。

**编辑

仅当我添加where子句时才会发生,这实际上是我所需要的,也是为什么我尝试使用sqlrpgle做到这一点的原因。 像

这样的语句
sqlstmt = 'insert into jallib/sbrmrpt (shscdt, shcmdt) ' + 
          'select shscdt, shcmdt ' +
          'from r50files/sbschd ';

sqlstmt = 'insert into jallib/sbrmrpt (shscdt, shcmdt) ' + 
          'values (10, 10) ';

所有工作都很好,一旦将where子句添加到子查询中,该子句就不会在RPG代码中起作用,而在STRSQL中起作用

1 个答案:

答案 0 :(得分:7)

您已将sqlstmt定义为最多100个字符,并且where子句的字符串长度超过100个字符。您的SQL语句被截断了,这就是为什么它不起作用。我怀疑您知道如何解决此问题,但仅出于完整性考虑,解决方案如下:

D sqlstmt          s            500a   varying