oracle-logo

A dica de hoje vai para quem precisa importar shapefiles para o Oracle Spatial/Locator, uma tarefa que pode se tornar muito rápida caso você use o shp2sdo que é um programa disponibilizado gratuitamente pela Oracle, e permite de uma maneira extremamente fácil a importação dos seus dados shapefiles para o Oracle.

Para usá-lo você necessita baixar o shp2sdo do site da Oracle e descompactá-lo em um local de sua preferência. (Você tomar como referência que ele está instalado no Windows na pasta C:\shp2sdo_nt). Feito isso, entre na tela de linha de comando do windows, acesse a pasta do shp2sdo e digite o seguinte comando:

shp2sdo.exe <file_name> <table_name> -g <geom_name> -d -x (<minx>,<maxx>) -y (<miny>,<maxy>) -s <SRS> -t <tolerance> -v

Veja como ficaria o exemplo se você fosse importar o shape de nome Brasil para a tabela eGeoBrasil, que está no DATUM WGS84 no sistema de coordenadas geográficas. ( Estou levando em consideração que o shapefile está em C:\shp2sdo_nt )

shp2sdo.exe <Brasil> <eGeobrasil> -g <GEOM> -d -x (<-180>,<180>) -y (<-90>,<90>) -s <8307> -t <0.005> -v

Depois de executado o comando, o programa criará 2 arquivos: egeobrasil.sql que contém o SQL de criação da tabela no banco, e o arquivo egeobrasil.ctl que contém os dados a serem importados. O arquivo egeobrasil.sql você pode rodá-lo no SQL Plus, ou no PL/SQL Developer sem problema algum, já o arquivo egeobrasil.ctl você deve executá-lo utilizando o SQL Loader (antes de executá-lo é necessário adicionar “CHARACTERSET UTF8” ou “CHARACTERSET WE8ISO8859P1” após a linha LOAD DATA) , e isso pode ser feito na linha de comando, digitando o seguinte comando:

sqlldr user/senha@banco nome_arquivo

Que para o nosso caso ficaria da seguinte forma (Vou levar em consideração que o nome do meu banco é fernandoquadro, o usuário é fernando e a senha é quadro):

sqlldr fernando/quadro@fernandoquadro egeobrasil

Após executado esse comando, basta você fazer um select na tabela e verificar os dados no banco.

Fonte: Blog do Tai Nguyen