Fórum Procedure com Cursor #29013
28/05/2008
0
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.
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
Curtir tópico
+ 0
Responder
Posts
29/05/2008
Paulo
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;
/
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)