Agendar Job pelo Forms

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
pyro
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 323
Registrado em: Qui, 21 Set 2006 10:21 am
Localização: Barala - TT

Tenho a necessidade de criar o agendamento de um Job ao clicar em um button do Forms.
Para começar criei o seguinte programa (usando o PL/SQL Developer):

Selecionar tudo

BEGIN
  dbms_scheduler.create_program(program_name        => 'PROG_JOB',
                                    program_type        => 'STORED_PROCEDURE',
                                    program_action      => meu_package.minha_procedure',
                                    number_of_arguments => 3,                                    
                                    enabled             => false,
                                    comments            => '');
  dbms_scheduler.define_program_argument(program_name        => 'PROG_JOB',
                                             argument_position   => 1,
                                             argument_name       => 'PARAM_1',
                                             argument_type       => 'NUMBER',
                                             default_value       => 1);
                                             
  dbms_scheduler.define_program_argument(program_name        => 'PROG_JOB',
                                             argument_position   => 2,
                                             argument_name       => 'PARAM_2',
                                             argument_type       => 'VARCHAR2',
                                             default_value       => '');
                                             
  dbms_scheduler.define_program_argument(program_name        => 'PROG_JOB',
                                             argument_position   => 3,
                                             argument_name       => 'PARAM_3',
                                             argument_type       => 'VARCHAR2',
                                             default_value       => '');
  dbms_scheduler.enable(name => 'PROG_JOB');
END;
Criou corretamente o programm, no Forms coloquei o seguinte código na ação do botão:

Selecionar tudo

dbms_scheduler.create_job('JOB_AGENDA', program_name => 'PROG_JOB');
dbms_scheduler.set_job_argument_value('JOB_AGENDA', 1, :bloco.controle);
dbms_scheduler.set_job_argument_value('JOB_AGENDA', 2, vr_busca);
dbms_scheduler.set_job_argument_value('JOB_AGENDA', 3, '');
dbms_scheduler.enable('JOB_AGENDA');
Quando tento compilar o Forms aparece a seguinte mensagem de erro:

Selecionar tudo

muitas declarações de 'set_job_argument_value' são compatíveis com esta chamada
Estou procurando mas não encontro uma forma de resolver este problema.
Alguém tem alguma dica?

Obrigado.
tora34
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 108
Registrado em: Qua, 12 Nov 2008 6:01 pm
Localização: Campo Mourão PR
Renato Pasquini
Oracle Developer

Bom dia,

alguns desses erros ocorre devido a a versão do PL/SQL do forms ser diferente do banco (PL/SQL DEVELOPER), por isto algumas funções/procedures funcionam no PL/SQL DEVELOPER e não funcionam no forms.
Sugiro criar uma Stored Procedure (package) e chama-la a partir do seu forms.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Majestic-12 [Bot] e 8 visitantes