Create Sequence _ Oracle Database 12c

Create Sequence _ Oracle Database 12c
  • 1
    Mar

Create Sequence _ Oracle Database 12c

twittergoogle_pluslinkedin

Database dalla versione Oracle Database 12cR1
Creazione di un oggetto sequence con l’opzione sessione oppure global

Quando la numerazione di una sequenza è generate, la sequence incrementa (in senso assoluto) il suo ultimo valore indipendentemente dal fatto che la transazione venga confermata (commit) oppure annullata (rollback).

L’opzione di sessione offre l’opportunità di creare una sequence utilizzata in associazione ad una tabella di tipo global temporary, in questo caso il suo valore è visibile solo sulla sessione.
La seguenti opzioni CACHE, NOCACHE, ORDER, o NOORDER non possono essere usate se la sequence è di stata create con l’opzione session.
1) Script, crea una tabella di tipo global e una sequence con l’opzione sessione.
SQL> CREATE GLOBAL TEMPORARY TABLE glb_tmp_table (a number);

Table created.

SQL> CREATE SEQUENCE sq_sess SESSION;

Sequence created.

2) Esecuzione dello script
SQL> INSERT INTO glb_tmp_table VALUES (sq_sess.NEXTVAL);

1 row created.

SQL> INSERT INTO glb_tmp_table VALUES (sq_sess.NEXTVAL);

1 row created.

SQL> SELECT * FROM glb_tmp_table;

A
———-
1
2

3) Far girare lo script in un’altra sessione permette di rendersi conto che il suo valore iniziale è 1
SQL> INSERT INTO glb_tmp_table VALUES (sq_sess.NEXTVAL);

1 row created.

SQL> INSERT INTO glb_tmp_table VALUES (sq_sess.NEXTVAL);

1 row created.

SQL> SELECT * FROM glb_tmp_table;

A
———-
1
2

Creazione con l’opzione Global, o sequence di base, regolare. Questo è il default.
Qui di seguito la sequence precedentemente create viene sottoposta a cambio di optizione, da session a global.
Here we are going to alter existing sequence to be a regular (“global”) sequence;
alter sequence sq_sess GLOBAL;
oppure creare una nuova sequence:
CREATE SEQUENCE number_seq
START WITH 10
INCREMENT BY 1
NOCACHE
NOCYCLE
GLOBAL ;
Approfondimento:
Sito Area Etica: GLOBAL TEMPORARY TABLE

Global Temporary Table

Sito Oracle
https://docs.oracle.com/database/121/SQLRF/statements_6017.htm#SQLRF01314