Excel para Oracle (Urgente)
-
- 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.
- dr_gori
- 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ê 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.
Outra forma é tentar usar alguma ferramenta tipo PL/SQL Developer.
-
- 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
-
- 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
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.
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.
- madmax
- 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.
-- 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.
-
- 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
Estou testando com o SQL-DEVELOPER 7.01
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 17 visitantes