Tenho um relatório que, quando rodado para buscar dados de 3 tabelas funciona normal, porém, quando rodado da mesma forma com 3 tabelas temporárias(mesmos campos, mesmos dados, enfim, mesma estrutura das 3 tabelas de testes) não funciona satisfatoriamente. Trás apenas um registro(o primeiro) e mesmo assim incompleto.
PS: As tabelas temporárias estão com ON COMMIT PRESERVE ROWS.
Aguardo dicas do que pode estar acontecendo.
Abraços.
Problemas iReport + tabelas temporárias
- stcoutinho
- Moderador
- Mensagens: 850
- Registrado em: Qua, 11 Mai 2011 5:15 pm
- Localização: são Paulo - SP
Olá NightSpy,
Você mencionou que está executando um relatório que acessa tabelas temporárias (GLOBAL TEMPORARY).
Os dados de uma tabela temporarária são acessados exclusivamente pela da sessão que carregou os dados nela.
Outras sessões não conseguem visualizar os dados armazenados por esta sessão que fez a carga. E se esta sessão foi encerrada, os dados carregados se perdem.
Para que seu relatório apresente os dados das tabelas temporárias, ele deve usar a MESMA sessão SQL que carregou os dados nas tabelas temporárias. Se a sessão não for a mesma, seu relatório jamais irá visualizar os dados.
Você mencionou IREPORTS no cabeçalho da thread. Neste caso, você tem certeza que todo o processo de carga e select para o relatório são executados pela MESMA sessão?
Abraços,
Sergio Coutinho
Você mencionou que está executando um relatório que acessa tabelas temporárias (GLOBAL TEMPORARY).
Os dados de uma tabela temporarária são acessados exclusivamente pela da sessão que carregou os dados nela.
Outras sessões não conseguem visualizar os dados armazenados por esta sessão que fez a carga. E se esta sessão foi encerrada, os dados carregados se perdem.
Para que seu relatório apresente os dados das tabelas temporárias, ele deve usar a MESMA sessão SQL que carregou os dados nas tabelas temporárias. Se a sessão não for a mesma, seu relatório jamais irá visualizar os dados.
Você mencionou IREPORTS no cabeçalho da thread. Neste caso, você tem certeza que todo o processo de carga e select para o relatório são executados pela MESMA sessão?
Abraços,
Sergio Coutinho
- NightSpy
- Rank: Programador Sênior
- Mensagens: 49
- Registrado em: Ter, 09 Set 2008 4:18 pm
- Localização: SP
Olá Serginho, desculpe este "hiato" para responder...
Mas você acertou, era problema de sessão... eu achei que o preserve rows iria me garantir isso, porem me enganei.
Mas acabei fazendo e na produção onde é feito a chamada é garantida a sessão e rolou numa boa.
Obrigado cara.
Mas você acertou, era problema de sessão... eu achei que o preserve rows iria me garantir isso, porem me enganei.
Mas acabei fazendo e na produção onde é feito a chamada é garantida a sessão e rolou numa boa.
Obrigado cara.
- stcoutinho
- Moderador
- Mensagens: 850
- Registrado em: Qua, 11 Mai 2011 5:15 pm
- Localização: são Paulo - SP
Olá NightSpy,
Que bom que conseguiu resolver o seu problema !
A única coisa que PRESERVE ROWS irá garantir é que os dados continuarão disponíveis (na tabela temporária) após um COMMIT. E isso somente enquanto a sessão SQL*Plus que carregou os dados continuar existindo.
Abraços,
Sergio
Que bom que conseguiu resolver o seu problema !
A única coisa que PRESERVE ROWS irá garantir é que os dados continuarão disponíveis (na tabela temporária) após um COMMIT. E isso somente enquanto a sessão SQL*Plus que carregou os dados continuar existindo.
Abraços,
Sergio
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 16 visitantes