Estou tendo dificuldade ao usar o FORALL para inserir registros em uma tabela em outro banco, ligados por dblink
O erro sempre apresentado é ORA-01400 cannot insert NULL
Como preciso enviar dados de uma tabela para outra em grandes quantidades, estava pensando em usar o bulk collet, mas parece que não funciona bem quando se usa em conjunto com dblink. Fiz um teste em uma tabela do mesmo banco e funcionou perfeitamente.
Antes estava usando o INSERT com SELECT e funciona de forma bem rápida, cerca de 50.000 em 7 segundos.
Mas como a quantidade de registros pode chegar a 2.000.000, comecei a usar CURSOR e, inserindo linha a linha, os mesmos 50.000 demorou 2 minutos.
Alguma sugestão ou exemplo de como posso fazer essa transmissão de registros de forma rápida?
BULK COLLET junto com DBLINK
- fsitja
- Rank: OraSauro
- Mensagens: 611
- Registrado em: Seg, 19 Jan 2009 4:29 pm
- Localização: Gaúcho no Rio de Janeiro - RJ
"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html
OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html
OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist
Você tem que colocar sua procedure que faz o insert diretamente na máquina remota do dblink e fazer chamada do programa de sua máquina de origem.
Se você não tiver privilégios para criar o programa lá, fique com a alternativa do insert select, colocar num só comando é a melhor alternativa.
Se você não tiver privilégios para criar o programa lá, fique com a alternativa do insert select, colocar num só comando é a melhor alternativa.
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes