alguém poderia me dizer a onde o oracle esta vendo erro nesta procedure....
PROCEDURE varre_patrimonios IS
filename VARCHAR2(30);
Arq text_io.file_type;
v_linha varchar2(10000);
PATRI_ANTIGO NUMBER(10);
PATRI_NOVO NUMBER(10);
DAT_TOMB VARCHAR2(8);
cod_status NUMBER(2);
cod_setor NUMBER(10);
cod_unid NUMBER(10);
cod_conserv NUMBER(2);
sit_patri VARCHAR2(1);
cod_mat NUMBER(10);
tip_baixa VARCHAR2(1);
imprtado VARCHAR2(1);
encontrado VARCHAR2(1);
resp_matri NUMBER(10);
resp VARCHAR2(100);
sit_reg VARCHAR2(15);
BEGIN
filename := GET_FILE_NAME(File_Filter=> 'Files (*.txt)|*.txt|');
arq:= Text_IO.Fopen('filename','R');
--Text_IO.Get_Line(arq,v_linha);
loop
Text_IO.Get_Line(arq,v_linha);
BEGIN
PATRI_ANTIGO := substr(v_linha,1,10); -- código patrimonio antigo
EXCEPTION WHEN NO_DATA_FOUND THEN MESSAGE ('ARQUIVO NÃO ENCONTRADO COD: 1');
WHEN OTHERS THEN MESSAGE ('ERRO NA LEITURA COD: 1');
END;
--
BEGIN
PATRI_NOVO := substr(v_linha,11,10); -- código patrimonio atual
EXCEPTION WHEN NO_DATA_FOUND THEN MESSAGE ('ARQUIVO NÃO ENCONTRADO COD: 2');
WHEN OTHERS THEN MESSAGE ('ERRO NA LEITURA COD: 2');
END;
--
BEGIN
DAT_TOMB := substr(v_linha,21,8); -- data tombamento
EXCEPTION WHEN NO_DATA_FOUND THEN MESSAGE ('ARQUIVO NÃO ENCONTRADO COD: 3');
WHEN OTHERS THEN MESSAGE ('ERRO NA LEITURA COD: 3');
END;
--
BEGIN
cod_status := substr(v_linha,29,2); -- cod status
EXCEPTION WHEN NO_DATA_FOUND THEN MESSAGE ('ARQUIVO NÃO ENCONTRADO COD: 4');
WHEN OTHERS THEN MESSAGE ('ERRO NA LEITURA COD: 4');
END;
--
BEGIN
cod_setor := substr(v_linha,31, 10); -- codigo do setor
EXCEPTION WHEN NO_DATA_FOUND THEN MESSAGE ('ARQUIVO NÃO ENCONTRADO COD: 5');
WHEN OTHERS THEN MESSAGE ('ERRO NA LEITURA COD: 5');
END;
--
BEGIN
cod_unid := substr(v_linha,41, 10); -- codigo da unidade
EXCEPTION WHEN NO_DATA_FOUND THEN MESSAGE ('ARQUIVO NÃO ENCONTRADO COD:6');
WHEN OTHERS THEN MESSAGE ('ERRO NA LEITURA COD: 6');
END;
--
BEGIN
cod_conserv := substr(v_linha,51, 2); -- codigo conservação
EXCEPTION WHEN NO_DATA_FOUND THEN MESSAGE ('ARQUIVO NÃO ENCONTRADO COD: 7');
WHEN OTHERS THEN MESSAGE ('ERRO NA LEITURA COD: 7');
END;
--
BEGIN
sit_patri := substr(v_linha,53,1); -- situação patrimonio
EXCEPTION WHEN NO_DATA_FOUND THEN MESSAGE ('ARQUIVO NÃO ENCONTRADO COD: 8');
WHEN OTHERS THEN MESSAGE ('ERRO NA LEITURA COD: 8');
END;
--
BEGIN
cod_mat := substr(v_linha,54, 10); -- codigo material
EXCEPTION WHEN NO_DATA_FOUND THEN MESSAGE ('ARQUIVO NÃO ENCONTRADO COD: 9');
WHEN OTHERS THEN MESSAGE ('ERRO NA LEITURA COD: 9');
END;
--
BEGIN
tip_baixa := NVL(substr(v_linha,64,1),'N'); --codigo tipo baixa
EXCEPTION WHEN NO_DATA_FOUND THEN MESSAGE ('ARQUIVO NÃO ENCONTRADO COD: 10');
WHEN OTHERS THEN MESSAGE ('ERRO NA LEITURA COD: 10');
END;
--
BEGIN
imprtado := substr(v_linha,65, 1); -- I importado sicop V inventariado N item novo.
EXCEPTION WHEN NO_DATA_FOUND THEN MESSAGE ('ARQUIVO NÃO ENCONTRADO COD: 11');
WHEN OTHERS THEN MESSAGE ('ERRO NA LEITURA COD: 11');
END;
--
BEGIN
encontrado := substr(v_linha,66,1); --encontrado
EXCEPTION WHEN NO_DATA_FOUND THEN MESSAGE ('ARQUIVO NÃO ENCONTRADO COD: 12');
WHEN OTHERS THEN MESSAGE ('ERRO NA LEITURA COD: 12');
END;
--
BEGIN
resp_matri := substr(v_linha,67,10); --responsavel matricula.
EXCEPTION WHEN NO_DATA_FOUND THEN MESSAGE ('ARQUIVO NÃO ENCONTRADO COD: 13');
WHEN OTHERS THEN MESSAGE ('ERRO NA LEITURA COD: 13');
END;
--
BEGIN
resp := substr(v_linha,77,100); --responsavel
EXCEPTION WHEN NO_DATA_FOUND THEN MESSAGE ('ARQUIVO NÃO ENCONTRADO COD: 14');
WHEN OTHERS THEN MESSAGE ('ERRO NA LEITURA COD: 14');
END;
--
BEGIN
sit_reg := substr(v_linha,177,15); --situação registro
EXCEPTION WHEN NO_DATA_FOUND THEN MESSAGE ('ARQUIVO NÃO ENCONTRADO COD: 15');
WHEN OTHERS THEN MESSAGE ('ERRO NA LEITURA COD: 15');
END;
exit;
end loop;
end;
----------------------------------
a porcaria do erro ORA-302000