Quem é que nunca executou um SQL e não retornou dados? Bom… existem inúmeros motivos dos quais o seu SQL pode não estar retornando dados, mas deixo aqui um dica quando necessário executar uma query que necessita de contexto.
Setar contexto é como se estivesse exatamente dentro do aplicativo Oracle EBS, com as todas as restrições, atribuições, organizações, etc… Quando criar um SQL a partir de tabelas sem o prefixo “_all”, recomenda-se a utilização do contexto.
Para fazer isto, basta executar os comandos abaixo:
Para recuperar as informações a seguir, utilize os SQL’s:
Recuperando Informações Usuário
SELECT USER_ID FROM FND_USER WHERE USER_NAME = ''; -- Usuário de Login no Oracle EBS
Recuperando Informações Responsabilidade
SELECT RESPONSIBILITY_ID , APPLICATION_ID FROM FND_RESPONSIBILITY_TL WHERE RESPONSIBILITY_NAME = &NOME_DA_RESPONSABILIDADE;
Setando Contexto ORG_ID na Release 12
BEGIN MO_GLOBAL.SET_POLICY_CONTEXT (P_ACCESS_MODE => 'S', P_ORG_ID => &ORG_ID); END;
Setando Contexto ORG_ID na Release 11i
BEGIN FND_CLIENT_INFO.SET_ORG_CONTEXT (P_ORG_ID => &ORG_ID); END;
Setando o Usuário, Responsabilidade e Aplicação
BEGIN FND_GLOBAL.APPS_INITIALIZE(USER_ID => &USER_ID, RESP_ID => &RESP_ID, RESP_APPL_ID => &RESP_APPL_ID); END;