EXEMPLO PRÁTICO  SQLOADER
Autor: Paulo Sérgio Caetano de Oliveira | Publicado: 2008-07-29T09:36:00-07:00

Este exemplo mostra um procedimento prático que utilizo para carregar de um PABX um arquivo texto com informação sobre ligações, a partir deste arquivo efetuar a carga para o Oracle usando o sqlloader.***********************************************************************Tabela a ser utilizada.-- Create tablecreate table TELEPONTO( C1 CHAR(2),C2 CHAR(2),C3 CHAR(7),C4 CHAR(12),C5 CHAR(2),C6 CHAR(2),C7 CHAR(4),C8 CHAR(4),C9 CHAR(10),C10 NUMBER(1) default 0)tablespace WSP_TS;-- Add comments to the columnscomment on column TELEPONTO.C8 is 'RAMAL';comment on column TELEPONTO.C9 is 'TELEFONE EXTERNO';comment on column TELEPONTO.C10 is 'IMPORTADO 0 - NAO 1 - SIM 2 - DIVERGENCIA';-- Create/Recreate check constraints alter table TELEPONTO add constraint CK_TELEPONTO check (c10 in (0,1,2));-- Create/Recreate indexescreate index IDX_TELEPONTO on TELEPONTO (C4) tablespace WSP_TS;create index IDX_TELEPONTO_STATUS on TELEPONTO (C10) tablespace WSP_TS;********************************************************************ARQUIVO DE CONTROLE DO SQLLOADERArquivo localizado no servidor Oracle em /u04/pontoarquivo ponto.ctl/****************LOAD DATAINFILE ‘dados.dat’APPEND INTO TABLE telepontoFIELDS TERMINATED BY ' 'OPTIONALLY ENCLOSED BY ' 'TRAILING NULLCOLS(c1, c2,c3,c4,c5,c6,c7,c8, c9 nullif (c9=BLANKS)) \******************************************************************************************EXEMPLO DO ARQUIVO GERADO PELO TELEPONTO. (ARQUIVO TEXTO)/**********************01 01 0004034 131120070659 01 00 8837 070701 01 0007865 131120070757 01 00 8908 070801 01 0007865 131120071033 01 00 8904 070901 01 0007536 131120071159 99 00 0000 0710 349118693901 01 0004034 131120071200 01 00 8837 071101 01 0004034 131120071258 01 00 8837 071201 01 0007865 131120071304 01 00 8908 071301 01 0007536 131120071357 99 00 0000 0714 343312434401 01 0004034 131120071601 01 00 8837 071501 01 0007536 131120071757 99 00 0000 0716 349118693901 01 0007865 131120071847 01 00 8904 0717\*******************************************************************************************************Arquivos necessários para execução do processoConfigurações para carregar o arquivo para o Oracleshell que ira rodar as 00:15 para capturar a data do sistema e copiar arquivo do servidor de TELEPONTOshell de captura/**************************# define a data do arquivo a ser copiadoexport arquivo=`date --date 'yesterday' +pt%Y%m%d`#Acessa o Servidor e copia o arquivo para /u04/pontocurl -O -u axs:<<>> ftp://0.0.0.1/??.1?.8.??/arquivos/$arquivo# Gera um arquivo dados.dat com base no arquivo copiadao.cp /u04/ponto/$arquivo /u04/ponto/dados.dat -f \**********************************************************************************************************Rodar o sqlloader para carregar os dados para a tabela do OracleSHELL deve ter os seguintes comandos para poder executar o sqlloader programado pelo crontab ou manualmente. /*******************export ORACLE_BASE=/ora/app/oracleexport ORACLE_HOME=/ora/app/oracle/product/10.1.0/db_1export ORACLE_SID=acadLD_LIBRARY_PATH=$ORACLE_HOME/jdk/jre/lib/i386/server:$ORACLE_HOME/rdbms/lib:$ORACLE_HOME/lib:$LD_LIBRARY_PATHPATH=$PATH:$HOME/bin:$ORACLE_HOME/binexport log=`date +%d-%m-%Y_ponto.log`cd /u04/pontosqlldr userid=wsp/<<>>@scad control=ponto.ctl log=$log\*****************************