<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL_Tutorial%2FSequences%2FValue</id>
		<title>Oracle PL/SQL Tutorial/Sequences/Value - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL_Tutorial%2FSequences%2FValue"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Sequences/Value&amp;action=history"/>
		<updated>2026-05-26T01:40:52Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Sequences/Value&amp;diff=3532&amp;oldid=prev</id>
		<title> в 13:45, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Sequences/Value&amp;diff=3532&amp;oldid=prev"/>
				<updated>2010-05-26T13:45:46Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 13:45, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Sequences/Value&amp;diff=3533&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Sequences/Value&amp;diff=3533&amp;oldid=prev"/>
				<updated>2010-05-26T10:06:36Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Automatically including unique sequence numbers during an INSERT.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create sequence mySeq start with 1000 increment by 1 cache 100;&lt;br /&gt;
Sequence created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table myTable (col1 number primary key);&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into myTable values (mySeq.nextval);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into myTable values (mySeq.nextval);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from myTable;&lt;br /&gt;
&lt;br /&gt;
      COL1&lt;br /&gt;
----------&lt;br /&gt;
      1000&lt;br /&gt;
      1001&lt;br /&gt;
2 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myTable;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop sequence mySeq;&lt;br /&gt;
Sequence dropped.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Get next value from sequence==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table emp(&lt;br /&gt;
  2           emp_id                integer         primary key&lt;br /&gt;
  3          ,lastname               varchar2(20)    not null&lt;br /&gt;
  4          ,firstname              varchar2(15)    not null&lt;br /&gt;
  5          ,midinit                varchar2(1)&lt;br /&gt;
  6          ,street                 varchar2(30)&lt;br /&gt;
  7          ,city                   varchar2(20)&lt;br /&gt;
  8          ,state                  varchar2(2)&lt;br /&gt;
  9          ,zip                    varchar2(5)&lt;br /&gt;
 10          ,shortZipCode                   varchar2(4)&lt;br /&gt;
 11          ,area_code              varchar2(3)&lt;br /&gt;
 12          ,phone                  varchar2(8)&lt;br /&gt;
 13          ,company_name           varchar2(50));&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create sequence s_emp_id&lt;br /&gt;
  2  start with 1000;&lt;br /&gt;
Sequence created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into emp (emp_id, lastname, firstname)&lt;br /&gt;
  2  values   (s_emp_id.nextval, &amp;quot;Einstein&amp;quot;, &amp;quot;Albert&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table emp;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop sequence s_emp_id;&lt;br /&gt;
Sequence dropped.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== If id is null, use the value from sequence==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table myTable(&lt;br /&gt;
  2      id           number primary key,&lt;br /&gt;
  3      blob_content blob&lt;br /&gt;
  4  )&lt;br /&gt;
  5  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create sequence myTable_seq&lt;br /&gt;
  2  /&lt;br /&gt;
Sequence created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create or replace trigger biu_myTable&lt;br /&gt;
  2      before insert or update on myTable&lt;br /&gt;
  3      for each row&lt;br /&gt;
  4  begin&lt;br /&gt;
  5      if :new.id is null then&lt;br /&gt;
  6          select myTable_seq.nextval into :new.id from dual;&lt;br /&gt;
  7      end if;&lt;br /&gt;
  8  end;&lt;br /&gt;
  9  /&lt;br /&gt;
Trigger created.&lt;br /&gt;
SQL&amp;gt; drop table myTable;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop sequence myTable_seq;&lt;br /&gt;
Sequence dropped.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Once initialized, you can get the current value from the sequence using currval.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE SEQUENCE test_seq;&lt;br /&gt;
Sequence created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT test_seq.nextval FROM dual;&lt;br /&gt;
   NEXTVAL&lt;br /&gt;
----------&lt;br /&gt;
         1&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT test_seq.currval FROM dual;&lt;br /&gt;
   CURRVAL&lt;br /&gt;
----------&lt;br /&gt;
         1&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop sequence test_seq&lt;br /&gt;
  2  /&lt;br /&gt;
Sequence dropped.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Query current sequence value==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create sequence deptno_seq start with 50 increment by 10;&lt;br /&gt;
Sequence created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select deptno_seq.currval&lt;br /&gt;
  2  from   dual;&lt;br /&gt;
select deptno_seq.currval&lt;br /&gt;
       *&lt;br /&gt;
ERROR at line 1:&lt;br /&gt;
ORA-08002: sequence DEPTNO_SEQ.CURRVAL is not yet defined in this session&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop sequence deptno_seq;&lt;br /&gt;
Sequence dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Random value based on sequence==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table emp (id number(6) );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; alter table emp modify id number(12);&lt;br /&gt;
Table altered.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create sequence cust_seq cache 1000&lt;br /&gt;
  2  start with 100000;&lt;br /&gt;
Sequence created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create or replace procedure gen_emp is&lt;br /&gt;
  2   v_new_cid emp.id%type;&lt;br /&gt;
  3  begin&lt;br /&gt;
  4   insert into emp values (cust_seq.nextval*100000+ round(dbms_random.value(100000,999999)));&lt;br /&gt;
  5  end;&lt;br /&gt;
  6  /&lt;br /&gt;
Procedure created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; begin&lt;br /&gt;
  2      for i in 1 .. 10000 loop&lt;br /&gt;
  3          gen_emp;&lt;br /&gt;
  4      end loop;&lt;br /&gt;
  5      commit;&lt;br /&gt;
  6  end;&lt;br /&gt;
  7  /&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop sequence cust_seq;&lt;br /&gt;
Sequence dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table emp;&lt;br /&gt;
Table dropped.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== select deptno_seq.currval, deptno_seq.nextval==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create sequence deptno_seq start with 50 increment by 10;&lt;br /&gt;
Sequence created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select deptno_seq.currval, deptno_seq.nextval&lt;br /&gt;
  2  from   dual;&lt;br /&gt;
   CURRVAL    NEXTVAL&lt;br /&gt;
---------- ----------&lt;br /&gt;
        50         50&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop sequence deptno_seq;&lt;br /&gt;
Sequence dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Set start value, mini/max value and cache==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE SEQUENCE test_seq&lt;br /&gt;
  2  START WITH 10 INCREMENT BY -1&lt;br /&gt;
  3  MINVALUE 1 MAXVALUE 10&lt;br /&gt;
  4  CYCLE CACHE 5;&lt;br /&gt;
Sequence created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from user_sequences where sequence_name=&amp;quot;TEST_SEQ&amp;quot;;&lt;br /&gt;
SEQUENCE_NAME                   MIN_VALUE  MAX_VALUE INCREMENT_BY C O CACHE_SIZE LAST_NUMBER&lt;br /&gt;
------------------------------ ---------- ---------- ------------ - - ---------- -----------&lt;br /&gt;
TEST_SEQ                                1         10           -1 Y N          5          10&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop sequence test_seq&lt;br /&gt;
  2  /&lt;br /&gt;
Sequence dropped.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Use dual table to check sequence==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create sequence deptno_seq&lt;br /&gt;
  2  start with 50 increment by 10;&lt;br /&gt;
Sequence created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select deptno_seq.nextval, deptno_seq.currval&lt;br /&gt;
  2  from   dual;&lt;br /&gt;
   NEXTVAL    CURRVAL&lt;br /&gt;
---------- ----------&lt;br /&gt;
        50         50&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select deptno_seq.currval&lt;br /&gt;
  2  from   dual;&lt;br /&gt;
   CURRVAL&lt;br /&gt;
----------&lt;br /&gt;
        50&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select deptno_seq.currval, deptno_seq.nextval&lt;br /&gt;
  2  from   dual;&lt;br /&gt;
   CURRVAL    NEXTVAL&lt;br /&gt;
---------- ----------&lt;br /&gt;
        60         60&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop sequence deptno_seq;&lt;br /&gt;
Sequence dropped.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== When you select currval , nextval remains unchanged; nextval only changes when you select nextval to get the next value.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE SEQUENCE test_seq;&lt;br /&gt;
Sequence created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT test_seq.nextval FROM dual;&lt;br /&gt;
   NEXTVAL&lt;br /&gt;
----------&lt;br /&gt;
         1&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT test_seq.nextval, test_seq.currval FROM dual;&lt;br /&gt;
   NEXTVAL    CURRVAL&lt;br /&gt;
---------- ----------&lt;br /&gt;
         2          2&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT test_seq.nextval, test_seq.currval FROM dual;&lt;br /&gt;
   NEXTVAL    CURRVAL&lt;br /&gt;
---------- ----------&lt;br /&gt;
         3          3&lt;br /&gt;
SQL&amp;gt; SELECT test_seq.nextval, test_seq.currval FROM dual;&lt;br /&gt;
   NEXTVAL    CURRVAL&lt;br /&gt;
---------- ----------&lt;br /&gt;
         4          4&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT test_seq.nextval, test_seq.currval FROM dual;&lt;br /&gt;
   NEXTVAL    CURRVAL&lt;br /&gt;
---------- ----------&lt;br /&gt;
         5          5&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT test_seq.nextval, test_seq.currval FROM dual;&lt;br /&gt;
   NEXTVAL    CURRVAL&lt;br /&gt;
---------- ----------&lt;br /&gt;
         6          6&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT test_seq.nextval, test_seq.currval FROM dual;&lt;br /&gt;
   NEXTVAL    CURRVAL&lt;br /&gt;
---------- ----------&lt;br /&gt;
         7          7&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop sequence test_seq&lt;br /&gt;
  2  /&lt;br /&gt;
Sequence dropped.&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>