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.}