Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
UVV Гость
|
Добавлено: Вт Янв 04 2005 18:38 Заголовок сообщения: Oracle sequences |
|
|
Подскажите, как пересоздать (сбросить) последовательность в Oracle каждый
Новый Год? |
|
Вернуться к началу |
|
 |
gkb Гость
|
Добавлено: Пт Янв 28 2005 20:19 Заголовок сообщения: |
|
|
drop sequence ...
create sequence ... |
|
Вернуться к началу |
|
 |
drmorgue
Зарегистрирован: 10.02.2005 Сообщения: 5
|
Добавлено: Чт Фев 10 2005 17:07 Заголовок сообщения: |
|
|
Идея - создаём джоб, который будет запускаться раз в год. Джоб будет запускать хранимую процедуру, которая средствами динамического SQL-а будет пересоздавать Вашу последовательность.
Процедура:
Код: |
create procedure my_job_proc
as
c_id number;
begin
c_id := dbms_sql.open_cursor;
dbms_sql.parse(cur_id, 'create sequence my_s start with 1',
dbms_sql.v7);
ret_val := dbms_sql.execute(cur_id);
dbms_sql.close_cursor(cur_id);
end;
|
Джоб:
Код: | declare
n_job number;
begin
dbms_job.submit(n_job, 'my_job_proc;', sysdate, 'sysdate+365');
dbms_output.put_line('job id: ' || n_job);
end;
/ |
PS: Может, есть какие синтаксические ошибки в коде - писал сразу, без проверок, но идея, думаю, будет ясна |
|
Вернуться к началу |
|
 |
drmorgue
Зарегистрирован: 10.02.2005 Сообщения: 5
|
Добавлено: Чт Фев 10 2005 17:09 Заголовок сообщения: |
|
|
ааа, забыл...
сначала надо сделать тем же динамическим SQL-ом 'drop sequence my_s' внутри процедуры my_job_proc, а потом только 'create sequence...' |
|
Вернуться к началу |
|
 |
gkb
Зарегистрирован: 03.02.2005 Сообщения: 4
|
Добавлено: Чт Фев 10 2005 19:25 Заголовок сообщения: |
|
|
и если oracle 9-й и старше вместо dbms_sql проще пользоваться execute immediate '<команда>' |
|
Вернуться к началу |
|
 |
|