Pessoal seguinte.
Seguidamente eu importo os dados para diversas tabelas apartir de arquivos CSV gerados com o Excel.
Para tal, utilizo o SQL Loader, com o comando:
sqlldr control="diretorio_do_arquivo.ctl"
Nesse arquivo CTL existem os campos da tabela e tals, no qual o Oracle insere na tabela.
O caso é que eu preciso rodar uma trigger pra automatizar alguns processos após essa importação, mas acho que dessa forma como estou importando o oracle insere os dados linha por linha. Como minha trigger está AFTER INSERT, a cada linha inserida ele roda a trigger, mas aí não gera o resultado esperado porque é necessário que todos os dados já estejam inseridos para um resultado satisfatório.
alguém saberia me dizer como posso fazer para essa trigger rode somente após a inserção de todos os dados?
Obrigado.
Trigger após carregamento de dados
-
- Moderador
- Mensagens: 1396
- Registrado em: Sex, 01 Fev 2008 2:06 pm
- Localização: Rio de Janeiro - RJ
- Contato:

você pode dar um execute immediate alterando sua trigger para disable
e no fim fazer o mesmo so que habilitando ela
e no fim fazer o mesmo so que habilitando ela
mas tem como fazer isso nesse arquivos .CTL?
-
- Rank: Programador Pleno
- Mensagens: 43
- Registrado em: Qui, 17 Abr 2008 4:02 pm
- Localização: Rio de Janeiro - RJ
O Backup é meu pastor e nada me faltará!
Thiago Rodrigues de Farias
Thiago Rodrigues de Farias
Dê uma olhada no parâmetro Direct Path:
http://download.oracle.com/docs/cd/F495 ... 8.htm#1027
Dessa maneira você desarmaria as triggers porém, após a carga, você teria q realizar uma ação para disparar a trigger q você precisa rodar.
http://download.oracle.com/docs/cd/F495 ... 8.htm#1027
Dessa maneira você desarmaria as triggers porém, após a carga, você teria q realizar uma ação para disparar a trigger q você precisa rodar.
-
- Moderador
- Mensagens: 1396
- Registrado em: Sex, 01 Fev 2008 2:06 pm
- Localização: Rio de Janeiro - RJ
- Contato:

http://download.oracle.com/docs/cd/B283 ... iggers.htmDo Import and SQL*Loader Fire Triggers?
INSERT triggers fire during SQL*Loader conventional loads. (For direct loads, triggers are disabled before the load.)
The IGNORE parameter of the IMP statement determines whether triggers fire during import operations:
If IGNORE=N (default) and the table already exists, then import does not change the table and no existing triggers fire.
If the table does not exist, then import creates and loads it before any triggers are defined, so again no triggers fire.
If IGNORE=Y, then import loads rows into existing tables. Any existing triggers fire, and indexes are updated to account for the imported data.
Vlw pessoal.
Vou dar uma lida nisso e qualker coisa eu posto.
Obrigado pela ajuda.
Vou dar uma lida nisso e qualker coisa eu posto.
Obrigado pela ajuda.
- 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
Acho que faria mais sentido fazer uma stored procedure.
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante