【问题标题】:Maximo / BIRT - optional null valuesMaximo / BIRT - 可选的空值
【发布时间】:2017-07-14 04:18:12
【问题描述】:

我正在尝试在 BIRT 中创建报告。我在 SQL Server 2008 中创建了一个运行良好的存储过程。但是,当我尝试在 BIRT 中运行报告时,它不会以 NULL 值运行。

var DepartmentValue = params["DepartmentValue"].value;
var AccountValue = params["AccountValue"].value;

sqlText = " EXEC SP_Report_ByDept '"+DepartmentValue+"','"+AccountValue+"','"+startdt+"','"+enddt+"' ";

如果存在有效的AccountValue,则可以完美运行。知道如何为 AccountValue 传递空值吗?

干杯。

【问题讨论】:

  • 绑定变量是解决方案,而不是手动创建 SQL 字符串。这将同时解决您的 SQL 注入安全问题和空值问题。

标签: sql eclipse birt maximo


【解决方案1】:

如果我理解正确,你想在实际参数为空时传递字符串'null'?

var DepartmentValue = params["DepartmentValue"].value;
var AccountValue = params["AccountValue"].value;

if (AccountValue == null){
    AccountValue = 'null';
}

sqlText = " EXEC SP_Report_ByDept '"+DepartmentValue+"','"+AccountValue+"','"+startdt+"','"+enddt+"' ";

【讨论】:

  • 如果您在 BIRT 中启用调试,您可以看到发送到数据库的实际查询。请将该信息添加到您的原始帖子中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多