clausula query não permite VARIAVEL GLOBAL ?

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
tomgmf
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Seg, 10 Abr 2006 5:00 pm
Localização: Guarujá - SP

BOM DIA

Gente, eu tenho um select na query data source name e la na where eu to querendo colocar por exemplo num_teste = :global.p_teste e não funciona, se eu coloco o codigo do teste funciona

alguém tem uma resposta para isso, eu consegui fazer funcionar tirando essa where do query data source name e colocando na WHERE Clause num_teste = :global.p_teste e funcionou

mas acho que essa solução não seria a certa, então por favor, alguém me ajude a entender se assim mesmo ou se existe uma solução profissional para isso.

Obrigado!!!
Avatar do usuário
leobbg
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 22
Registrado em: Sex, 29 Out 2004 10:25 am
Localização: PORTO ALEGRE - RS
Leo BBG Consultor Oracle

Realmente não funciona amigo, você pode tratar de N formas para contornar essa situação, mas o que posso dizer em resumo é:

Como você mesmo disse está utilizando uma QUERY no bloco, bom o oracle vai no banco e executa essa query, mas quando ele chega lá ele se depara uma variável Bind ( :global.p_teste ) que ele não tem a menor idéia que valor tem, devemos então sempre ter esse pensamento, a QUERY é executada no banco e não no próprio forms, devemos passar os valores dessas variáveis Bind para ele entender, uma das formas que você arrumou foi a where clause, mas também pode se mondar a query dinamicamente se precisar substituir mais valores, e outras mais.

Bom espero ter ajudado, qualquer coisa, prende o grito!!
falou!!!! :twisted:
tomgmf
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Seg, 10 Abr 2006 5:00 pm
Localização: Guarujá - SP

Obrigado !!! você é o cara mano !!!
tomgmf
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Seg, 10 Abr 2006 5:00 pm
Localização: Guarujá - SP

Então, para melhorar a situação, coisa boa heim

ao invés de fazer do jeito anterior, eu fiz assim:

cria uma PU e joga a select dentro de um varchar e depois executa ela

v_query := '(select blablabla)

e depois

SET_BLOCK_PROPERTY('teste',QUERY_DATA_SOURCE_NAME,v_query);

pronto, ta bala mano!!! pefeito
Responder
  • Informação
  • Quem está online

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