Galera
Eu estou lendo um arquivo xml onde passo o nome do xml como parametro, mas eu gostaria de que quando eu não passasse o nome ele lesse todos os arquivos ( xmls) que estão no diretorio criando um loop ele fizesse pegando um a um...todos os xmls que estivessem no diretorio...
só para estar ciente eu leio um xml e carrego em uma tabela com um campo tipo xmltype onde fica todo conteudo do xml e depois eu extraio os campos...
mas para ficar mais dinâmico eu quero que ele leia todos os arquivos tipo uma lista sem precisar passar o nome dos arquivos um a um...
Eu estou utilizando funções utl_file para minha package mas não encontrei nada que eu busque todos os arquivos.
o diretório é local.
Ler arquivos xml de um diretório
-
- Rank: Estagiário Sênior
- Mensagens: 14
- Registrado em: Ter, 25 Ago 2015 1:31 pm
-
- Rank: Programador Sênior
- Mensagens: 48
- Registrado em: Qua, 25 Ago 2010 9:39 am
- Localização: Limeira
claudioreiis01, infelizmente não existe uma função que faça essa busca no diretório pelo que eu saiba, algumas das soluções que vi incluem criar um método em java dentro do banco, ou se estiver usando o 11g usar uma external table, é um tipo de tabela que você cria e define um arquivo que vai guardar as informações.
No 11g foi adicionado um recurso de preprocessor, você pode informar por exemplo um shell script que vai popular essa tabela, no script você colocaria os comandos do sistema operacional pra listar os arquivos.
Segue o link de referência, a leitura é um pouco longa
http://www.oracle-developer.net/display.php?id=513
No 11g foi adicionado um recurso de preprocessor, você pode informar por exemplo um shell script que vai popular essa tabela, no script você colocaria os comandos do sistema operacional pra listar os arquivos.
Segue o link de referência, a leitura é um pouco longa
http://www.oracle-developer.net/display.php?id=513
-
- Rank: Estagiário Sênior
- Mensagens: 14
- Registrado em: Ter, 25 Ago 2015 1:31 pm
Valeu @Souldeath pelo retorno..
Cara não existe um select para ler o diretorio e eu executar um execute immediate com um loop?
porque caso haja um select que retorne um arquivo do diretorio só será preciso criar um loop ...
eu estou lendo alguns select mas eles apenas mostram o nome diretorio criado como este por exemplo
Por isso pensei que pode ter algum select que le o arquivo do diretorio ao invés de mostrar o nome.
Cara não existe um select para ler o diretorio e eu executar um execute immediate com um loop?
porque caso haja um select que retorne um arquivo do diretorio só será preciso criar um loop ...
eu estou lendo alguns select mas eles apenas mostram o nome diretorio criado como este por exemplo
SELECT directory_path
INTO lv_pattern
FROM all_directories
WHERE directory_name = 'NFS_DIR';
-
- Rank: Programador Sênior
- Mensagens: 48
- Registrado em: Qua, 25 Ago 2010 9:39 am
- Localização: Limeira
claudioreiis01, é isso mesmo que eu falei no outro post, não tem um select que retorne os arquivos contidos no diretório, você teria que criar um script no sistema operacional pra fazer isso, com os comados dir do windows ou ls no linux. O script e a tabela externa teriam que estar no mesmo diretório.
Talvez seja mais fácil fazer essa rotina do lado da aplicação do que em pl/sql
Talvez seja mais fácil fazer essa rotina do lado da aplicação do que em pl/sql
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 15 visitantes