Um pequeno problema de exportação de dados Oracle ==> Sql Server

 

Era uma vez uma exportação de algumas tabelas do mundo Oracle para o mundo Sql Server.

Até ai é historinha tranquila né....

Porem surge dois pequenos grandes problemas, ao exporta os arquivos.

 

1.) Quebra de linha Unix(LF) e não Windows(CR LF) o que impedia a importação pela ferramenta utilizada.

2.) Os dados exportados ao invés de aparecerem com ã apareciam ?

 

Então como resolver ????????

 

1.) Criar o arquivo .sh que chamara os arquivos .pl(s), que serão responsaveis pela exportação.

2.) O arquivo .sh ira configura o ambiente para a acentuação (export NLS_LANG=PORTUGUESE_BRAZIL.WE8ISO8859P1)

3.) O arquivo .sh ira gera novos arquivos redefinindo a quebra de linha (sed 's/$'"/`echo \\\r`/" )

 

==> Arquivo .sh

# Configurando para ã e não ?

export NLS_LANG=PORTUGUESE_BRAZIL.WE8ISO8859P1

# Dados Exportados porem com problema de quebra de linha (passo_1)

sqlplus usuario/senha@banco  @/home/oracle/Scripts/exp_tabela1_passo1.pl

sqlplus usuario/senha@banco  @/home/oracle/Scripts/exp_tabela2_passo1.pl

sqlplus usuario/senha@banco  @/home/oracle/Scripts/exp_tabela3_passo1.pl

# Colocando a quebra de linha (passo_2)

sed 's/$'"/`echo \\\r`/" /backup/tabela1_passo1.csv>/exp_tabela1_passo2.csv

sed 's/$'"/`echo \\\r`/" /backup/tabela2_passo1.csv>/exp_tabela2_passo2.csv

sed 's/$'"/`echo \\\r`/" /backup/tabela3_passo1.csv>/exp_tabela3_passo2.csv

 

 

 

==> Arquivo exp_tabela1_passo1.pl

alter session set nls_timestamp_format='dd/mm/yyyy HH24:mi:ss';

alter session set nls_date_format='dd/mm/yyyy HH24:mi:ss';

-- Defino Separador de campos com os caracteres |#|

set colsep '|#|'

set pagesize 0

set linesize 9999

set trimspool on

set tab off

set echo off

set feedback off

set recsep off

set feedback off

set heading off

spool /backup/tabela1_passo1.csv

select * from  tabela1_passo1;

spool off

set feedback on

set heading on

set pagesize 20

exit

 

Bem... Imagino que você consiga desenvolver o exp_tabela2_passo1.pl e o exp_tabela3_passo1.pl

 

E claro que existe outros meios, mas esse é bem didático rápido e pratico. 

 

Espero ter ajudado. 

 

PS { export NLS_LANG=AMERICAN_AMERICA.UTF8 também pode estar valendo rs.}