Parametro no where

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
lordguest
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Ter, 29 Jan 2008 3:23 pm
Localização: Limeira SP

queria saber se tem um jeito de fazer uma query, da mesma forma
que se faz no reports, passando um parametro lexical, ou alguma forma de fazer isso, como no exemplo:

CURSOR cur_valor IS
SELECT a.campo
, b.campo
FROM a
, b
WHERE a.campo = b.campo
&par_where;
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

Brother,

Seria isso o que deseja?

Selecionar tudo

-- Criar um cursor com parâmetro
CURSOR cur_valor (p_parametro NUMBER)
IS 
SELECT a.campo 
     , b.campo 
  FROM a 
     , b 
WHERE a.campo = b.campo 
  AND a.valor = p_parametro;
  
  
-- Abrir o cursor

OPEN cur_valor(1);
FETCH cur_valor INTO v_valor;
CLOSE cur_valor

-- Se retornar mais de uma linha

FOR x IN cur_valor(1)
LOOP
  dbms_output.put_line('teste ');
END LOOP;
lordguest
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Ter, 29 Jan 2008 3:23 pm
Localização: Limeira SP

não, eu não soube explicar direito

eu queria saber se um cursor que ele pode receber um where diferente conforme alguma situação.


EX:
IF (valor = 1) THEN
:par_where := 'AND a.campo = 1'
ELSIF (valor = 2) THEN
:par_where := 'AND b.campo = 2 AND a.campo = 3'
END IF;

nisso queria saber se eu conseguiria escrever esse where no cursor abaixo:

CURSOR cur_valor IS
SELECT a.campo
, b.campo
FROM a
, b
WHERE a.campo = b.campo
:par_where
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

Brother,

Você consegue isso com select dinâmico.
Procure aqui no fórum por REF CURSOR ou DBMS_SQL que irá encontrar exemplos interessantes.
lordguest
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Ter, 29 Jan 2008 3:23 pm
Localização: Limeira SP

valeu aí amigo
deu uma pesquisada e consegui fazer
:lol:
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante