/*SELECT * FROM DCARQUIVO_XML*/
/*drop table DCARQUIVO_XML*/
CREATE OR REPLACE PROCEDURE PROC_LER_ARQ_XML IS
vCAMINHO Varchar2(500) := '/u01/backup/EXP_DIR_WINT';
--- vDIRETORIO Varchar2(100) := 'DIR_HOSHI';
targetfile BFILE;
l_clob CLOB;
vNUMNOTA VARCHAR2(20);
CURSOR C_PEGA_PASTA IS
SELECT DISTINCT NOME_ARQUIVO FROM DC_ARQ_XML
WHERE NOME_ARQUIVO NOT IN ( select nome_arquivo from DCARQUIVO_XML t )
AND NOME_ARQUIVO NOT IN ( select nome_arquivo from AUDIT_TABLE_NOTAS_FALHAS ) ;
-- SELECT * FROM DC_ARQ_XML;
BEGIN
/* EXECUTE IMMEDIATE 'create or replace directory DIR_HOSHI as ''/u01/ftpbi';
EXECUTE IMMEDIATE 'grant read, write on directory DIR_HOSHI to PUBLIC';*/
-- captura diretorio real dos arquivos a serem lidos
/* SELECT D.DIRECTORY_PATH
INTO vCAMINHO
FROM DBA_DIRECTORIES D
WHERE D.DIRECTORY_NAME = vDIRETORIO;*/
----chamada da procedure que esta no sys para fazer a leitura dos arquivos no linux
Begin
SYS.ler_arq_xml_2(pdirectory => vCAMINHO);
Exception
When Others Then
SYS.ler_arq_xml_2(pdirectory => vCAMINHO);
End;
FOR C1 IN C_PEGA_PASTA LOOP
targetfile := BFILENAME(vDIRETORIO, c1.NOME_ARQUIVO);
DBMS_LOB.createtemporary(l_clob, TRUE);
Begin
DBMS_LOB.fileopen(targetfile, DBMS_LOB.file_readonly);
DBMS_LOB.loadfromfile(l_clob,
targetfile,
DBMS_LOB.getlength(targetfile));
DBMS_LOB.fileclose(targetfile);
select extractValue(XMLTYPE.createXML(l_clob),
'/nfeProc/NFe/infNFe/ide/nNF',
'xmlns="http://www.portalfiscal.inf.br/nfe"') NUMERO_NF
INTO vNUMNOTA
from dual;
INSERT INTO DCARQUIVO_XML
VALUES
(XMLTYPE.createXML(l_clob), c1.NOME_ARQUIVO, SYSDATE, vNUMNOTA,l_clob);
COMMIT;
Exception
When Others Then
INSERT INTO audit_table_notas_falhas ( NOME_ARQUIVO)
VALUES ( c1.NOME_ARQUIVO);
COMMIT;
End;
END LOOP;
END;
Procedure com erro, mais não fala qual
-
- Rank: Analista Júnior
- Mensagens: 98
- Registrado em: Qua, 24 Set 2008 11:00 pm
- Localização: Belo Horizonte - MG
Bride
OCA Oracle PL/SQL Developer Certified Associate
OCA Oracle PL/SQL Developer Certified Associate
Pessoal, eu aqui mais uma vez, criei uma procedure que já funciona em outro cliente, so que no outro banco ela não roda, e não me fala qual erro ela tem
-
- Rank: Analista Júnior
- Mensagens: 98
- Registrado em: Qua, 24 Set 2008 11:00 pm
- Localização: Belo Horizonte - MG
Bride
OCA Oracle PL/SQL Developer Certified Associate
OCA Oracle PL/SQL Developer Certified Associate
so consigo ver o erro, aqui, mais não me fala qual, se eu recompilo a procedure ela roda, mais fica assim
- Anexos
-
- erro_procedure.jpg (15.14 KiB) Exibido 5621 vezes
-
- Rank: Analista Júnior
- Mensagens: 98
- Registrado em: Qua, 24 Set 2008 11:00 pm
- Localização: Belo Horizonte - MG
Bride
OCA Oracle PL/SQL Developer Certified Associate
OCA Oracle PL/SQL Developer Certified Associate
hum teste esse que já esta cadastrado no banco mais continua
Detalhe dentro dessa procedure eu o SYS, isso teria algo a ver ?
'/u01/backup/WINT/logico' ...
Detalhe dentro dessa procedure eu o SYS, isso teria algo a ver ?
SYS.ler_arq_xml_2(pdirectory => vCAMINHO);
-
- Rank: DBA Júnior
- Mensagens: 228
- Registrado em: Ter, 19 Jun 2007 2:12 pm
- Localização: São Paulo - SP
Provavelmente sim.
No Oracle existem algumas funções que usam o DIRECTORY e outras usam o caminho, UTL_FILE por exemplo.
Você tem algum DBA que possa criar e incluir
No Oracle existem algumas funções que usam o DIRECTORY e outras usam o caminho, UTL_FILE por exemplo.
Você tem algum DBA que possa criar e incluir
/u01/backup/EXP_DIR_WINT
no seu banco?-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes