declare
CURSOR c1 is
select cnae_code, mcc_code from sistema.cnae_mcc;
BEGIN
open x in c1 ;
loop
update sistema.company set mcc_code = x.mcc_code where cnae_code = x.cnae_code;
end loop;
commit;
END;
utilização de cursor
-
- Rank: Estagiário Júnior
- Mensagens: 1
- Registrado em: Ter, 05 Mai 2015 2:47 pm
galera to meio destreinado, mas to apanhando num detalhe eu sei, alguém poderia me dizer o que ta de errado aqui embaixo?
- 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
Tem varias coisas erradas.
* Não está sendo declarado o que é X.
* O open cursor está errado: OPEN CURSOR C1;
* ta faltando o FETCH c1 into x;
* Parece que tem um LOOP eterno ali.Tem que testar se o Cursor chegou no fim com %FOUND ou %NOTFOUND
* Faltando o CLOSE cursor.
O jeito mais fácil é usar FOR CURSOR, daí você evita todo tipo de complicação.
A não ser que você tenha uma razão específica pra usar OPEN CURSOR...
* Não está sendo declarado o que é X.
* O open cursor está errado: OPEN CURSOR C1;
* ta faltando o FETCH c1 into x;
* Parece que tem um LOOP eterno ali.Tem que testar se o Cursor chegou no fim com %FOUND ou %NOTFOUND
* Faltando o CLOSE cursor.
O jeito mais fácil é usar FOR CURSOR, daí você evita todo tipo de complicação.
begin
for vcur in (select cnae_code, mcc_code from sistema.cnae_mcc);
loop
update sistema.company set mcc_code = vcur.mcc_code where cnae_code = vcur.cnae_code;
end loop;
commit;
end;
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes