powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / dbms_job.submit with parameters
25 сообщений из 37, страница 1 из 2
dbms_job.submit with parameters
    #39295858
Cydia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
что неправильно сделано?жоб не срабатывает, точнее в ошибку падает
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
declare
I Integer;
dd date:=sysdate;
 begin 
dbms_job.submit(i,'begin execute immediate '' 
insert
    into a values(:dd) using dd''; end;',
  sysdate);
 
commit;
 
end;
...
Рейтинг: 0 / 0
dbms_job.submit with parameters
    #39295859
Разве using - часть dml?
...
Рейтинг: 0 / 0
dbms_job.submit with parameters
    #39295861
Cydia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
execute immediate 'insert..' usi,
а так выдает ошибку. identifier 'DD' must be declared
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
declare
I Integer;
dd date:=sysdate;
 begin 
dbms_job.submit(i,'begin execute immediate '' 
insert
    into a values(:dd) ' 'using dd; end;',
  sysdate);
 
commit;
 
end;
...
Рейтинг: 0 / 0
dbms_job.submit with parameters
    #39295865
Cydia,

Ну дык ясное дело, откуда же ваш plsql блок знает о том, что такое dd?
Ваш джоб что вызывает, какой код?
вот этот:

Код: plsql
1.
2.
3.
4.
begin 
 execute immediate ''insert
  into a values(:dd) using dd''; 
end;


И совершенно он равнодушен к тому, что где-то там в какой-то там обертке есть такая же переменная объявленная. Такая же , а не эта
...
Рейтинг: 0 / 0
dbms_job.submit with parameters
    #39295867
Cydia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
declare.. begin execute immediat,

т.е. в жобе это никак не сделать?
...
Рейтинг: 0 / 0
dbms_job.submit with parameters
    #39295870
Cydia,

А что, в джоб нельзя передать plsql блок что ли? Или plsql блок всегда начинается c begin?
Вы сможете, я верю.
...
Рейтинг: 0 / 0
dbms_job.submit with parameters
    #39295872
...
Рейтинг: 0 / 0
dbms_job.submit with parameters
    #39295877
Cydia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dbms_job.submit(i, 'declare,

если бы смог, наверное, сюда не обращался))
...
Рейтинг: 0 / 0
dbms_job.submit with parameters
    #39295932
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
declare
  i integer;
begin
  dbms_job.submit(i,
                  'declare
  dd date := sysdate;
begin
  execute immediate '' insert
    into a values(:dd) ''
    using dd;
end;',
                  sysdate);
end;
...
Рейтинг: 0 / 0
dbms_job.submit with parameters
    #39295941
Cydia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МЧС РФ. Спасает,
а что если параметр передается в процедуру),т.е. не анонимный блок, а в процедуре как это сделать
...
Рейтинг: 0 / 0
dbms_job.submit with parameters
    #39295956
AnSi_Sr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cydiaа что если параметр передается в процедуру),т.е. не анонимный блок, а в процедуре как это сделать
Если процедура вызывается относительно редко и нет опасности забить разделяемый кеш своими "талантливыми" запросами, то можно использовать обычную подстановку значения через конкатенацию строк или вызов Replace.

P.S. Для даты выполнить явную конвертацию в строку по заданному формату перед подстановкой через to_char, при подстановке сделать обратное преобразование с тем же форматом через to_date.
...
Рейтинг: 0 / 0
dbms_job.submit with parameters
    #39295974
Cydia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AnSi_Sr,

а на примере показать сможете пжт.?
...
Рейтинг: 0 / 0
dbms_job.submit with parameters
    #39296002
Cydia,

Ну вот это вот:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
'declare
  dd date := sysdate;
begin
  execute immediate '' insert
    into a values(:dd) ''
    using dd;
end;'



это же тупо строка. Как replace к строке применить?
Если уж хочется сильно извратиться, что есть еще контекст, пакетные переменные и иже с ним, но это пушкой по воробьям микробам

У вас куча тем на более сложные темы или вы украли ник?
...
Рейтинг: 0 / 0
dbms_job.submit with parameters
    #39296023
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Replace or not replaceпакетные переменныеНу-ну.
...
Рейтинг: 0 / 0
dbms_job.submit with parameters
    #39296025
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Replace or not replaceУ вас куча тем на более сложные темыНе надо преувеличивать.
...
Рейтинг: 0 / 0
dbms_job.submit with parameters
    #39296031
K790
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cydia,

а зачем вообще весь этот геморрой? смешались в кучу кони, людиdsql, dml, job-ы...
...
Рейтинг: 0 / 0
dbms_job.submit with parameters
    #39296032
Му-му
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic,

Разве нет?
...
Рейтинг: 0 / 0
dbms_job.submit with parameters
    #39296052
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Му-муElic,

Разве нет?Сессия, поставившая задание в очередь, и сессия, его оттуда выдедернувшая на исполнение, - разные или нет?
...
Рейтинг: 0 / 0
dbms_job.submit with parameters
    #39296080
AnSi_Sr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Replace or not replaceэто же тупо строка. Как replace к строке применить?

как-то так:
Код: plsql
1.
2.
3.
4.
...
  -- vddate IN DATE procedure parameter;
  -- vnjob local variable, job id
  dbms_job.submit(vnjob, replace ('begin... values (to_date(:pddate, ...)); end;', ':pddate', to_char(vddate, ...)), ...);...
...
Рейтинг: 0 / 0
dbms_job.submit with parameters
    #39296081
Elic,

Туплю. Спасибо!
...
Рейтинг: 0 / 0
dbms_job.submit with parameters
    #39296181
dba123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cydia,

У Кайта было нечто подобное до AQ и DBMS_SCHEDULER:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
   sys.dbms_job.submit(l_job, 'bg_workhorse(job);');
   update/insert operations
   set id_oper = l_job;
   -- update operations
   -- set uk_job = l_job
   -- where id_oper = rec.id_oper
   commit;
 
   -- а уже bg_workhorse(job) может взять свою запись из таблицы операций
   -- (например: приоритет, процедуру для исполнения, параметры для неё и .т.д.)

   select * into l_rec from operations where uk_job = p_job;
...
Рейтинг: 0 / 0
dbms_job.submit with parameters
    #39296182
Cydia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
еще один вопрос, можно ли в джобе запускать джоб?
...
Рейтинг: 0 / 0
dbms_job.submit with parameters
    #39296192
arlx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cydia,

Конечно. А в нем еще и еще.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
create or replace procedure job_usr is
	-- recalc_task_return_seizure
	c_job_prefix varchar2(20) := 'USR_PREFIX_';
	c_job_owner  varchar2(3) := 'USR';
	l_job_name   varchar2(30);
	l_cnt_run    number;
	l_cnt_prm    number;
begin
for i in 1 .. 10 loop	
l_job_name := dbms_scheduler.generate_job_name(c_job_prefix);
	dbms_scheduler.create_job(job_name => c_job_owner || '.' || l_job_name, job_type => 'PLSQL_BLOCK',
job_action => 'begin job_usr; end;', start_date => null, repeat_interval => null, enabled => true, auto_drop => true);
end;
end loop;



Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
declare
  l_error exception;
  pragma exception_init(l_error, -27475);
begin
  begin
    sys.dbms_scheduler.drop_job(job_name => 'USR.JOB_USR');
  exception
    when l_error then
      null;
    when others then
      raise;
  end;
  sys.dbms_scheduler.create_job(job_name        => 'USR.JOB_USR', 
                                job_type        => 'PLSQL_BLOCK',
                                job_action      => 'begin job_usr; end;',
                                start_date      => to_date(null),
                                repeat_interval => 'Freq=Secondly;Interval=5',
                                end_date        => to_date(null),
                                job_class       => '"DEFAULT_JOB_CLASS"',
                                enabled         => true,
                                auto_drop       => false,
                                comments        => 'job usr');
end;
/
...
Рейтинг: 0 / 0
dbms_job.submit with parameters
    #39296194
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arlx, тему с начала читал?
...
Рейтинг: 0 / 0
dbms_job.submit with parameters
    #39296199
arlx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic,

) ответил на конкретный вопрос...
...
Рейтинг: 0 / 0
25 сообщений из 37, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / dbms_job.submit with parameters
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]