Busca

Google
 
BuscaPé, líder em comparação de preços na América Latina
BuscaPé, líder em comparação de preços na América Latina

terça-feira, 29 de julho de 2008

EXEMPLO PRÁTICO SQLOADER

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 columns
comment 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 indexes
create index IDX_TELEPONTO on TELEPONTO (C4) tablespace WSP_TS;
create index IDX_TELEPONTO_STATUS on TELEPONTO (C10) tablespace WSP_TS;

********************************************************************
ARQUIVO DE CONTROLE DO SQLLOADER

Arquivo localizado no servidor Oracle em /u04/ponto

arquivo ponto.ctl
/****************
LOAD DATA
INFILE ‘dados.dat’
APPEND INTO TABLE teleponto
FIELDS 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 0707
01 01 0007865 131120070757 01 00 8908 0708
01 01 0007865 131120071033 01 00 8904 0709
01 01 0007536 131120071159 99 00 0000 0710 3491186939
01 01 0004034 131120071200 01 00 8837 0711
01 01 0004034 131120071258 01 00 8837 0712
01 01 0007865 131120071304 01 00 8908 0713
01 01 0007536 131120071357 99 00 0000 0714 3433124344
01 01 0004034 131120071601 01 00 8837 0715
01 01 0007536 131120071757 99 00 0000 0716 3491186939
01 01 0007865 131120071847 01 00 8904 0717
\***********************

********************************************************************************

Arquivos necessários para execução do processo

Configurações para carregar o arquivo para o Oracle

shell que ira rodar as 00:15 para capturar a data do sistema e copiar arquivo do servidor de TELEPONTO

shell de captura
/**************************
# define a data do arquivo a ser copiado
export arquivo=`date --date 'yesterday' +pt%Y%m%d`

#Acessa o Servidor e copia o arquivo para /u04/ponto
curl -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 Oracle

SHELL deve ter os seguintes comandos para poder executar o sqlloader programado pelo crontab ou manualmente.

/*******************
export ORACLE_BASE=/ora/app/oracle
export ORACLE_HOME=/ora/app/oracle/product/10.1.0/db_1
export ORACLE_SID=acad

LD_LIBRARY_PATH=$ORACLE_HOME/jdk/jre/lib/i386/server:$ORACLE_HOME/rdbms/lib:$ORACLE_HOME/lib:$LD_LIBRARY_PATH
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export log=`date +%d-%m-%Y_ponto.log`

cd /u04/ponto
sqlldr userid=wsp/<<>>@scad control=ponto.ctl log=$log


\*****************************

Oracle Rac

Apresentação sobre Oracle RAC

http://oukc.oracle.com/static05/opn/oracle9i_database/40168/053107_40168_source/index.htm