Отчет Jasper с двумя разными базами данных (Oracle и postgresql) - PullRequest
1 голос
/ 06 марта 2020

Я здесь, чтобы попросить вас о помощи, поэтому моя проблема:

Я создал отчет с помощью jasperrerport 3.7.6 (запросы основаны на oracle). и теперь я пытаюсь использовать тот же отчет с PostgreSql базой данных, и я получаю ошибки для определенных c oracle функций, таких как (NVL, sysdate ...), и я не хочу менять запрос на данный момент (если мне не нужно).

Есть ли что-нибудь, что можно использовать для выполнения автоконверсии при выполнении в базе данных postgresql?

1 Ответ

1 голос
/ 06 марта 2020

Если в обеих базах данных нет соответствующих функций, рассмотрите возможность создания собственных функций, которые будут «имитировать» оригиналы.

Например, для 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

При этом отчет будет работать в обеих базах данных. Правда, вам придется приложить некоторые первоначальные усилия, но - это может окупиться в будущем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...