- Este tópico contém 10 respostas, 4 vozes e foi atualizado pela última vez 14 anos, 3 meses atrás por
Rodrigo Almeida.
-
AutorPosts
-
25 de novembro de 2011 às 4:00 pm #101816
RomuloRDM
ParticipanteBom dia,
Tenho uma procedure (SP_INC_PLANOS_FICHAS) que é executada a partir do comando “exec SP_INC_PLANOS_FICHAS( 1,’1′,’1Z’)”, existe alguma forma de executar através de uma BAT, pois preciso que um usuario execute somente quando for gerar um relatorio.
Att.
RomuloRDM
25 de novembro de 2011 às 4:58 pm #101820rman
Participante@RomuloRDM
O ideal é que seja incluído isso dentro do sistema, isso evitaria que o usuário esqueça da executar isso, não sei qual é a gravidade de se esquecer de executar essa procedure.
Mas se realmente você quer seguir esse caminho, é possível fazer um bat chamando o sqlplus.
Faz assim, crie um arquivo inc_planos_fichas.sql
exec SP_INC_PLANOS_FICHAS( 1,'1','1Z');
exit;
crie um inc_planos_fichas.bat
sqplus usuario/senha@instancia @inc_planos_fichas.sql
Importante, crie um usuário totalmente restrito, pois a senha estará exposta no bat.
25 de novembro de 2011 às 5:02 pm #101823felipeg
Participante@Rman
Qual a razão de não criar um schedule?
Atenciosamente,
Felipe.25 de novembro de 2011 às 5:06 pm #101825rman
Participante@felipeg
Pelo o q eu o @RomuloRDM disse, é necessário executar antes do relatório, desta forma não se sabe ante mão qual é o horário para agendamento, ou o schedule tem alguma solução para isso ? Por isso não sugeri o schedule.
25 de novembro de 2011 às 5:12 pm #101827felipeg
ParticipanteÉ, a idéia dele ficou meio confusa.
De que forma esse relatório é executado?
O código dele é customizável?Dependendo da forma como o relatório é chamadogerado nem o bat vai resolver (além de ser muita gambiarra).
Atenciosamente,
Felipe.25 de novembro de 2011 às 5:15 pm #101828rman
Participante@felipeg
É um workarround que pode comprometer toda a segurança, um usuário pode alterar os parâmetros da procedure, imagina o transtorno ?
Eu realmente não aplicaria esse workarround.
25 de novembro de 2011 às 9:04 pm #101841RomuloRDM
ParticipanteBoa tarde,
Muito obrigado pela dica, e seguindo todos os conselhos transformei o BAT em um EXE evitando que o usuario saiba a senha, agora só mais uma duvida, como posso automatizar a entrada de parametros quando se trata de datas, tenho uma outra chamada que usa a primeira data FIXA e o segundo parametro é a data de hoje -2 dias.
’01/04/2011′,’23/11/2011′.Mais uma vez obrigado pela dica, vou tomar os devidos cuidados.
Att.
RomuloRDM
25 de novembro de 2011 às 9:14 pm #101843felipeg
ParticipanteJá que ta usando executável da pra fazer de duas formas.
Pelo SO, pegando a váriavel de ambiente de data e diminuindo 2.
Ou pelo Oracle com sysdate-2.Você escolhe.
Atenciosamente,
Felipe.25 de novembro de 2011 às 9:16 pm #101844rman
Participante@RomuloRDM
Se a data é fixa remova o parâmetro, deixe fixo dentro da procedure, se a regra também é fixa, deixei fixo também dentro da procedure.
SYSDATE-2
Isso já resolve a regra fixa.
25 de novembro de 2011 às 9:23 pm #101845rman
Participante@RomuloRDM
A senha está protegido pelo exe, e o arquivo sql ? Vai deixar exposto ? Se deixar é um ponto de entrada no seu banco, permitindo que seja rodado comando arbitrários.
Como você gerou o exe ? Delphi ?
26 de novembro de 2011 às 11:35 pm #101867Rodrigo Almeida
ParticipanteSe o seu ambiente tem Grid Control, use a função MultiJobs, pois consegue definir através dele execução de jobs posteriores caso o job antecessor execute com sucesso.
Abraços,
-
AutorPosts
- Você deve fazer login para responder a este tópico.