我有一个简单的插入语句,我想使用sqlrpgle执行。 我首先根据哪些变量为空来构建语句,然后要使用exec sql进行插入。 这是行不通的。
但是在STRSQL中使用子查询输入相同的insert语句可以正常工作。
对于这个问题,我已经将sql语句分解为最简单的版本。
任何帮助将不胜感激。
**编辑
仅当我添加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中起作用
答案 0 :(得分:7)
您已将sqlstmt
定义为最多100个字符,并且where子句的字符串长度超过100个字符。您的SQL语句被截断了,这就是为什么它不起作用。我怀疑您知道如何解决此问题,但仅出于完整性考虑,解决方案如下:
D sqlstmt s 500a varying