我在这里寻求您的帮助,所以我的问题是:
我已经用jasperrerport 3.7.6创建了报告(基于oracle的查询)。现在我正在尝试将同一报表与PostgreSql数据库一起使用,并且在某些特定的oracle函数(例如(NVL,sysdate ...))中遇到错误,并且我现在不想更改查询(除非我拥有)。
在postgresql数据库上执行时,有什么东西可以用来进行自动转换吗?
如果两个数据库中都没有匹配的函数,请考虑创建自己的函数来“模拟”原始函数。
例如,对于Oracle的SYSDATE
:
create or replace function f_sysdate return date is
begin
return sysdate;
end;
我不了解PostgreSQL,但是-您将在该数据库中执行相同的操作。函数名称必须相同:F_SYSDATE
。
然后,在JasperReports中,您将调用自己的函数,而不是调用“原始函数”。
select ename, job, sal, f_sysdate --> this from emp where deptno = 10
这样做,报告将在两个数据库中均有效。没错,您必须付出一些初步的努力,但是-将来可能会有所收获。