Excel para Oracle (Urgente)

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
vindalencio
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 140
Registrado em: Qui, 16 Fev 2006 9:42 am
Localização: Curitiba
Vanderlei Indalencio

CAro amigos, Estou com um problema grande, tenho uma planilha do Excel com 11.000 linhas e preciso passa-la pro Oracle 9, mas o grande problema é na importação, pois as células são muito grandes, por volta de 2.000 caracteres em cada celula, ai tenho que importar num campo CLOB, mas já tentei de tudo e dá pau, nem pensem em converter em CSV. pois tem de tudo nas células, ;,,. *()[]{}, isso é o que mais tem. Tentei com o DDE, mas não estende campo CLOB. se alguém puder me ajudar urgente. :lol:
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Você podia criar a partir desse excel um arquivo TEXTO delimitado por algum caracter especial que não é usado e tentar usar o utilitário sql loader (que fica no servidor).

Outra forma é tentar usar alguma ferramenta tipo PL/SQL Developer.
vindalencio
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 140
Registrado em: Qui, 16 Fev 2006 9:42 am
Localização: Curitiba
Vanderlei Indalencio

Já tentei a feerramenta, mas as célular são muito grande, e com caracter especial, faca difícil, pois todos que já tentei existe nas células, teria que ter uma maneira de mover o conteúdo sem ter que transforma-lo em TXT. mas muito obrigado pela força Dr. Guri
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brother, existem alguma outra saída pro caso.
Faça um teste, pois, eu já importei algo parecido do Excel para o Oracle, com o DTS (Ferramenta que vêm na instalação do SQL Server).
Nessa ferramenta você cria uma conexão do Excel com o Oracle.
Talvez seja uma solução, apesar de não ser uma solução da própria Oracle, talvez resolva teu problema.
Avatar do usuário
madmax
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 293
Registrado em: Qua, 13 Dez 2006 5:02 pm
Localização: São Paulo
Contato:

Cara eu importei um Excel que foi tranformado em CSV sem problemas veja o código abaixo se te ilumina, qualquer coisa posta aí.


-- inicio

BEGIN

filename := 'INVENTARIO FA.csv';
in_file := UTL_FILE.FOPEN(location, filename, open_mode);
EXCEPTION
when utl_file.invalid_path then
raise_application_error(-30020,' Problemas na abertura INVENTARIO FA, Invalid Path');
when utl_file.invalid_mode then
raise_application_error(-30020,' Problemas na abertura INVENTARIO FA, Invalid Mode');
when utl_file.invalid_operation then
raise_application_error(-30020,' Problemas na abertura INVENTARIO FA, Invalid Operation');
END;


-----


Loop
Begin
UTL_FILE.GET_LINE(in_file, linha);
EXCEPTION
when no_data_found then
exit; --> Se o arquivo estiver vazio sai.
fnd_file.put_line(fnd_file.output,'Arquivo esta em vazio');
when value_error then
raise_application_error(-30050,' Buffer não pode armazenar linha');
when utl_file.invalid_filehandle then
raise_application_error(-30060,' arquivo INVENTARIO FA invalido');
when utl_file.invalid_operation then
raise_application_error(-30070,' arquivo INVENTARIO FA invalido');
when utl_file.read_error then
fnd_file.put_line(fnd_file.log,'INVENTARIO FA esta fora do Layout');
raise_application_error(-30080,' Problemas na leitura INVENTARIO FA');
end;

--> aqui eu pego o conteudo da linha do Excel separado por ponto e virgula

w_tam_2 := length(linha); --> verifica tamanho da linha
w_tam_1 := length(linha) -1;

w_final_linha := substr(linha,w_tam_1,w_tam_2); --> verifica ultimo caracter da linha

If substr(w_final_linha,1,1) <> ';' then --> Verifica se existe ; no final da linha
linha := linha || ';';
end if;

w_num_ativo := trim(substr(linha, 1,instr(linha, ';',1, 1)-1));

w_id := trim(nvl(substr(linha, instr(linha, ';',1, 1)+1,
instr(linha, ';', 1, 2) - (instr(linha, ';',1, 1)+1)),''));

w_Etiqueta := trim(nvl(substr(linha, instr(linha, ';',1, 2)+1,
instr(linha, ';', 1, 3) - (instr(linha, ';',1, 2)+1)),''));

w_num_serie := trim(nvl(substr(linha, instr(linha, ';',1, 3)+1,
instr(linha, ';', 1, 4) - (instr(linha, ';',1, 3)+1)),''));

w_ativ_pai := trim(nvl(substr(linha, instr(linha, ';',1, 4)+1,
instr(linha, ';', 1, 5) - (instr(linha, ';',1, 4)+1)),''));

w_descr := trim(nvl(substr(linha, instr(linha, ';',1, 5)+1,
instr(linha, ';', 1, 6) - (instr(linha, ';',1, 5)+1)),''));

-- w_modelo := nvl(substr(linha, instr(linha, ';',1, 6)+1,
-- instr(linha, ';', 1, 7) - (instr(linha, ';',1, 6)+1)),'');

w_modelo := trim(rtrim(ltrim(nvl(substr(linha, instr(linha, ';',1, 6)+1, 40 ),''))));

w_modelo := trim(substr(w_modelo,1, (length(w_modelo)-1)));
-----------------------------------------------------------------

Tento cada Celula em uma variavel você pode inserir em tabelas sem problemas.

Espero ter ajudado.

Att.
vindalencio
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 140
Registrado em: Qui, 16 Fev 2006 9:42 am
Localização: Curitiba
Vanderlei Indalencio

Valeu Amigos...
Estou testando com o SQL-DEVELOPER 7.01
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 17 visitantes