Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Пт Янв 16, 2015 13:42   |
|
Полезность: Нет оценки
|
Programmer пишет: | Damir пишет: | А что выдает оператор (под IBS надо запускать)
Код: | select SEQ_ID.nextval from dual |
|
NEXTVAL
-------
985402070
|
щас попытаемся переставить сиквенс в больщое значение
Код: | 999999014597930 = 1000000000000000 - 985402070 |
пробуй выполнить под IBS:
Код: | alter sequence SEQ_ID increment by 999999014597930 nocache; |
после этого проверь значение сиквенса - должно быть около 1 и 15 нулей
Код: | select SEQ_ID.nextval from dual |
|
|
|
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Пт Янв 16, 2015 13:45   |
|
Полезность: Нет оценки
|
а можно не париться и сразу такое запустить под IBS:
Код: | alter sequence SEQ_ID increment by 1000000000000000 nocache; |
PS: надеюсь, Вы это на рабочей базе запускать не будете |
|
|
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Пт Янв 16, 2015 14:42   |
|
Полезность: Нет оценки
|
Programmer пишет: | Damir пишет: | Молодец, есть прогресс.
А что выдает оператор (под IBS надо запускать)
Код: | select SEQ_ID.nextval from dual |
|
NEXTVAL
-------
985402070
|
Ну и что ж ты тянул-то целый месяц?
теперь выполни запрос:
Код: |
declare n number;
begin
select max(id) into n from objects;
if n > 985402070 then
execute immediate 'alter sequence SEQ_ID increment by '||n||' nocache';
select seq_id.nextval into n from dual;
execute immediate 'alter sequence SEQ_ID increment by 1 nocache';
else
dbms_output.put_line('Извини, проблема в чём -то ещё.');
end if;
end;
|
|
|
|
Programmer Участник - экстремал
Вступление в Клуб: 26.11.2014
|
Пт Янв 16, 2015 15:46   |
|
Полезность: Нет оценки
|
Random пишет: | Programmer пишет: | Damir пишет: | Молодец, есть прогресс.
А что выдает оператор (под IBS надо запускать)
Код: | select SEQ_ID.nextval from dual |
|
NEXTVAL
-------
985402070
|
Ну и что ж ты тянул-то целый месяц?
теперь выполни запрос:
Код: |
declare n number;
begin
select max(id) into n from objects;
if n > 985402070 then
execute immediate 'alter sequence SEQ_ID increment by '||n||' nocache';
select seq_id.nextval into n from dual;
execute immediate 'alter sequence SEQ_ID increment by 1 nocache';
else
dbms_output.put_line('Извини, проблема в чём -то ещё.');
end if;
end;
|
|
Ответ
Error starting at line 1 in command:
declare n number;
begin
select max(id) into n from objects;
if n > 985402070 then
execute immediate 'alter sequence SEQ_ID increment by '||n||' nocache';
select seq_id.nextval into n from dual;
execute immediate 'alter sequence SEQ_ID increment by 1 nocache';
else
dbms_output.put_line('Извини, проблема в чём -то ещё.');
end if;
end;
Error report:
ORA-06550: Строка 3, столбец 31:
PL/SQL: ORA-00942: таблица или представление пользователя не существует
ORA-06550: Строка 3, столбец 4:
PL/SQL: SQL Statement ignored
ORA-06550: Строка 6, столбец 14:
PL/SQL: ORA-02289: последовательность не существует
ORA-06550: Строка 6, столбец 7:
PL/SQL: SQL Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
на запрос
Код: |
select SEQ_ID.nextval from dual;
|
выводит
ORA-02289: последовательность не существует
02289. 00000 - "sequence does not exist"
*Cause: The specified sequence does not exist, or the user does
not have the required privilege to perform this operation.
*Action: Make sure the sequence name is correct, and that you have
the right to perform the desired operation on this sequence.
Error at Line: 1 Column: 7
|
|
|
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Пт Янв 16, 2015 20:19   |
|
Полезность: 2
|
Programmer пишет: |
на запрос
Код: |
select SEQ_ID.nextval from dual;
|
выводит
ORA-02289: последовательность не существует
02289. 00000 - "sequence does not exist"
*Cause: The specified sequence does not exist, or the user does
not have the required privilege to perform this operation.
*Action: Make sure the sequence name is correct, and that you have
the right to perform the desired operation on this sequence.
Error at Line: 1 Column: 7
|
Мы потеряли пациента, все наши усилия были напрасны.
А теперь серьездно, без шуток уже...
Programmer....
Вы топчетесь на месте.
повторно натыкаетесь на ошибки, которые уже были и которые Вы уже обходили. Из чего делаю вывод - понимания производимых действий у Вас нет.
Предлагаю попросить помощи у более опытных людей.
Подойдите к начальнику своему что-ли, попросите помочь.
Это будет лучше, чем впустую потраченное время - с нулевым результатом. |
|
|
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Пн Янв 19, 2015 06:03   |
|
Полезность: Нет оценки
|
Programmer пишет: | на запрос
Код: |
select SEQ_ID.nextval from dual;
|
выводит
ORA-02289: последовательность не существует
02289. 00000 - "sequence does not exist"
*Cause: The specified sequence does not exist, or the user does
not have the required privilege to perform this operation.
*Action: Make sure the sequence name is correct, and that you have
the right to perform the desired operation on this sequence.
Error at Line: 1 Column: 7
|
Откуда ж ты число-то получил? Вот это:
NEXTVAL
-------
985402070
Ей-ей, мне уже неинтересно. |
|
|
Amper Профи
Вступление в Клуб: 29.10.2010
|
Пн Янв 19, 2015 06:13   |
|
Полезность: Нет оценки
|
Удивляюсь вашему терпению |
|
|
Programmer Участник - экстремал
Вступление в Клуб: 26.11.2014
|
Пн Янв 19, 2015 07:25   |
|
Полезность: Нет оценки
|
Amper пишет: | Удивляюсь вашему терпению |
Так ребята да есть некоторое не даразумение. Так как по поводу обращаться к кому либо бесполезно, поэтому и пишу вам.
Теперь второй вопрос по поводу откуда взялось
NEXTVAL
-------
985402070
К сожалению я уже так запарился что уже сам запутался. У меня есть два сервера один со старыми данными прошлогодними. Это тестовый. Я холодными копиями делал на него раньше копирование и на тестовом сервере тренировались работники банка. И есть боевой. С котором приключилась вот эта вся фигня.
А она произошла следующим образом, не кто, но это не я ( и это без шуток ) взяла удалил файл users01.dbf. После этого было сделано востановление данных из дампа. Все вроде как заработало кроме вот этой проблемы. Теперь по существу вопроса
на запрос
select SEQ_ID.nextval from dual;
получаем ошибку
Error starting at line 1 in command:
select SEQ_ID.nextval from dual
Error at Command Line:1 Column:7
Error report:
SQL Error: ORA-02289: последовательность не существует
02289. 00000 - "sequence does not exist"
*Cause: The specified sequence does not exist, or the user does
not have the required privilege to perform this operation.
*Action: Make sure the sequence name is correct, and that you have
the right to perform the desired operation on this sequence.
Вот эти данные давайте еще раз подумаем ребята как и что можно решить на этот счет. |
|
|
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Пн Янв 19, 2015 08:17   |
|
Полезность: Нет оценки
|
Programmer пишет: |
.....
И есть боевой. С котором приключилась вот эта вся фигня.
А она произошла следующим образом, не кто, но это не я ( и это без шуток ) взяла удалил файл users01.dbf. После этого было сделано востановление данных из дампа. Все вроде как заработало кроме вот этой проблемы.
............
|
К начальнику обращаться не хочешь, значит...
В официальную поддержку ЦФТ (за деньги) - не?
Помощь профессионалов форума (за деньги) - тоже нет?
М... ну тогда подстрахуйся на всякий случай - поищи свободные вакансии.
PS: я НЕ из ЦФТ, восстанавливать порушенную базу не буду (нет квалификации) |
|
|
Programmer Участник - экстремал
Вступление в Клуб: 26.11.2014
|
Пн Янв 19, 2015 08:54   |
|
Полезность: Нет оценки
|
Все большое спасибо за участие в разрешении проблемы. Определил свои ошибки. запросы
select SEQ_ID.nextval from dual
отработали успешны
проблема была в коннектах я использовал sqlplus / as sysdba
зашел как sqlplus / as default
выполнил
alter sequence SEQ_ID increment by 1000000000000000 nocache;
и все удалось
Огромное всем спасибо! |
|
|
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Пн Янв 19, 2015 10:02   |
|
Полезность: Нет оценки
|
Programmer пишет: | Все большое спасибо за участие в разрешении проблемы. Определил свои ошибки. запросы
select SEQ_ID.nextval from dual
отработали успешны
проблема была в коннектах я использовал sqlplus / as sysdba
зашел как sqlplus / as default
выполнил
alter sequence SEQ_ID increment by 1000000000000000 nocache;
и все удалось
Огромное всем спасибо! |
Не забудь вернуть обратно
alter sequence SEQ_ID increment by 1 nocache;
после того, как сиквенс накрутишь.
А то получишь расход сиквенса бешенными темпами и выход за границы сиквенса.
После этого если тебе и помогут, то только за очень большие бабки. |
|
|
Programmer Участник - экстремал
Вступление в Клуб: 26.11.2014
|
Пн Янв 19, 2015 12:37   |
|
Полезность: Нет оценки
|
Да благодарю все получилось) |
|
|
|