问题
在 BIRT 里通过 JDBC 连接 MYSQL,创建了个带参数的 SQL 数据集:
select*from tag where tag_name in (?)
期望传入多个逗号分割的值,又因为值是字符串类型,就给每个值加了单引号:'join','rank','group',但预览结果看不到数据,原因在于JDBC因为“预防SQL注入”的安全问题,禁止了这种多值参数的传值方式。
解答
那是不是所有JDBC都没有这种方便传多值参数的能力呢,换成集算器JDBC试试:
=connect("raqdoc").query("select * from tag where tag_name in ("+arg1+")")
arg1相当于第一个问号,然后看结果,能查出数据来了
BIRT SQL 数据集传多值参数解决方案

本文探讨了在 BIRT 中使用 JDBC 连接 MySQL 时遇到的多值参数传递问题,由于 JDBC 防止 SQL 注入的安全策略,导致无法直接传入多个值。解决方案是改用集算器 JDBC,它支持通过 SPL 脚本解决这一问题,使得复杂计算和性能提升成为可能。文中提供了相关资源帮助读者理解和快速上手集算器 JDBC 在 BIRT 中的应用。
最低0.47元/天 解锁文章
1211

被折叠的 条评论
为什么被折叠?



