Forms 6: conexão entre objetos de bases diferentes

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
djoq
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 54
Registrado em: Sex, 27 Jan 2012 8:16 am
Localização: Londres UK

Olá pessoal, alguém pode ajudar com problema abaixo?

Tenho um form na versão 6, que faz ligação com as tabelas de interface do EBS, e outras tabelas que estão na base do EBS. Acontece que as tabelas do meu form não estão na mesma base. Nessa caso ao chamar uma procedure eu uso a sintaxe APPS.PROCEDURE@PRD. Bom até ai tudo ok.
Só que a versão do banco onde estão as tabelas do EBS, é a 11g.
Aí, quando vou compilar meu forms ele trava nessas partes onde tem a chamada de procedures (@PRD).


O que podemos fazer pra resolver isso? Existe alguma atualização, algum Path?

Obrigada desde já.
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brother, blzinha?

Então, o @PRD está indicando um dblink para essa outra base, no caso, a do EBS.
Vou deixar o tópico aberto para os demais foristas, beleza?
Só uma dúvida, essa chamada com DBLink é direto no teu form, correto ?
Não daria pra fazer um teste, com essa chamada numa procedure do banco, não do EBS, mas, da outra instância e, chamar essa outra no teu form?
(Não sei se consegui me expressar corretamente).

qualquer coisa, manda pra gente.
Abraço,
djoq
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 54
Registrado em: Sex, 27 Jan 2012 8:16 am
Localização: Londres UK

Oi Trevisolli, pode deixar o forum aberto sim, agradeço.
É bem como você descreveu, o DBLink está no meu form. Este teste que você falou, de chamar a procedure com DBLink pelo banco, funcionou perfeitamente.
O problema é apenas na chamada pelo form mesmo. Obs:Este form já é antigo, a última vez que foi compilado sem erros foi antes de migrarmos o banco do EBS para a versão 11. Metade do ano passado.
Agora estamos com esse problema, envolvendo as versões..

Se tiver outras dicas, fico grata!

Abraço
gwbaptista
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Seg, 11 Jan 2016 4:23 pm

oi Pessoal, beleza?

Alguém conseguiu resolver este problema do Forms 6i?

Eu acabei de migrar um banco de dados da versão 10g para 11g e quando eu tento compilar um Forms chamando um procedure do banco, que utiliza DBLINK ou até mesmo um sinônimo que aponte para um outro banco através de um dblink, ele trava.

Abraço,
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

gwbaptista escreveu:quando eu tento compilar um Forms chamando um procedure do banco, que utiliza DBLINK ou até mesmo um sinônimo que aponte para um outro banco através de um dblink, ele trava
Estranho. Já tentou criar uma VIEW da sua tabela que faz query no DB_LINK? E depois usar apenas a VIEW?
Exemplo:

Selecionar tudo

VIEW tabelax:
SELECT * FROM TABELAX@DB0001
gwbaptista
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Seg, 11 Jan 2016 4:23 pm

Pessoal, Problema Resolvido !!!

Eu resolvi montar uma procedure no banco de dados para fazer novos testes e dentro desta procedure eu criei vários selects utilizando os sinônimos que utilizam DBLINKS. Eu percebi que alguns selects não travavam o Forms durante a compilação.

Olhando a view DBA_SYNONYMS e comparando os sinônimos que travavam a compilação do Forms e os que não travavam na , eu descobri um detalhe, a coluna TABLE_OWNER estava com valor NULO nas linhas correspondentes aos sinônimos causadores do problema, provavelmente durante a criação do sinônimo não foi especificado o OWNER da tabela do banco de destino, exemplo:
1-) SINÔNIMO que causava o problema:

Selecionar tudo

create public synonym SYN_OWNER.SYN_NAME for TABLE_NAME@DBLINK;
2-) SINÔNIMO que NÃO causava o problema:

Selecionar tudo

create public synonym SYN_OWNER.SYN_NAME for TABLE_OWNER.TABLE_NAME@DBLINK; 
Obs: os sinônimos apenas não funcionavam ao compilar o forms 6 chamando procedures do banco de dados.

Solução: Recriei todos os Sinônimos públicos utilizando o TABLE_OWNER do banco de destino e todos os Forms foram recompilados com sucesso no banco 11g.

Outro detalhe, fazendo estas alterações nos sinônimos, os Forms também foram compilados com sucesso no banco 12c.

Abraço,
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 13 visitantes