Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

dcaixeta

Utl_file executar arquivo em lotes

Recommended Posts

Já uso o text_io para ler e gerar arquivos e estou precisando fazer o mesmo procedimento

em uma pasta onde o servidor com o banco de dados Oracle está instalado.

Criei todos os procedimentos para usar o Utl_file e até ai deu tudo certo.

já consegui ler e gerar arquivos.

 

Mas agora estou tentando executar um arquivo .bat (arquivo em lote),

gostaria de saber se tem como executar este tipo de arquivo?

se tem, qual é o procedimento correto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa!

 

Também você poderia tentar criar um bloco anônimo PL-SQL que utilizasse o pacote UTL_FILE e tentar chamar um JOB...

Existe um tipo específico de JOB que executa comandos no sistema operacional, seria um bom estudo...

 

http://forum.imasters.com.br/public/style_emoticons/default/natal_smile.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi, pessoal

estive fora deste projeto durante um tempo, mas retornei e conforme dicas acima

consegui resolver o meu problema.

 

Deixo registrado aqui alguns itens que utilizei, talves possa ser util à alguém.

 

Durante as pesquisas encontrei varias materias sobre a utilização do UTL_FILE e dbms_scheduler Job

inclusive aqui no forum.

 

- Ativar os serviços do JOB

- Criar permissão diretorio UTL_FILE_DIR dentro do arquivo "init.ora".

conforme exemplo abaixo será autorizado a executar o pacote no sistema em todos os diretórios da maquina.

 

################################

compatible = 9.0.0

db_name = ORACLE

utl_file_dir = *

################################

 

- na utilização tanto no UTL_FILE ou bms_scheduler Job pelo SQL/Plus funcionaram perfeitamente.

mas ao utilizar os procedimentos pelo forms6i deparei com alguns problemas. (falta de permissões e alguns outros detalhes)

 

desta forma utilizei os comandos abaixo:

 

alter system set utl_file_dir='*' scope=spfile

 

grant CREATE ANY JOB to <usuario>;

 

grant execute on dbms_scheduler to <usuario>;

 

grant create external job to <usuario>;

 

e para executar um arquivo batch usei o exemplo abaixo, mas conforme ainda estou em pesquisa de uso destes procedimentos não afirmo se estes seriam os melhores procedimentos.

estou colocando somente algumas dicas.

 

-- executando um arquivo batch na maquina que está instalado o banco de dados.

begin

dbms_scheduler.create_job (

job_name =>'atualizar_teste',

job_type =>'executable',

job_action =>'c:\atualizar_teste.bat > nul',

enabled => true,

auto_drop => true

);

commit;

end;

/

 

(a descrição nul somente com um L é porque se trata do windows

e para usar o dbms_scheduler no forms utilizei atraves de pesquisa no DB e executando atraves de função)

 

 

Quanto a utilização do UTL_FILE vocé encontra aqui no forum alguns modelos.

 

e atraves destes topicos consegui resolver o meu problema.

 

obrigado pela ajuda de todos.

 

abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.