Sql BIRT 2.2动态模式名称

Sql BIRT 2.2动态模式名称,sql,db2,birt,params,Sql,Db2,Birt,Params,是否可以在BIRT查询中使模式名成为动态的 我试过这个: SELECT CURRENT DATE AS DATE, (CASE WHEN DAYOFWEEK(CURRENT DATE) = 1 THEN 'SUNDAY' WHEN DAYOFWEEK(CURRENT DATE) = 2 THEN 'MONDAY' WHEN DAYOFWEEK(CURRENT DATE) = 3 THEN 'TUESDAY' WHEN DAYOFWEEK(CURRENT DA

是否可以在BIRT查询中使模式名成为动态的

我试过这个:

SELECT CURRENT DATE AS DATE, 
(CASE WHEN DAYOFWEEK(CURRENT DATE) = 1 THEN 'SUNDAY'
      WHEN DAYOFWEEK(CURRENT DATE) = 2 THEN 'MONDAY'
      WHEN DAYOFWEEK(CURRENT DATE) = 3 THEN 'TUESDAY'
      WHEN DAYOFWEEK(CURRENT DATE) = 4 THEN 'WEDNESDAY'
      WHEN DAYOFWEEK(CURRENT DATE) = 5 THEN 'THURSDAY'
      WHEN DAYOFWEEK(CURRENT DATE) = 6 THEN 'FRIDAY'
      WHEN DAYOFWEEK(CURRENT DATE) = 7 THEN 'SATURDAY'
      END) AS DAYOFWEEK
FROM **?**.COBOL_CALENDAR
 WHERE SERVICE_DATE = CURRENT DATE"
这将生成以下错误: 以下项目有错误:

ReportDesign (id = 1): 
+ Cannot get the result set metadata.
SQL statement does not return a ResultSet object.
SQL error #1: [IBM][CLI Driver][DB2] SQL0104N  An unexpected token "?" was found following "".  Expected tokens may include:  "( TABLE FINAL <IDENTIFIER> XMLTABLE".  SQLSTATE=42601

我甚至尝试了
reportContext.getParameterValue(“SCHEMANAME”)
路由,结果都是一样的。

ARRRGH这是一个愚蠢的空格问题

“结束)作为星期一”+ 来自“+params[“SCHEMA”]+”.COBOL_日历”+

在前面添加一个空格可以修复它


lcd显示屏上的刘海头。

看起来像是您编辑的报告的XML源代码。以下是替换SQL查询中任意字符串的一种更为图形化的方法:

按照以下方式编写查询:

SELECT CURRENT DATE AS DATE, 
(CASE WHEN DAYOFWEEK(CURRENT DATE) = 1 THEN 'SUNDAY'
      WHEN DAYOFWEEK(CURRENT DATE) = 2 THEN 'MONDAY'
      WHEN DAYOFWEEK(CURRENT DATE) = 3 THEN 'TUESDAY'
      WHEN DAYOFWEEK(CURRENT DATE) = 4 THEN 'WEDNESDAY'
      WHEN DAYOFWEEK(CURRENT DATE) = 5 THEN 'THURSDAY'
      WHEN DAYOFWEEK(CURRENT DATE) = 6 THEN 'FRIDAY'
      WHEN DAYOFWEEK(CURRENT DATE) = 7 THEN 'SATURDAY'
      END) AS DAYOFWEEK
FROM dev.COBOL_CALENDAR
 WHERE SERVICE_DATE = CURRENT DATE
如果
dev
是一个有效的模式,您现在可以选择元数据集,并且仍然可以用报表参数替换它

接下来单击数据集并选择“脚本”选项卡。在此处选择“打开前”并输入替换命令:

this.queryText = this.queryText.replace("dev", params["SCHEMA"].value);
通过这种方式,在执行查询之前,可以将查询文本中的字符串
dev
替换为
SCHEMA
参数的值。您可以替换问题中所需的每个字符串(linke
**?**
),但首先使用有效的模式,您可以在设计阶段使用元数据集。

SELECT CURRENT DATE AS DATE, 
(CASE WHEN DAYOFWEEK(CURRENT DATE) = 1 THEN 'SUNDAY'
      WHEN DAYOFWEEK(CURRENT DATE) = 2 THEN 'MONDAY'
      WHEN DAYOFWEEK(CURRENT DATE) = 3 THEN 'TUESDAY'
      WHEN DAYOFWEEK(CURRENT DATE) = 4 THEN 'WEDNESDAY'
      WHEN DAYOFWEEK(CURRENT DATE) = 5 THEN 'THURSDAY'
      WHEN DAYOFWEEK(CURRENT DATE) = 6 THEN 'FRIDAY'
      WHEN DAYOFWEEK(CURRENT DATE) = 7 THEN 'SATURDAY'
      END) AS DAYOFWEEK
FROM dev.COBOL_CALENDAR
 WHERE SERVICE_DATE = CURRENT DATE
this.queryText = this.queryText.replace("dev", params["SCHEMA"].value);