Inserir vários dados em lote.

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
pyro
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 323
Registrado em: Qui, 21 Set 2006 10:21 am
Localização: Barala - TT

Pessoal tenho um situação interessante aqui, tenho vários dados que vão precisar ir sendo inseridos em seqüencia em várias tabelas. Até aí é fácil, porém em vez de ficar dando vários inserts pensei em inserir tudo de uma única vez, para exemplificar no MySQL posso fazer assim:

Selecionar tudo

insert into teste1(campo, campo2) values(5, 6), (4, 2)
Como ficaria essa situação no Oracle? Ficar dando vários insert's um para cada linha não ficaria lento?
gokden
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 264
Registrado em: Dom, 19 Ago 2007 8:18 pm
Localização: Ribeirão Preto - SP
Lucas de Souza

OCA Developer
Analista de sistemas

tp, tem como você criar uma tabela baseada nas informações de outra..
desse jeito

Selecionar tudo

 Create table teste as select * from teste2
e se os valores que você deseja cadastrar já estiverem em outra tabela pode inserir assim

Selecionar tudo

insert into table1 
select nome
     , sobrenome
     , telefone 
  from table2
esses são os jeitos de facilitar um insert qui eu conheço..
mais se o seu caso não forr esse
eu já não sei...

mais acho qui vai demorar um pouquinho sim.. =D
uma vez eu fiz um script qui inseriou quase 150 linhas em uma tabela..
e demorou um pouco, mais não axei outra escolha
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,

Dê uma pesquisada aqui no fórum por: Bulk Collect e Forall.
Você consegue movimentar grande quantidade de registros.
Talvez o ajude tb.
qualquer coisa, manda ai.
pyro
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 323
Registrado em: Qui, 21 Set 2006 10:21 am
Localização: Barala - TT

Vou dar uma pesquisada por estes termos.

O que eu acredito ser um problema é que serão entre 2 bancos diferentes então não dá para usar nenhum método mais direto como este:

Selecionar tudo

insert into tabela select * from tabela2
Vlw.
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

Á não ser que você tenha DBLink entre os bancos brother.

Daí você conseguiria dar um select num BD, inserindo numa tabela do outro BD.

Mas, isso você poderia estar analisando juntamente com o DBA da empresa, que irá saber lhe explanar melhor.
Responder
  • Informação
  • Quem está online

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