Boa tarde!
No sistema há 2 tipos de roles, tipo RoleA e RoleB. Essas 2 Roles conseguem executar a Stored Procedure "X"
Preciso montar uma condição numa Consulta dentro da Stored Procedure de tal forma que:
SELECT .........
FROM .....
WHERE ....
SE usuário pentence a RoleA ENTÃO
AND STATUS = 'A'
SE usuário pertence a RoleB ENTÃO
AND STATUS = 'B'
FIM-SE
Gostaria de saber qual seria a sintaxe, ou seja, um exemplo no Oracle para essa situação.
Obrigado.
Roles
-
- 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
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Brother,
Dá uma olhada no tópico abaixo, onde o Dr_Gori fala sobre a tabela do banco onde se armazenam as Roles:
http://www.glufke.net/oracle/viewtopic.php?t=3851
Através desta informação, você consegue montar um Select Dinâmico ou, até mesmo, utilizar Decode para sanar o problema.
Qualquer dúvida, manda pra gente.
Dá uma olhada no tópico abaixo, onde o Dr_Gori fala sobre a tabela do banco onde se armazenam as Roles:
http://www.glufke.net/oracle/viewtopic.php?t=3851
Através desta informação, você consegue montar um Select Dinâmico ou, até mesmo, utilizar Decode para sanar o problema.
Qualquer dúvida, manda pra gente.
-
- Rank: Estagiário Pleno
- Mensagens: 5
- Registrado em: Seg, 27 Out 2008 4:02 pm
- Localização: Santo André
Trevisolli,
Realmente essa é a minha dúvida.
Ex:
SELECT nome_depto
FROM
DEPTO
WHERE
DECODE(????)
Como colocar dentro do decode se for uma role A, "And Status = X" e se for role B, "And Codigo = 1"
Vi que a tabela "user_role_privs " possui as roles do usuário, mas não sei como realizar essa condição dentro de um decode.
Não sei se ficou confuso..
Realmente essa é a minha dúvida.
Ex:
SELECT nome_depto
FROM
DEPTO
WHERE
DECODE(????)
Como colocar dentro do decode se for uma role A, "And Status = X" e se for role B, "And Codigo = 1"
Vi que a tabela "user_role_privs " possui as roles do usuário, mas não sei como realizar essa condição dentro de um decode.
Não sei se ficou confuso..
-
- Rank: DBA Júnior
- Mensagens: 229
- Registrado em: Sex, 05 Set 2008 2:59 pm
- Localização: Igrejinha - RS
cara...
você pode fazer algo assim...
vê se corresponde...
você pode fazer algo assim...
SELECT * FROM TABELA
WHERE STATUS = (SELECT decode(granted_role, 'A', 'A', 'B', 'B') FROM User_Role_Privs)
-
- Rank: Programador Júnior
- Mensagens: 16
- Registrado em: Seg, 23 Jun 2008 11:06 am
- Localização: Uberlândia - MG
======================
"Quando todos pensam o mesmo,
ninguém está pensando!"
======================
"Quando todos pensam o mesmo,
ninguém está pensando!"
======================
Se entendi bem, você quer colocar em uma variável qual a role do usuário?
... olha se te ajuda?
... olha se te ajuda?
BEGIN
SELECT DECODE(granted_role,'roleA','A','roleB','B'))
INTO variavel
FROM user_role_privs;
EXCEPTION
WHEN others then
Erro aqui;
END
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 10 visitantes