Procedure com Cursor

Oracle

28/05/2008

Preciso fazer uma procedure carregando um Cursor. Tem que ser procedure com cursor. Isso é um teste. Criei uma tabela e populei a tabela com todos os códigos = 1. Então como exercício, preciso incrementar os codigos de forma que o resultado final seja:
1,2,3,4 e 5. Abaixo minha procedure, mas ela está errada. Não sei onde devor alterar para vir o resultado esperado.
CREATE OR REPLACE PROCEDURE ATUALIZA_PROD AS N_COD INTEGER; CURSOR CUR_ATU IS SELECT CODPROD FROM TB_PC_PRODUTO; BEGIN OPEN CUR_ATU; LOOP FETCH CUR_ATU INTO N_COD; UPDATE TB_PC_PRODUTO SET CODPROD = N_COD WHERE CODPROD = 1; N_COD := N_COD+1; EXIT WHEN N_COD = 6; END LOOP; END ATUALIZA_PROD; /



Paulo

Paulo

Curtidas 0

Respostas

Paulo

Paulo

28/05/2008

Achei a resposta.

CREATE OR REPLACE PROCEDURE ATUALIZA_PROD AS N_COD INTEGER; COD INTEGER; CONTCALC INTEGER; N_PROD VARCHAR2(50); CURSOR CUR_ATU IS SELECT CODPROD,NM_PROD FROM TB_PC_PRODUTO; BEGIN OPEN CUR_ATU; CONTCALC := 1; LOOP FETCH CUR_ATU INTO N_COD,N_PROD; COD := N_COD; UPDATE TB_PC_PRODUTO SET CODPROD = CONTCALC WHERE CODPROD = N_COD AND NM_PROD = N_PROD; CONTCALC := CONTCALC+1; EXIT WHEN CONTCALC = 7; END LOOP; END ATUALIZA_PROD; /



GOSTEI 0
POSTAR