powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / помогите с execute immediate ''update
3 сообщений из 3, страница 1 из 1
помогите с execute immediate ''update
    #40007373
alex7ev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
привет

я создал столбец со следующим кодом:

declare
jj integer := 666666; -- job number
begin
sys.dbms_ijob.submit(
JOB => jj,
LUSER => 'SYS', PUSER => 'SYS', CUSER => 'SYS',
NEXT_DATE => sysdate, INTERVAL => null, BROKEN => false,
WHAT => '
declare
jj integer := '||jj||';
begin
execute immediate ''ALTER TABLE TAB.ONE ADD COL6 VARCHAR2(10)'';
sys.dbms_ijob.remove(jj);
delete from sys.aud$ where obj$name = ''DBMS_IJOB'';
commit;
end;',
NLSENV => 'NLS_LANGUAGE="AMERICAN" NLS_TERRITORY="AMERICA"
NLS_CURRENCY="$" NLS_ISO_CURRENCY="AMERICA" NLS_NUMERIC_CHARACTERS=".,"
NLS_DATE_FORMAT="DD-MON-RR" NLS_DATE_LANGUAGE="AMERICAN"
NLS_SORT="BINARY"',
ENV => hextoraw('0102000200000000'));
sys.dbms_ijob.run(jj);
exception when others then
if sqlcode=-12011 then
sys.dbms_ijob.remove(jj);
end if;
raise;
end;
/

Как я могу использовать тот же код выше, чтобы ''UPDATE TAB.ONE SET NO=12345 WHERE ID=QD_DE'' успешно без того, чтобы он застрял в таблице DBA_JOBS.

Спасибо Вам за вашу помощь.
...
Рейтинг: 0 / 0
помогите с execute immediate ''update
    #40007386
Synoptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давай зайдём с другой стороны, какую задачу мы решаем? Т.е. что именно нужно сделать?
(Ответ "модифицировать код выше" не верный)
...
Рейтинг: 0 / 0
помогите с execute immediate ''update
    #40007391
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex7ev
привет

я создал столбец со следующим кодом:

Код: 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.
25.
26.
27.
28.
29.
declare 
jj integer := 666666; -- job number
begin
sys.dbms_ijob.submit( 
JOB => jj, 
LUSER => 'SYS', PUSER => 'SYS', CUSER => 'SYS', 
NEXT_DATE => sysdate, INTERVAL => null, BROKEN => false, 
WHAT => '  
declare
jj integer := '||jj||'; 
begin
execute immediate ''ALTER TABLE TAB.ONE ADD COL6 VARCHAR2(10)''; 
sys.dbms_ijob.remove(jj); 
delete from sys.aud$ where obj$name = ''DBMS_IJOB''; 
commit; 
end;', 
NLSENV => 'NLS_LANGUAGE="AMERICAN" NLS_TERRITORY="AMERICA" 
NLS_CURRENCY="$" NLS_ISO_CURRENCY="AMERICA" NLS_NUMERIC_CHARACTERS=".," 
NLS_DATE_FORMAT="DD-MON-RR" NLS_DATE_LANGUAGE="AMERICAN" 
NLS_SORT="BINARY"', 
ENV => hextoraw('0102000200000000')); 
sys.dbms_ijob.run(jj); 
exception when others then 
if sqlcode=-12011 then
sys.dbms_ijob.remove(jj); 
end if; 
raise; 
end; 
/



Как я могу использовать тот же код выше, чтобы ''UPDATE TAB.ONE SET NO=12345 WHERE ID=QD_DE'' успешно без того, чтобы он застрял в таблице DBA_JOBS.

Спасибо Вам за вашу помощь.


Однако утро

1)
> я создал столбец со следующим кодом:
...
(я понял что хотел сказать, но лучше перечитывать сообщение перед отправкой)

2) Почему пользуетесь недокументированной функцией
sys.dbms_ijob.remove, тем более она предназначена не для этого, вы не используете ее по назначению.

3) Новорег, работа из-под SYS, явные операции с SYS.AUD$, (похоже на попытку замести следы), да и update в этом контексте наводит мысли на нехорошее

4) Нет ни версий, ни оформления


Решайте сами помогать или нет, я воздержусь
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / помогите с execute immediate ''update
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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