Inserção de dados em massa

Bom dia, estou procurando por soluções que auxiliem na importação de registros em grande quantidade. Um amigo meu me disse que tem um jeito de o banco de Dados (no meu caso o Oracle) receber um ArrayList e ele mesmo fazer os procedimentos para importar, ao invés de utilizar somente Java. Alguém sabe mais sobre essa funcionalidade do Oracle?

Onde estão os dados?

Com procedures PL/SQL, você pode ler arquivos e fazer operações de inserção no banco. É uma forma muito comum de processar informações em lote e em grandes quantidades.

Abraço.

Arquivos, a grande maioria Excel

Mas são Excel mesmo ou são csv? CSV são fáceis de ler e escrever, mas arquivos xls e afins têm uma estrutura mais complexa.

Se puder exportar para um formato de texto simples (como o csv), a importação não será muito difícil. Veja por exemplo: http://nimishgarg.blogspot.com.br/2013/04/load-csv-file-in-oracle-using-plsql.html

Abraço.

Legal, muito bom. No meu caso, utilizo uma aplicação web (Java, Tomcat, Oracle), conhece alguma alternativa que eu possa utilizar por esse meio?

A procedure PL/SQL fica dentro do banco Oracle. Com as devidas permissões, você pode executá-la de qualquer ponto (inclusive da sua aplicação web). Pode também criar um processo em que você faz o upload do arquivo pela sua aplicação e o lê através do java ( http://stackoverflow.com/questions/5868369/how-to-read-a-large-text-file-line-by-line-using-java ) , fazendo a inserção através do Java também (um insert via jdbc ou mesmo Hibernate).

Acredito que existam frameworks ou libs que possam ajudar com isso (algo da Apache, talvez), mas não conheço o processo de ponta a ponta para ser mais específico.

Obviamente, pode ser um processo demorado, então leve isso em consideração (rodando-o em background, por exemplo).

Abraço.