Executar SELECT conforme uma condição

Oracle Application Express - web application development tool (antigamente conhecido como Oracle HTML-DB)
Responder
carlynhos77
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 172
Registrado em: Seg, 24 Out 2016 7:20 pm

Ola, boa tarde

Estou querendo criar uma condição para q seja executado o SELECT, se o usuário logado for ADMINISTRADOR, o select será executado de uma forma, se for OPERADOR, será executado de outra, segue um exemplo, porém dá erro:

Selecionar tudo

     IF G_TIPO_USER = 'ADMINISTRADOR' THEN
        select DESCRICAO as display_value, COD_TCM as return_value 
        from GERAL_ORGAO where id_cidade = :G_ID_CIDADE order by 1
     ELSE
        select DESCRICAO as display_value, COD_TCM as return_value 
        from GERAL_ORGAO where id_cidade = :G_ID_CIDADE and [b]COD_TCM = :g_id_orgao[/b]
        order by 1
    END IF;
Neste exemplo, eu quero que somente o OPERADOR tenha mais um critério de filtro.

So terei 2 tipos de usuários.

Se puderem me ajudar, agradeço.
carlynhos77
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 172
Registrado em: Seg, 24 Out 2016 7:20 pm

carlynhos77 escreveu:Ola, boa tarde

Estou querendo criar uma condição para q seja executado o SELECT, se o usuário logado for ADMINISTRADOR, o select será executado de uma forma, se for OPERADOR, será executado de outra, segue um exemplo, porém dá erro:

IF G_TIPO_USER = 'ADMINISTRADOR' THEN
select DESCRICAO as display_value, COD_TCM as return_value
from GERAL_ORGAO where id_cidade = :G_ID_CIDADE order by 1
ELSE
select DESCRICAO as display_value, COD_TCM as return_value
from GERAL_ORGAO where id_cidade = :G_ID_CIDADE and COD_TCM = :g_id_orgao
order by 1
END IF;

Neste exemplo, eu quero que somente o OPERADOR tenha mais um critério de filtro.

So terei 2 tipos de usuários.

Se puderem me ajudar, agradeço.
so para complementar, esse codigo será usado no PROCESSOS DO APLICATIVO
DanielNN
Moderador
Moderador
Mensagens: 641
Registrado em: Seg, 03 Set 2007 3:26 pm
Localização: Fortaleza - CE
att,

Daniel N.N.

Outra possibilidade (existem outras) era fazer uma consulta com UNION ALL, algo assim:

Selecionar tudo

select DESCRICAO as display_value
     , COD_TCM as return_value 
  from GERAL_ORGAO 
 where id_cidade = :G_ID_CIDADE 
   AND G_TIPO_USER = 'ADMINISTRADOR'
UNION ALL
select DESCRICAO as display_value
     , COD_TCM as return_value 
  from GERAL_ORGAO 
 where id_cidade = :G_ID_CIDADE 
   and COD_TCM = :g_id_orgao
   AND G_TIPO_USER <> 'ADMINISTRADOR'
carlynhos77
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 172
Registrado em: Seg, 24 Out 2016 7:20 pm

certo, vou fazer o teste aqui... obrigado
Responder
  • Informação
  • Quem está online

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