データ・ディクショナリ

Oracle シーケンス一覧

DBA_SEQUENCES

dba_sequencesを参照する事でシーケンス一覧を出力できます。

シーケンス一覧出力SQL
select s.SEQUENCE_OWNER,s.SEQUENCE_NAME,s.MIN_VALUE,s.MAX_VALUE,s.INCREMENT_BY
,s.CYCLE_FLAG,s.CACHE_SIZE,s.LAST_NUMBER 
from dba_sequences s inner join dba_users u on s.SEQUENCE_OWNER = u.USERNAME
and u.COMMON = 'NO'
where u.USERNAME != 'SOONI'
;
シーケンス一覧出力例
SEQUENCE_O SEQUENCE_NAME     MIN_VALUE                      MAX_VALUE INCREMENT_BY CY CACHE_SIZE LAST_NUMBER
---------- ---------------- ---------- ------------------------------ ------------ -- ---------- -----------
SOONI      ISEQ$$_100061             1             999999999999999999            1 N         100          10
SOONI      ISEQ$$_100517             1   9999999999999999999999999999            1 N        1000  1052199995
SOONI      ISEQ$$_103785             1   9999999999999999999999999999            1 N          20  1000000000
SOONI      ISEQ$$_103836             1             999999999999999999            1 N         100           1
SOONI      ISEQ$$_106464             1   9999999999999999999999999999            1 N          20  1000600020
SOONI      ISEQ$$_110793             1   9999999999999999999999999999            1 N          20  1000869994
SOONI      ISEQ$$_110833             1   9999999999999999999999999999            1 N          20  1000000000
SOONI      ISEQ$$_113897             1   9999999999999999999999999999            1 N          20  1000000020
SOONI      ISEQ$$_99668              1   9999999999999999999999999999            1 N          20           1
SOONI      SEQ01                     1                       99999999            1 Y          20         999
SOONI      SEQ15                     1   9999999999999999999999999999            1 N       10000     1740001
SOONI      TESTSEQ01                 1   9999999999999999999999999999            1 N         100     2001001
DABADA     SEQ_EVENT_ID              0                     9999999999            1 Y          30        7122

13行が選択されました。

SQL>

参考までにですが、上記一覧でISEQ$$_XXXXXXという名前のシーケンスがありますが、これは12c以降に実装された「カラム値の自動採番」機能を使う事でOracleが自動で作成したシーケンスとなりますがこれはDBA_TAB_IDENTITY_COLSを参照する事で確認できます。

自動採番機能で作成されたシーケンスを確認するSQL
select c.OWNER,c.TABLE_NAME,c.COLUMN_NAME,c.SEQUENCE_NAME,c.GENERATION_TYPE 
from DBA_TAB_IDENTITY_COLS c
order by c.OWNER,c.SEQUENCE_NAME
;
確認例

どのテーブルのどのカラムに紐付いているのか確認できます。

OWNER      TABLE_NAME       COLUMN_NAME      SEQUENCE_NAME        GENERATION_TYP
---------- ---------------- ---------------- -------------------- --------------
SOONI      EX01             SID              ISEQ$$_100061        BY DEFAULT
SOONI      TBL30            AUTO_ID          ISEQ$$_100517        BY DEFAULT
SOONI      TBL266           AUTO_ID          ISEQ$$_103785        BY DEFAULT
SOONI      EX901            SID              ISEQ$$_103836        BY DEFAULT
SOONI      TBL37            AUTO_ID          ISEQ$$_106464        BY DEFAULT
SOONI      TBL26            AUTO_ID          ISEQ$$_110793        BY DEFAULT
SOONI      EX300            AUTO_ID          ISEQ$$_110833        BY DEFAULT
SOONI      EX200            AUTO_ID          ISEQ$$_113897        BY DEFAULT
SOONI      EX011            SID              ISEQ$$_99668         BY DEFAULT

9行が選択されました。

SQL>
SQL*Plus用
set lin 300
COLUMN SEQUENCE_OWNER FORMAT A10
COLUMN SEQUENCE_NAME FORMAT A16
COLUMN SEQUENCE_NAME FORMAT A16
COLUMN MAX_VALUE FORMAT 99999999999999999999999999990
COLUMN OWNER FORMAT A10
COLUMN TABLE_NAME FORMAT A16
COLUMN COLUMN_NAME FORMAT A16
COLUMN SEQUENCE_NAME FORMAT A20
COLUMN GENERATION_TYPE FORMAT A14

シーケンス操作

スポンサーリンク
タイトルとURLをコピーしました