LOV :: Ambigously ????

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
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

Pessoal, boa tarde.

Alguém já passou por esta situação?
Tenho uma JOIN, em um Record Group, com N joins.

O primeiro campo que quero mostrar é NRO_CONTRATO, porém, se o deixo em primeiro no record group, dá o erro de ambiguidade.

Se o deixo em segundo e, como primeiro, coloco por exemplo:
NULL COD_TAG (null com um alias Cod Tag), ele funciona.

Resumindo:

Só não pode ser o primeiro da lista?

Grato,
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

Manda o SQL aqui pra gente dar uma olhada :D
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

Bom dia, pessoal.

Segue o código:

Selecionar tudo


SELECT /*+ USE_NL(F  CLI   PFJ  ENDE  LOC   UF   PAIS   ETE  BAI) ORDERED
       INDEX(F     FILIAL_PK)
       INDEX(CLI   PFJ_RELACIONA_PFJ_PK)
       INDEX(PFJ   PESSOA_FISICA_JURIDICA_PK)
       INDEX(ENDE  ENDERECO_I_02)
       INDEX(LOC   LOCALIDADE_PK)
       INDEX(UF    UF_PK)
       INDEX(PAIS  PAIS_PK)
       INDEX(ETE   END_TIPO_ENDERECO_PK) 
       INDEX(BAI   BAIRRO_PK)*/
       A.NRO_CONTRATO
     , B.NRO_ITEM
     , C.COD_TAG_ITEM
     , C.NOM_ITEM
     , B.QTD_ITEM
     , PFJ.NOM_RAZAO_SOCIAL
     , PFJ.NRO_PESSOA
     , ENDE.NRO_ENDERECO
     , FUN_LOCAL_ENTREGA(PFJ.NRO_PESSOA,:FILIAL.NRO_EMPRESA,:FILIAL.NRO_FILIAL,A.NRO_CONTRATO) LOCAL_ENTREGA
FROM   CONTRATO                       A
     , CONTR_ITEM                     B
     , ITEM                           C
     , CONTR_PESSOA                   D
     , FILIAL                         F
     , PFJ_RELACIONA_PFJ              CLI
     , PESSOA_FISICA_JURIDICA         PFJ
     , ENDERECO                       ENDE
     , LOCALIDADE                     LOC
     , UF                             UF
     , PAIS                           PAIS
     , END_TIPO_ENDER                 ETE
     , BAIRRO                         BAI
WHERE  A.NRO_GRUPO                    = :PARAMETER.COMERCIAL 
AND    A.NRO_TIP_CONTRATO             = :PARAMETER.PEDIDODEVENDA
AND    A.NRO_SIT_CONTRATO IN (:PARAMETER.APROVADO, :PARAMETER.ATENDIDO_PARCIALMENTE)
AND    A.NRO_EMPRESA                  = :FILIAL.NRO_EMPRESA
AND    A.NRO_FILIAL                   = :FILIAL.NRO_FILIAL
AND    B.NRO_CONTRATO                 = A.NRO_CONTRATO
AND    C.NRO_ITEM                     = B.NRO_ITEM
AND    D.NRO_CONTRATO                 = A.NRO_CONTRATO
AND    D.TIP_RELAC                    = :PARAMETER.RELAC_CLIENTE
AND    PFJ.NRO_PESSOA                 = D.NRO_PESSOA 
AND    F.NRO_EMPRESA                  = :FILIAL.NRO_EMPRESA
AND    F.NRO_FILIAL                   = :FILIAL.NRO_FILIAL
AND    CLI.NRO_PESSOA_RELACIONADA     = F.NRO_PESSOA
AND    CLI.NRO_TIP_RELAC              = :PARAMETER.CLIENTE
AND    SYSDATE BETWEEN CLI.DAT_INICIAL AND NVL(CLI.DAT_FINAL, SYSDATE)
AND    PFJ.NRO_PESSOA                 = CLI.NRO_PESSOA_RELACIONA
AND    ENDE.NRO_PESSOA                = PFJ.NRO_PESSOA
AND    PFJ.NRO_SITUACAO               = :PARAMETER.P_SIT_ATIVO_PFJ
AND    SYSDATE BETWEEN ENDE.DAT_INICIO AND NVL(ENDE.DAT_FIM, SYSDATE)
AND    LOC.NRO_PAIS                   = ENDE.NRO_PAIS
AND    LOC.NRO_LOCALIDADE             = ENDE.NRO_LOCALIDADE
AND    UF.NRO_PAIS                (+) = LOC.NRO_PAIS
AND    UF.NRO_UF                  (+) = LOC.NRO_UF
AND    PAIS.NRO_PAIS                  = ENDE.NRO_PAIS
AND    ETE.NRO_ENDERECO               = ENDE.NRO_ENDERECO
AND    ETE.NRO_TIP_ENDERECO           = :PARAMETER.P_DOMICILIO
AND    SYSDATE BETWEEN ETE.DAT_INICIO AND NVL(ETE.DAT_FIM,SYSDATE)
AND    BAI.NRO_BAIRRO             (+) = ENDE.NRO_BAIRRO
AND    BAI.NRO_PAIS               (+) = ENDE.NRO_PAIS
AND    BAI.NRO_LOCALIDADE         (+) = ENDE.NRO_LOCALIDADE
AND    NVL(C.STA_GRANEL,'N')          = 'N'
ORDER  BY 1



Nota Importante: Se antes do A.NRO_CONTRATO, eu colocar uma outra coluna, por exemplo: NULL COD_TAG_ITEM, ele funciona sem crise e, no Navigator roda normal, do jeito que está ai acima, trocando-se apenas as variáveis.
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

Estranho.
Eu tentei criar uma LOV com HINTS (achei que o forms tava se perdendo com os hints).
Mas funcionou certinho.
Fica a dúvida...
Avatar do usuário
fabricio.silva
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 34
Registrado em: Seg, 12 Mar 2007 7:07 am
Localização: Catanduva/SP
Fabricio M. Silva
Oracle Certified Associate
------------------------------
Catanduva - SP

Olá Trevisolli,

Essa query é bem complexa, você consegue executá-la no SQL*plus?

Se sim, será que se criar uma view não poderia resolver o problema?

Espero que dê certo.

Abs.
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

Então, Fabrício...

É complicada mesmo essa query... andei até procurando em outros fóruns alguma coisa...

Mas, consegui resolver aqui de outra forma, como disse, criando um alias para um null e colocando antes...

O engraçado é que, no SQL*Plus executa normalmente.
Mas, por enquanto está funcionando, resolveu meu problema.

Vou fazer teste com uma VIEW, apenas para desencargo.

Valeu
Responder
  • Informação
  • Quem está online

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