Estava quebrando a cabeça para poder gerar um relatório no iReport, utilizando mais de uma fonte de dados.
No meu caso, eram duas bases de dados Oracle diferentes.
Queria pegar informações da Base 1 e utilizar um dado deste retorno para consultar na Base 2.
Para realizar isso, utilizamos o subreport.
O segredo está na hora que inserir o subreport, selecionar para utilizar uma base de dados diferente
E inserir o seguinte comando:
java.sql.DriverManager.getConnection("jdbc:oracle:thin:@//IPBASEDADOS:PORT/SERVICENEMAE","iUSUARIO","SENHA)
Se ocorrer algum erro de que não foi possível encontrar um driver para essa base de dados, será necessário copiar o arquivo ojdbc14.jar para o EXT da sua JRE.
Para maiores dúvidas, recomendo este excelente tutorial que me ajudou muito:
http://www.packtpub.com/article/jasperreports-using-multiple-relational-databases-to-generate-report
Até mais...
segunda-feira, 5 de novembro de 2012
quinta-feira, 9 de agosto de 2012
Porcentagem PL/SQL - Sem utilizar SUM()
Utilizando a função analítica do ORACLE, RATIO_TO_REPORT, podemos ter o retorno da porcentagem total da coluna. Não necessitando realizar um SUM da coluna.
Muito útil!
Segue abaixo um exemplo de utilização.
Muito útil!
Segue abaixo um exemplo de utilização.
SELECT last_name, salary, RATIO_TO_REPORT(salary) OVER () AS rr FROM employees WHERE job_id = 'PU_CLERK'; LAST_NAME SALARY RR ------------------------- ---------- ---------- Khoo 3100 .223021583 Baida 2900 .208633094 Tobias 2800 .201438849 Himuro 2600 .18705036 Colmenares 2500 .179856115
Trabalhando com datas Pl/SQL 1
Descrição
|
Expressão PL/SQL
|
Now
|
SYSDATE
|
Tomorow/ next day
|
SYSDATE + 1
|
Seven days from now
|
SYSDATE + 7
|
One hour from now
|
SYSDATE + 1/24
|
Three hours from now
|
SYSDATE + 3/24
|
An half hour from now
|
SYSDATE + 1/48
|
10 minutes from now
|
SYSDATE + 10/1440
|
30 seconds from now
|
SYSDATE + 30/86400
|
Tomorrow at 12 midnight
|
TRUNC(SYSDATE + 1)
|
Tomorrow at 8 AM
|
TRUNC(SYSDATE + 1) + 8/24
|
Next Monday at 12:00 noon
|
NEXT_DAY(TRUNC(SYSDATE), 'MONDAY') + 12/24
|
First day of the month at 12 midnight
|
TRUNC(LAST_DAY(SYSDATE ) + 1)
|
The next Monday, Wednesday or Friday at 9 a.m
|
TRUNC(LEAST(NEXT_DAY(sysdate,''MONDAY' '
),NEXT_DAY(sysdate,''WEDNESDAY''), NEXT_DAY(sysdate,''FRIDAY'' ))) + (9/24)
|
quinta-feira, 8 de março de 2012
Ordernação com Row_Number() - Order By
Precisava utilizar uma query, onde limitasse o valor pelo rownum da linha.
Acontece que quando aplicasse o order by, ele aplica primeiro o rownum e depois faz a ordernação.
Assim não conseguia a numeração correta para limitar o retorno da linha.
Pesquisando achei a seguinte utilização do ROW_NUMBER() OVER (ORDER BY campo DESC) .
Utilizando esta função com o "over", ele aplica o row_number durante a ordernação.
Segue um exemplo:
SELECT last_name FROM(SELECT last_name, ROW_NUMBER() OVER (ORDER BY last_name) R FROM employees)WHERE R BETWEEN 51 and 100;
Mais informações no Link:
terça-feira, 6 de março de 2012
Selects Hierárquicos Oracle
Utilizamos este recurso quando temos um relacionamento de pai-filho na mesma tabela.
Com estes operadores/funções, fica mais fácil e com uma boa performance o retorno de algumas consultas.
Como exemplo uma consulta de um Menu, Hierarquia de Pessoas de uma empresa, processos encadeados.
Exemplo de utilização:
select level,cd_atendente_razao,nm_atendente_razao,tp_usage_system,cd_atendente_razao_highfrom tbl_atendentestart with cd_atendente_razao = 8connect by prior cd_atendente_razao_high = cd_atendente_razaoorder by level desc;
Utilizamos os operadores/funções:
start with -> Define qual o primeiro registro será buscado.
connect by prior -> Clausula que faz relacionamento entre os níveis.
Encontrei este ótimo post, que está bem completo:
http://www.imartins.com.br/informix/artigos/utilizando-selects-hierarquicos-relacao-pai-filho-mesma-tabela
http://www.imartins.com.br/informix/artigos/utilizando-selects-hierarquicos-relacao-pai-filho-mesma-tabela
quarta-feira, 25 de janeiro de 2012
Alterar UUID do VirtualBox
Assinar:
Postagens (Atom)