存储过程中的jasper和时间戳转换
jasper and timestamp conversion in stored procedure
我创建了一个存储过程。在里面我用这种方式比较时间戳 "sum(case when t.tsmax > to_timestamp(to_char(t.tinmax + epeff,''ddMMyyyy'')||tout,''dd.MM.yyyy HH24:MI:SS'') then anzsend end)"。从 Oracle SQL 开发人员调用该过程工作正常(总计 25044)。从我本地桌面上的 jasersoft studio 调用它也很完美(总共 25044)。
但是在 Jasperserver 上调用它时,我没有得到相同的结果(总计 13054)。看起来它与 NLS 设置有关。 SQL Developer 和 jasperosft 中的会话语言是德语,运行 它在 jasperserver 上使用美语。我尝试了 to_timestamp(...,'NLS_DATE_LANGUAGE=GERMAN'or('NSL_TIMESTAMP_FORMAT=dd.MM.yyyy...')) 或使用其他格式,但没有成功。 tsmax 和 tinmax 是从全局临时 table 读取的,也许我有什么 wronng.any 想法?我真的需要帮助!
将 NLS_TERRITORY 从 AMERICA 更改为 GERMANY 后工作正常。
我创建了一个存储过程。在里面我用这种方式比较时间戳 "sum(case when t.tsmax > to_timestamp(to_char(t.tinmax + epeff,''ddMMyyyy'')||tout,''dd.MM.yyyy HH24:MI:SS'') then anzsend end)"。从 Oracle SQL 开发人员调用该过程工作正常(总计 25044)。从我本地桌面上的 jasersoft studio 调用它也很完美(总共 25044)。 但是在 Jasperserver 上调用它时,我没有得到相同的结果(总计 13054)。看起来它与 NLS 设置有关。 SQL Developer 和 jasperosft 中的会话语言是德语,运行 它在 jasperserver 上使用美语。我尝试了 to_timestamp(...,'NLS_DATE_LANGUAGE=GERMAN'or('NSL_TIMESTAMP_FORMAT=dd.MM.yyyy...')) 或使用其他格式,但没有成功。 tsmax 和 tinmax 是从全局临时 table 读取的,也许我有什么 wronng.any 想法?我真的需要帮助!
将 NLS_TERRITORY 从 AMERICA 更改为 GERMANY 后工作正常。