Cursor com Parametro

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
renan_pre
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 50
Registrado em: Ter, 10 Abr 2007 11:08 am
Localização: São Paulo - SP
M. Renan

Bom dia Galera!

Estou com um problema... tenho um cursor onde passo um parametro como no exemplo abaixo:

Selecionar tudo

cursor cCliente (pCodigo varchar2) is
  select cd_cliente, nm_cliente
    from cliente
  where cd_cliente in (nvl(pCodigo, cd_cliente));
Na execução, o usuário vai informar os clientes que deseja, pelo código, separados por vírgula, num text_item do tipo Char..... dessa forma o pCodigo receberia o conteudo do text_item, por ex.: 1,2,3,4,5...

mas por ser do tipo char, o forms está interprentando como '1,2,3,4,5' e então da o erro ORA-01722 Invalid Number....

Que outra forma eu teria de fazer este cursor??

Valeuu!
RodrigoValentim
Moderador
Moderador
Mensagens: 367
Registrado em: Ter, 25 Mar 2008 3:41 pm
Localização: Salvador - BA
Rodrigo Valentim
Analista de Sistemas
Oracle Developer

Campanha: Faça uma pesquisa antes de perguntar!!!

É possível sim.
Você precisa tratar a informação antes de enviar para o cursor.

Aconselho passar parametro por parametro, colocando o cursor em um loop pra poder abrir o mesmo a cada código passado.

mais seguro e mais fácil para dar manutenção.
renan_pre
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 50
Registrado em: Ter, 10 Abr 2007 11:08 am
Localização: São Paulo - SP
M. Renan

Rodrigo, valeu pela dica, mas, no meu caso não vai resolver... eu usei o exemplo acima para demonstrar mas a query que estou fazendo é monstruosa e tem 25 parametros diferentes.....
o programa vai gerar uma planilha excel com o resultado da query e ela já está sendo aberta num loop...

tem alguma outra forma??

Obrigado! :wink:
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, monta um cursor dinâmico.
Dá uma procurada aqui no fórum por Ref Cursor que irá encontrar exemplos interessantes, como este abaixo:

http://www.glufke.net/oracle/viewtopic. ... ref+cursor

Qualquer dúvida, manda pra gente.
Responder
  • Informação