Oracle - procedimiento

   
Vista:

procedimiento

Publicado por nelem (4 intervenciones) el 18/10/2007 13:03:45
Hola tengo un problema yo quiero recorrer una tabla y si algun dato de esta tabla no es correcto insertar una fila en una tabla de errores. Mi problema es que solo lo consigo hacer con el primer codigo os pongo el código por si me podeis ayudar. Muchas gracias

CREATE OR REPLACE PROCEDURE ECV_CARGACUESTBUCOFIC IS
S_CHISTORI NUMBER(10);
S_TFECHA VARCHAR2(30);
S_DIA NUMBER(2);
S_MES NUMBER(2);
S_ANO NUMBER(2);
V_NROWID ROWID;
TOTAL NUMBER(10);
OK NUMBER(10);
ERRONEOS NUMBER(10);
ERROR_FECHA VARCHAR2(1);
FechaErronea EXCEPTION;
CURSOR CURSOR1 IS
SELECT ROWID,
CHISTORI,
TFECHA,
DIA,
MES,
ANO
FROM TBCUESTBUCOFIC_CARGA;

/******************************************************************************
BEGIN
TOTAL := 0;
OK := 0;
ERRONEOS := 0;
OPEN CURSOR1;
LOOP
FETCH CURSOR1
INTO V_NROWID,
S_CHISTORI,
S_TFECHA,
S_DIA,
S_MES,
S_ANO;
EXIT WHEN CURSOR1%NOTFOUND;
TOTAL := TOTAL+1;
ERROR_FECHA := 'N';
IF ((S_DIA < 1) OR (S_MES < 1) OR
(S_DIA >31) OR (S_MES >31)) THEN RAISE FechaErronea;
END IF;

END LOOP;
EXCEPTION
WHEN NO_DATA_FOUND THEN
dbms_output.put_line('NO HAY DATOS');
RAISE;
WHEN FechaErronea THEN
insert into TBCUESTBUCOFIC_ERROR
(chistori,
tfecha,
Terror)
values
(S_CHISTORI,
S_TFECHA,
'FECHA ERRONEA');
ERRONEOS := ERRONEOS +1;
GOTO Continue_ForEach1;

<< Continue_ForEach1>>
NULL;
CLOSE CURSOR1;
COMMIT WORK;
RETURN;
END ECV_CARGACUESTBUCOFIC;
/

Un saludo y de nuevo daros las gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:procedimiento

Publicado por nelem (4 intervenciones) el 18/10/2007 14:38:18
Hola no hace falta que me grites y menos mal que contigo no trabajo porque no creo que nos fueramos a llevar bien yo solo pedia ayuda pero muchas gracias por nada ya me las he arreglado yo sola.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar