powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проблема с Seq.currval
23 сообщений из 73, страница 3 из 3
Проблема с Seq.currval
    #33063219
kosiak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax.ORA-00942:
Самое простое
1 выдать права на таблицу явно , а не перез роль
2 поробовать с правами вызывающего (authid CURRENT_USER)

с правами проблем нет , да и прямые запросы проходят (статические) , а вот динамические нивкакую :(
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Проблема с Seq.currval
    #37559306
TAnton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как думаете, нормально так сделать:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
DECLARE TMPVAL INTEGER;
BEGIN
  SELECT MYSEQ.CURRVAL
  INTO TMPVAL
  FROM DUAL;
  
  EXCEPTION
    WHEN OTHERS THEN
      SELECT MYSEQ.NEXTVAL
      INTO TMPVAL
      FROM DUAL;
 
END;
...
Рейтинг: 0 / 0
Проблема с Seq.currval
    #37559318
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как думаеш какую ошибку тебе может дать
Код: plaintext
1.
2.
3.
SELECT MYSEQ.CURRVAL
  INTO TMPVAL
  FROM DUAL;


что понадобится взять следующее?)
...
Рейтинг: 0 / 0
Проблема с Seq.currval
    #37559377
TAnton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vint,
Как раз ту, про которую тема: последов. MYSEQ.CURRVAL еще не определен в этом сеансе.
...
Рейтинг: 0 / 0
Проблема с Seq.currval
    #37559389
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда почему others вместо 08002?
...
Рейтинг: 0 / 0
Проблема с Seq.currval
    #37559399
TAnton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vint,
ок, поставлю 08002. Нормально будет?
...
Рейтинг: 0 / 0
Проблема с Seq.currval
    #37559406
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну, если ожидаемое поведение именно такое, почему бы нет?
...
Рейтинг: 0 / 0
Проблема с Seq.currval
    #37560331
alex-ls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TAntonVint,
Как раз ту, про которую тема: последов. MYSEQ.CURRVAL еще не определен в этом сеансе.
это динамический SQL?
...
Рейтинг: 0 / 0
Проблема с Seq.currval
    #37560368
TAnton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нет, такая особенность алгоритма, под новое значение выдать новый ID, если значение не изменилось (определяю функцией LED), то старое значение. По алгоритму в первом элементе набора данных всегда генерится новое значение. А оракл этого не понимает и выдает ошибку
...
Рейтинг: 0 / 0
Проблема с Seq.currval
    #37560373
alex-ls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TAntonнет, такая особенность алгоритма...
если это не динамический SQL, то еще на этапе компиляции Вы получите ошибку.
...
Рейтинг: 0 / 0
Проблема с Seq.currval
    #37561210
stepmich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Проблема с Seq.currval
    #37561212
stepmich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
waspwort,
...
Рейтинг: 0 / 0
Проблема с Seq.currval
    #37561252
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex-lsTAntonнет, такая особенность алгоритма...
если это не динамический SQL, то еще на этапе компиляции Вы получите ошибку.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
  1  DECLARE TMPVAL INTEGER;
  2  BEGIN
  3    TMPVAL:= S.CURRVAL;
  4    dbms_output.put_line('CURRVAL '||  S.CURRVAL);
  5    EXCEPTION
  6      WHEN OTHERS THEN
  7        TMPVAL:=S.NEXTVAL;
  8      dbms_output.put_line('NEXTVAL '||  S.CURRVAL);
  9* END;
 10  /
NEXTVAL 160

PL/SQL procedure successfully completed.

SQL> /
CURRVAL 160

PL/SQL procedure successfully completed.

SQL>
...
Рейтинг: 0 / 0
Проблема с Seq.currval
    #37562226
alex-ls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да этот вариант (анонимный блок) я пропустил в своей голове :) хотя он был и написан явно
...
Рейтинг: 0 / 0
Проблема с Seq.currval
    #37562227
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ога, именно анонимный блок
...
Рейтинг: 0 / 0
Проблема с Seq.currval
    #37563415
ыефчююю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав ЛюбомудровОга, именно анонимный блок
ничого не понимаю

блин, перепразднував я День армії, а еще і Катерины

Код: 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.
  1  create or replace procedure stax_test_currval is
  2  TMPVAL INTEGER;
  3   BEGIN
  4     TMPVAL:= S.CURRVAL;
  5     dbms_output.put_line('CURRVAL '||  S.CURRVAL);
  6     EXCEPTION
  7        WHEN OTHERS THEN
  8          TMPVAL:=S.NEXTVAL;
  9        dbms_output.put_line('NEXTVAL '||  S.CURRVAL);
 10* END;
SQL> /

Procedure created.

SQL> set serveroutput on
SQL> exec stax_test_currval;
NEXTVAL 180

PL/SQL procedure successfully completed.

SQL> exec stax_test_currval;
CURRVAL 180

PL/SQL procedure successfully completed.




ps


.....
stax
...
Рейтинг: 0 / 0
Проблема с Seq.currval
    #37564260
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Че тут не понятного
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
t11> create sequence s;

Sequence created.

t11> declare r number;
  2  begin r:=s.nextval;
  3  end;
  4  /

PL/SQL procedure successfully completed.

t11> drop sequence s;

Sequence dropped.

t11> select * from v$version where rownum=1;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

Код: 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.
tst> create sequence s;

Sequence created.

tst> declare r number;
  2  begin r:=s.nextval;
  3  end;
  4  /
begin r:=s.nextval;
           *
ERROR at line 2:
ORA-06550: line 2, column 12:
PLS-00357: Table,View Or Sequence reference 'S.NEXTVAL' not allowed in this context
ORA-06550: line 2, column 7:
PL/SQL: Statement ignored


tst> drop sequence s;

Sequence dropped.

tst> select * from v$version where rownum=1;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi

PS. Что-то сдается это не настоящий stax, а кто-то под него косит
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Проблема с Seq.currval
    #39503921
KiAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые, не подскажете, почему при выполнении следующего скрипта значение Next Value не изменяется?
set serveroutput on;
begin
for seq in
(select sequence_name from user_sequences)
loop
execute immediate 'select '||seq.sequence_name||'.nextval from dual';
dbms_output.put_line(seq.sequence_name);
end loop;
end;
/
...
Рейтинг: 0 / 0
Проблема с Seq.currval
    #39503925
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KiAV,

У которой из перебираемых последовательностей оно должно измениться?
...
Рейтинг: 0 / 0
Проблема с Seq.currval
    #39503934
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KiAV,

как смотрите шо не изменилось?

ps
cache виновник

.....
stax
...
Рейтинг: 0 / 0
Проблема с Seq.currval
    #39503939
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KiAV,


execute immediate 'select '||seq.sequence_name||'.nextval from dual' into v_next ;

....
stax
...
Рейтинг: 0 / 0
Проблема с Seq.currval
    #39503944
KiAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь, разобрался сам, помогло добавление into.
set serveroutput on;
declare
val number;
begin
for seq in
(select sequence_name from user_sequences)
loop
execute immediate 'select '||seq.sequence_name||'.nextval from dual' into val;
dbms_output.put_line(seq.sequence_name||' '||val);
end loop;
end;
/
...
Рейтинг: 0 / 0
Проблема с Seq.currval
    #39503948
KiAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, Stax!
...
Рейтинг: 0 / 0
23 сообщений из 73, страница 3 из 3
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проблема с Seq.currval
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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