erro - cursor

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
izaura
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 10
Registrado em: Ter, 06 Dez 2005 11:53 am
Localização: santos-sp

Esta acontecendo o seguinte erro:ORA-06502: PL/SQL: erro: erro de conversão de caractere em número numérico ou de valor

estrura da tabela (cores) - > campos: cod(number) e cor(varchar2)

Cursor q esta gerando o erro:

Selecionar tudo

declare 
  cursor c_cursor is
    select cor, cod from cores;
  v_cod cores.cod%TYPE;
  v_cor cores.cor%TYPE;
begin
  open c_cursor;
  loop
    fetch c_cursor into v_cod,v_cor;
  exit when c_cursor%NOTFOUND;
  dbms_output.put_line((v_cod) || '-' ||(v_cor));
  end loop;
  close c_cursor;
end;

Help!Please! :-)
Avatar do usuário
anderson
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 75
Registrado em: Seg, 06 Jun 2005 1:08 pm
Localização: Toledo - PR
Contato:
Anderson Nuernberg
---

olá, inverta os campos cor e cod no seu cursor... como no exemplo abaixo...

Selecionar tudo

DECLARE 
CURSOR c_cursor IS 
  SELECT cod, cor
    FROM cores; 
  v_cod cores.cod%TYPE; 
  v_cor cores.cor%TYPE; 
BEGIN 
  OPEN c_cursor; 
  LOOP 
    FETCH c_cursor INTO v_cod, v_cor; 
    EXIT WHEN c_cursor%NOTFOUND; 
      dbms_output.put_line((v_cod)|| '-' ||(v_cor)); 
  END LOOP; 
CLOSE c_cursor; 
END; 
este erro ocorreu porque você selecionou os campos cor e depois código e fez o into nos campos código e cor, ficando invertido... deve-se usar a mesma sequência de campos no select e no into.

[]´s

:-o
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 24 visitantes