Olá,
estou iniciando no Oracle, e gostaria de saber como posso gerar uma VIEW PARAMETRIZADA?
Agradeço desde já,
Marcos Bastos
View parametrizada
- dr_gori
- 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
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Olá mbfilho
Não é possível colocar parâmetros numa VIEW. (pelo menos, não como se faz com cursores ou funções).
O que você pode fazer é o seguinte: Coloque os valores em um lugar público do banco. (por exemplo, uma tabela de parâmetros)... Daí, a view consulta essa tabela e você consegue recuperar o parâmetro desejado.
Outra forma é usar as "variáveis globais" do SQL que são os CONTEXTOS.
Aí vai um exemplo:
Não é possível colocar parâmetros numa VIEW. (pelo menos, não como se faz com cursores ou funções).
O que você pode fazer é o seguinte: Coloque os valores em um lugar público do banco. (por exemplo, uma tabela de parâmetros)... Daí, a view consulta essa tabela e você consegue recuperar o parâmetro desejado.
Outra forma é usar as "variáveis globais" do SQL que são os CONTEXTOS.
Aí vai um exemplo:
system@O8IR3:SQL>create or replace context my_ctx USING
2 my_procedure;
Contexto criado.
system@O8IR3:SQL>create or replace procedure my_procedure(
2 p_name in varchar2, p_value in number)
3 as
4 begin
5 dbms_session.set_context( 'my_ctx', p_name, p_value );
6 end;
7 /
Procedimento criado.
system@O8IR3:SQL>grant execute on MY_PROCEDURE to scott;
Operação de Grant bem-sucedida.
scott@O8IR3:SQL>create or replace view V_TESTE as
2 select deptno, dname from dept where deptno > sys_context(
'my_ctx', 'deptno')
3 UNION ALL
4 select deptno, dname from dept where deptno < sys_context(
'my_ctx', 'deptno')
5 ;
View criada.
scott@O8IR3:SQL>exec system.MY_PROCEDURE('deptno', 30);
Procedimento PL/SQL concluído com sucesso.
scott@O8IR3:SQL>select * from V_TESTE;
DEPTNO DNAME
------------------ --------------
40 OPERATIONS
10 ACCOUNTING
20 RESEARCH
scott@O8IR3:SQL>
-
- Rank: Estagiário Sênior
- Mensagens: 9
- Registrado em: Ter, 02 Dez 2008 10:43 am
- Localização: Sorocaba-SP
O que fazer quando não se tem privilégios de SYSTEM?
Agradeço desde já.
Agradeço desde já.
- fbifabio
- Moderador
- Mensagens: 199
- Registrado em: Ter, 22 Fev 2011 1:51 pm
- Localização: São Paulo - SP
- Contato:
mbfilho, ao invés de criar uma tabela para filtrar a view, você também pode criar apenas uma package specification com uma variavel, como no exemplo do link abaixo:
http://www.programadoras.com.br/?p=241
Att,
Fábio Prado
www.fabioprado.net
http://www.programadoras.com.br/?p=241
Att,
Fábio Prado
www.fabioprado.net
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 22 visitantes