Melhor maneira de identificar o tipo de dados de um valor

9 respostas
jks1903

Pessoal, seguinte.

Aqui na empresa estamos mudando o sistema de gestão.
Com isso, precisamos migrar muitos dados do sistema atual, em Access, para o banco de dados do novo sistema, que é em Oracle.

Através do Access eu consigo gerar planilhas em Excel.

Para facilitar o trabalho, estou criando uma aplicação que irá buscar essa planilha e inserir nas tabelas do novo sistema.

Porém, no meio do processo me surgiu uma dúvida.
No excel eu não sei o tipo de dados que cada célula contém.
Existe alguma forma para fazer isso?

Estava pensando em fazer um Cast e ir testando pelas exceptions, mas acho que é não é uma boa prática.

Há alguma maneira mais eficiente para isso?

Obrigado.

9 Respostas

Markus_Alemao

Cara por que você não migra direto do Access para o Oracle ?
Usando o JDBC você elimina grande parte dos problemas de tipagem, ja que o mesmo tem uma abstração grande para com o tipo de dado especifico do banco.

jks1903

Markus Alemao:
Cara por que você não migra direto do Access para o Oracle ?
Usando o JDBC você elimina grande parte dos problemas de tipagem, ja que o mesmo tem uma abstração grande para com o tipo de dado especifico do banco.

Cara, é que assim.

Temos alguns cadastros que estão desatualizados.
Um exemplo é um cadastro de prestadores e de usuários que temos, onde muitas vezes o usuário muda de endereço, telefone e etc e não está atualizado no sistema atual(brevemente antigo, rsrs).
E até outros que aparentam estar 100%, mas para passar para o novo sistema queremos que realmente estejam 100% corretos e devido a isso exige conferência.

E eu não sei se os dados do indivíduo estão corretos ou nao. Por isso gero as planilhas em Excel, em forma de relatórios para conferência, pois os responsáveis pela conferencia acham mais fácil conferir em forma de lista do que na tela do sistema, onde aparece um cadastro por vez, enfim, preferência de quem irá validar os dados.
com o arquivo no formato Excel, quem confere já corrige os dados no próprio arquivo.

Aí, quando essa pessoa conclui essa etapa, ela simplesmente utitlizaria essa aplicação para importar o arquivo excel para o Oracle (obviamente para tabelas temporárias).

Após a sinalização de que o arquivo foi importado, aí sim, eu migro os dados dessas tabelas temporárias para as “tabelas verdadeiras” do sistema.

Mas vlw pela resposta mesmo assim.

Flw.

leo.alvesneuwald

Cara, não sei se ajuda, mas no Oracle, você pode criar tabelas virtuais, acho que posso chamar assim, que apontam para um arquivo .xls, e manipular os mesmo como se fossem tabelas dentro da tablespace normal do Oracle, desta forma, seria possível pegar esses dados e tal. Sei que não é a resposta para a pergunta, mas pode ser que ajude de alguma forma.

jks1903

Cara, disso eu não sabia.
Se eu conseguir implementar isso vai ajudar muito, pois nao preciso perder tempo desenvolvendo algo do tipo.

Vou pesquisar pra ver se acho algo do gênero.

Vlw.

leo.alvesneuwald

E ai, conseguiu encontrar algo a respeito? Qualquer avisa, eu não conheço muito bem como funciona isso, mas posso pedir uma informações para o pessoal que conhece mais e te passar.

jks1903

Cara, pior que ainda não consegui nada.
To pesquisando e até perguntei em um fórum sobre Oracle, mas lá também não consegui nenhuma informação mais clara.

Se tu puder mesmo me passar umas dicas, te agradeço.

Vlw pela força.

rmendes08

Esse é o jeito mais difícil. Como o colega falou, é mais fácil migrar tudo para o Oracle é corrigir tudo pelo Oracle mesmo.

leo.alvesneuwald

jks1903:
Cara, pior que ainda não consegui nada.
To pesquisando e até perguntei em um fórum sobre Oracle, mas lá também não consegui nenhuma informação mais clara.

Se tu puder mesmo me passar umas dicas, te agradeço.

Vlw pela força.

Cara, falei com o professor, DBA Oracle também, a resposta dele foi a seguinte:

"(…)a outra é com tabelas externas (external tables).

No caso de uso de external tables, basta criarmos um diretório externo dentro do Oracle, que aponta para um diretório real do servidor, uma tabela no Oracle que apontará para um arquivo externo, e um arquivo com o mesmo leiaute da tabela."

leonardoteles

Olá pessoal, bom dia. Desenterrando o tópico, gostaria muito da ajuda de vcs!! Estou com uma situação que é mais ou menos a do colega que criou o tópico. Aqui na empresa temos uns sistemas legados(para ser otimista) que estão passando por mudanças de melhorias/modernização.

Recebi como missão, modernizar um sistema de cadastro de produtos, fornecedores e tal (web)…o típico CRUD nosso de cada dia. Porém, esse aqui tem uma particularidade diferente das que já vi até então. O usuário do sistema, atualmente, cadastra os fornecedores, os contratos e etc por meio de uma interface criada no Access MS e salva tudo no Oracle. Para dados de grande volume de informações, como por exemplo “ítens de um produto e/ou contrato”, ele alimenta a mesma base Oracle por meio da mesma interface Access, que lê planilhas do Excel criadas por ele (imagina que situação maluca?)…

Mas então, quase tudo isso já está diferente, com exceção à forma como ele alimenta essa base. Como para um caso de cadastro de ítens de um contrato(por exemplo), ele poderá cadastrar de 1…N possibilidades, chegou-se a conclusão de que isso deverá permanecer inalterado. Estou as vésperas da entrega do sistema para testes mas para essa funcionalidade ainda não consegui escrever uma linha de código. Andei pesquisando aqui no fórum e no Google, é claro, e vi que existe uma API chamada Apache POI que lê planilhas Excel e grava em bases de dados, mas pelo que pude perceber, isso é feito através de métodos criados e rodados direto pela IDE. Como a aplicação que estou desenvolvendo será utilizada 100% pelo usuário, eu terei que criar uma forma dele fazer uma espécie de UpLoad do arquivo e gravar as informações no Oracle como já é feita pela dupla Access/Oracle hoje…arrghhh…

Alguém teria algum exemplo disso, mesmo que relatado por alguém, da forma como poderia estar resolvendo essa pendenga? Um outro colega aqui, desenvolvedor tbm, me disse agora pela manhã que existe uma forma de importar esses dados no Oracle através de “External Tables”. Aqui no fórum também não tem nada sobre isso, mas pelo que pude perceber, resolveria meu problema tbm. Só que lendo um pouco mais sobre o assunto, me pintou a seguinte dúvida: dessa forma, com External Tables, seria possível integrar um, digamos, método pra ele clicar num botão, escolher o .xls na máquina e com mais um botão, gravar os dados no banco, sem precisar pensar muito e nem ficar me chamando o tempo todo pra mostrar como fazer, pq “antes era mais fácil do que agora…blá, blá, blá…”? Já estou começando a ficar bastante preocupado com isso, pois meu desempenho já está sendo posto à prova!!!

Qualquer sugestão(diferente das relatadas) será bem-vinda. Muito obrigado a todos e bom dia!!

Criado 13 de julho de 2011
Ultima resposta 15 de fev. de 2012
Respostas 9
Participantes 5