Uso de DBLink no Forms

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
marlonpasquali
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 248
Registrado em: Sex, 06 Fev 2009 3:02 pm
Localização: ERECHIM - RS

Forms 6i:

Olá pessoal,
estou tentando usar umas tabelas onde foi criado um DbLink para outro banco, dentro de um When-validate-record conforme abaixo. Mas está dando erro na compilação:
ORA-00600:codigo de erro interno, argumentos:[16203],[],[],[]

alguém pode me ajudar por favor ?

Código:

DECLARE

nome varchar2(80);
setor varchar2(60);
horaentrada1 varchar2(10);
horasaida1 varchar2(10);
horaentrada2 varchar2(10);
horasaida2 varchar2(10);
situacao varchar2(30);


BEGIN

Begin
Select
p.nopessoa,
cc.noccusto,
hor.hrent1,
hor.hrsai1,
hor.hrent2,
hor.hrsai2,
s.NOSITFUNC
into
nome,
setor,
horaentrada1,
horasaida1,
horaentrada2,
horasaida2,
situacao
from TABHORARIO@FOLHA hor,
ESCALAHORARIO@FOLHA ehor,
FUNCIONARIO@FOLHA f,
PESSOA@FOLHA p,
CENTROCUSTO@FOLHA CC,
SITUACAO@FOLHA s,
(select cdpessoafunc codigo,max(DTHORARIO) data from ESCALAHORARIO@FOLHA group by cdpessoafunc) maximo
where f.cdpessoa = p.cdpessoa
and ehor.cdpessoafunc = f.cdpessoafunc
and hor.cdtabhorario = ehor.CDTABHORARIOFIXO
and hor.diasemana = 2
and ehor.cdpessoafunc = maximo.codigo
and ehor.dthorario = maximo.data
and f.cdccusto = cc.cdccusto
and f.CDSITFUNC = s.CDSITFUNC
and s.NOSITFUNC <> 'DEMITIDO'
and f.cdpessoafunc = :FUNCIONARIO.CRACHA;
Exception
When others then
nome :=null;
setor :=null;
horaentrada1:=null;
horasaida1 :=null;
horaentrada2:=null;
horasaida2 :=null;
situacao :=null;

End;

:FUNCIONARIO.FUNCIONARIO := nome;
:FUNCIONARIO.HORA_ENTRADA1 := horaentrada1;
:FUNCIONARIO.HORA_SAIDA1 := horasaida1;
:FUNCIONARIO.HORA_ENTRADA2 := horaentrada2;
:FUNCIONARIO.HORA_SAIDA2 := horasaida2;
:FUNCIONARIO.SETOR := setor;
:FUNCIONARIO.SITUACAO := situacao;

END;
gfkauer
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 389
Registrado em: Ter, 27 Jul 2010 1:34 pm
Localização: Sapiranga - RS
Contato:
Quem falou que programar era fácil??

Quanto mais dificil for a implementação mais valorizado seu trabalho será!

Acessem: www.gfkauer.com.br

Esse erro é terrivel =/

Segue um link de um artigo do Rodrigo Almeida. Talvez te ajude.

http://profissionaloracle.com.br/blogs/ ... -que-faco/
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

EU acho que se você usar um record group pode funcionar...

porque dai a consulta vai pro banco e volta direto populado o recordgroup,

dessa forma é diferente.. é o forms que monta o comando , não sei explicar, uma vez tive uma bronca dessa,

veja se um record grupo funciona

faz um teste e posta aí

=)
marlonpasquali
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 248
Registrado em: Sex, 06 Fev 2009 3:02 pm
Localização: ERECHIM - RS

Amigos,
obrigado pelas dicas. Consegui resolver da seguinte maneira. Não sei porque mas quando usa dblink diretamente no forms, não funciona. Então segui uma sugestão que achei em um post que seria a criação de uma view.
Então criei uma view no banco, exatamente com o select de que estava precisando e no forms usei esta view para fazer o select e mostrar os dados. Daí funcionou normalmente.

abraço e mais uma vez obrigado pelas dicas.

Att,
Marlon.
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

deve ser algo com o client do forms, a dll do forms não deve passar os parametros direito pro banco, algo assim,

porque quando usa recordgroup ou a view, você esta executando algo no banco mesmo...

sinistro, viva o forms

:D
Responder
  • Informação
  • Quem está online

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