Boa tarde, pessoal!
Estou usanto o utl_file.get_line para ler um arquivo .xml, mas o mesmo esta estourando. Alguém conhece outro processo para ler um arquivo XML para resolver esse problema?
At.:
utl_file.get_line com mais de 3276.
-
- Rank: Programador Júnior
- Mensagens: 22
- Registrado em: Qui, 26 Jul 2012 8:55 am
" Pense diferente! - "
-
- Rank: DBA Sênior
- Mensagens: 317
- Registrado em: Seg, 16 Nov 2009 4:50 pm
- Localização: São Paulo - SP
Bom dia amigo.
Apesar de não conhecer muito sobre o assunto (XML - Oracle), sei que existem bibliotecas específicas para trabalhar com esse formato de arquivo.
Dá uma olhada nos seguintes sites e vê se pode lhe ajudar:
http://byclaudio.wordpress.com/2012/03/ ... no-oracle/
http://eduardoarruda.wordpress.com/2009 ... as-oracle/
http://www.oracle.com/pls/db112/search? ... h&word=xml
Qualquer coisa, via postando ai para ver se algum parceiro aqui do fórum consegue lhe ajudar esclarecer suas dúvidas.
Abç.,
Apesar de não conhecer muito sobre o assunto (XML - Oracle), sei que existem bibliotecas específicas para trabalhar com esse formato de arquivo.
Dá uma olhada nos seguintes sites e vê se pode lhe ajudar:
http://byclaudio.wordpress.com/2012/03/ ... no-oracle/
http://eduardoarruda.wordpress.com/2009 ... as-oracle/
http://www.oracle.com/pls/db112/search? ... h&word=xml
Qualquer coisa, via postando ai para ver se algum parceiro aqui do fórum consegue lhe ajudar esclarecer suas dúvidas.
Abç.,
-
- Rank: Programador Júnior
- Mensagens: 22
- Registrado em: Qui, 26 Jul 2012 8:55 am
" Pense diferente! - "
Valeu, tinho! Era isso mesmo ... segue o Código abaixo, caso alguém precise de algum exemplo.
create or replace procedure prc_grava_xml(i_nom_diretorio in varchar2,
i_nom_arquivo in varchar2,
io_errcode in out number,
io_errmsg in out varchar2) is
w_arquivo Bfile;
w_conteudo CLOB;
w_xml clob;
w_error exception;
begin
-- verifica se o ditorio foi informado...
if i_nom_diretorio is null then
io_errcode:= 100;
io_errmsg:= 'Não possui diretorio informado!';
raise w_error;
end if;
-- verifica se o arquivo foi informado...
if i_nom_arquivo is null then
io_errcode:= 100;
io_errmsg:= 'Não esta informado o nome do arquivo!';
raise w_error;
end if;
-- cria ou replica o diretorio
w_arquivo := bfilename(i_nom_diretorio,i_nom_arquivo);
-- O procedimento FileOpen abre a BFILE para acesso somente leitura ...
DBMS_LOB.fileOpen(w_arquivo,dbms_lob.file_readonly);
-- cria um temporário BLOB ou CLOB e seu índice correspondente no seu tablespace temporário padrão ...
DBMS_LOB.createtemporary(w_conteudo,TRUE,DBMS_LOB.session);
-- Este procedimento copia a totalidade ou uma parte de, um LOB fonte externa (BFILE) para um destino LOB interno ..
DBMS_LOB.loadFromFile(w_conteudo,w_arquivo,DBMS_LOB.getLength(w_arquivo),1,1);
-- Este procedimento fecha um BFILE que já foi aberto através do localizador de entrada.
DBMS_LOB.fileClose(w_arquivo);
-- Função estática para criar e retornar um XMLType exemplo.
w_xml := w_conteudo; -- XMLType.createxml(w_conteudo);
begin
insert into xml_confirmation(xml_con_codigo,xml_con_dados) values(seq_xml_confirmation.nextval,w_xml);
commit;
exception
when others then
io_errcode:= sqlcode;
io_errmsg:= 'Erro ao gerar insert na prc_grava_xml';
end;
exception
when w_error then
io_errcode:= io_errcode;
io_errmsg := io_errmsg;
when others then
null;
end;
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante