Table des matières
1. Introduction aux séquences
2. Créer une séquence
3. Requête de séquence
4. Utilisez la séquence
NEXTVAL et les pseudo-colonnes CURRVAL
5. Modifier la séquence
6. Supprimer la séquence
7. Créer une séquence à incrémentation automatique
Maison base de données Oracle Analyse de séquence Oracle SEQUENCE

Analyse de séquence Oracle SEQUENCE

Jul 28, 2022 pm 03:49 PM
oracle

Cet article vous apporte des connaissances pertinentes sur Oracle et explique en détail la séquence SEQUENCE dans Oracle. L'article la présente en détail à travers un exemple de code. Il a une certaine valeur de référence pour les études ou le travail de chacun, et j'espère qu'il sera utile à tout le monde.

Analyse de séquence Oracle SEQUENCE

Tutoriel recommandé : "Tutoriel vidéo Oracle"

1. Introduction aux séquences

La séquence d'Oracle est un objet de base de données dont la fonction principale est de générer des valeurs uniques. Une fois la séquence créée, l'objet séquence peut être trouvé via le dictionnaire de données, de sorte que la séquence peut être partagée par plusieurs objets.

2. Créer une séquence

La séquence est créée en utilisant la syntaxe CREATE SEQUENCE :

CREATE SEQUENCE sequence 
[INCREMENT BY n]
 [START WITH n]
 [{MAXVALUE n | NOMAXVALUE}]
 [{MINVALUE n | NOMINVALUE}]
 [{CYCLE | NOCYCLE}]
 [{CACHE n | NOCACHE}];
Copier après la connexion
  • NCREMENT BY : utilisée pour définir la taille du pas de la séquence. Si elle est omise, la valeur par défaut est 1. S'il s'agit d'une valeur négative. , la valeur représentant la séquence est Décroissante.
  • START WITH : Définit la valeur initiale de la séquence (c'est-à-dire la première valeur générée), la valeur par défaut est 1.
  • MAXVALUE : Définit la valeur maximale que la séquence peut générer. NOMAXVALUE est l'option par défaut, ce qui signifie qu'il n'y a pas de valeur maximale à ce stade, pour la séquence croissante, la valeur maximale que le système peut générer est de 10 à la puissance 27 pour la séquence décroissante, la valeur maximale est de -1 ;
  • MINVALUE : Définissez la valeur minimale que la séquence peut générer. NOMINVALUE est l'option par défaut, ce qui signifie qu'il n'y a pas de valeur minimale à l'heure actuelle, pour la séquence décroissante, la valeur minimale que le système peut générer est moins 10 à la puissance 26 pour la séquence décroissante, la valeur minimale est 1.
  • CYCLE et NOCYCLE : Indiquez s'il faut boucler lorsque la valeur du générateur de séquence atteint la limite. En boucle, lorsque la séquence croissante atteint la valeur maximale, elle boucle jusqu'à la valeur minimale ; pour la séquence descendante, lorsqu'elle atteint la valeur minimale, elle boucle jusqu'à la valeur maximale. Si vous ne bouclez pas, après avoir atteint la valeur limite, une erreur se produira si vous continuez à générer de nouvelles valeurs.
  • CACHE : Définit la taille du bloc mémoire pour stocker la séquence, la valeur par défaut est 20. NOCACHE signifie aucune mise en mémoire tampon de la séquence. La mise en mémoire tampon des séquences peut améliorer les performances des séquences.

Par exemple :

CREATE SEQUENCE invoice_seq
INCREMENT BY 1
START WITH 1
MAXVALUE 9999999
NOCYCLE NOCACHE;
Copier après la connexion

3. Requête de séquence

Une fois la séquence créée, le code de création de séquence est textualisé dans le dictionnaire de données et peut être vu dans le dictionnaire de données user_objects, tel que :

SELECT object_name,object_id,object_type  FROM user_objects WHERE object_name = 'INVOICE_SEQ';
Copier après la connexion

Dans le user_sequences table Détails de la séquence enregistrée :

SELECT sequence_name, min_value, max_value, increment_by, last_number  FROM user_sequences;
Copier après la connexion

4. Utilisez la séquence

NEXTVAL et les pseudo-colonnes CURRVAL

  • NEXTVAL : renvoie la prochaine valeur de séquence disponible. Elle renvoie une valeur référencée unique à chaque fois, en fait pour différents utilisateurs de cette manière. Lors de l'utilisation de séquence.NEXTVAL, un nouveau numéro de séquence est généré et le numéro de séquence actuel est placé dans CURRVAL.
  • CURRVAL : Obtenez la valeur de séquence actuelle. Si vous utilisez CURRVAL avant d'utiliser NEXTVAL pour la première fois, une erreur sera signalée.

Utilisé comme suit :

SELECT invoice_seq.CURRVAL,invoice_seq.NEXTVAL FROM DUAL;

INSERT INTO invoice  (invoice_id, vendor_id, invoice_number, invoice_total  )
      VALUES (invoice_seq.NEXTVAL, 10, 'INV' || invoice_seq.CURRVAL, 100  );
Copier après la connexion

NEXTVAL et CURRVAL peuvent être utilisés dans le contexte suivant :

  • La liste de champs d'une instruction SELECT qui ne fait pas partie d'une sous-requête.
  • SELECT liste de sous-requêtes dans l'instruction INSERT.
  • Clause VALUES dans l'instruction INSERT.
  • Clause SET dans l'instruction UPDATE.

NEXTVAL et CURRVAL ne peuvent pas être utilisés dans le contexte suivant :

  • SELECT liste d'une vue.
  • Instruction SELECT avec DISTINCT.
  • Instruction SELECT avec la clause GROUP BY, HAVING ou ORDER BY.
  • Clauses dans les instructions SELECT, DELETE ou UPDATE.
  • Expression DEFAULT dans l'instruction CREATE TABLE ou ALTER TABLE.

Notez également que ROLLBACK ne restaure pas la valeur de la séquence.

5. Modifier la séquence

Par exemple :

ALTER SEQUENCE invoice_seq     INCREMENT BY 2 MAXVALUE 10   NOCACHE  NOCYCLE;
Copier après la connexion

Lors de la modification de la séquence, il existe les restrictions suivantes :

  • La valeur de départ de la séquence ne peut pas être répertoriée.
  • La valeur minimale ne peut pas être supérieure à la valeur actuelle.
  • La valeur maximale ne peut pas être inférieure à la valeur actuelle.
  • Les règles de séquence modifiées n'affecteront pas les valeurs de séquence précédentes, seules les valeurs de séquence futures seront affectées.
  • L'utilisateur doit disposer de l'autorisation ALTER SEQUENCE.

6. Supprimer la séquence

DROP SEQUENCE invoice_seq;
Copier après la connexion

7. Créer une séquence à incrémentation automatique

1 Créer une séquence

create sequence sq_recid 
minvalue 1 maxvalue 999999  increment by 1   start with 1 noCYCLE;
Copier après la connexion

2 Créer un déclencheur

create or replace trigger  trg_test
  before  insert on test for each row
begin
  select sq_recid.nextval into :new.ID from dual;
end;

alter  trigger trg_test  enable;
Copier après la connexion

3. En C#, vous pouvez également insérer manuellement une séquence dans la table.

string sql="insert into test(ID,otherCol)value (Sql_recid.nextval,***)
    retuing ID into :ID"
Copier après la connexion

Tutoriel recommandé : "Tutoriel vidéo Oracle"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment vérifier la taille de l'espace de table d'Oracle Comment vérifier la taille de l'espace de table d'Oracle Apr 11, 2025 pm 08:15 PM

Pour interroger la taille de l'espace de table Oracle, suivez les étapes suivantes: Déterminez le nom de l'espace de table en exécutant la requête: sélectionnez Tablespace_name dans dba_tablespaces; Requête la taille de l'espace de table en exécutant la requête: sélectionnez SUM (Bytes) comme total_size, sum (bytes_free) comme disponible_space, sum (bytes) - sum (bytes_free) comme used_space à partir de dba_data_files où tablespace_

Comment crypter Oracle View Comment crypter Oracle View Apr 11, 2025 pm 08:30 PM

Oracle View Encryption vous permet de crypter les données dans la vue, améliorant ainsi la sécurité des informations sensibles. Les étapes incluent: 1) la création de la clé de cryptage maître (MEK); 2) Création d'une vue cryptée, spécifiant la vue et MEK à crypter; 3) Autoriser les utilisateurs à accéder à la vue cryptée. Comment fonctionnent les vues cryptées: lorsqu'un utilisateur interroge pour une vue cryptée, Oracle utilise MEK pour décrypter les données, garantissant que seuls les utilisateurs autorisés peuvent accéder aux données lisibles.

Comment afficher le nom d'instance d'Oracle Comment afficher le nom d'instance d'Oracle Apr 11, 2025 pm 08:18 PM

Il existe trois façons d'afficher les noms d'instance dans Oracle: utilisez le "SQLPlus" et "SELECT INSTRESS_NAME FROM V $ INSTERNE;" Commandes sur la ligne de commande. Utilisez "Show instance_name;" Commande dans SQL * Plus. Vérifiez les variables d'environnement (Oracle_sid sur Linux) via le gestionnaire de tâches du système d'exploitation, Oracle Enterprise Manager ou via le système d'exploitation.

Comment désinstaller l'installation d'Oracle a échoué Comment désinstaller l'installation d'Oracle a échoué Apr 11, 2025 pm 08:24 PM

Désinstaller la méthode pour la défaillance de l'installation d'Oracle: Fermez le service Oracle, supprimez les fichiers du programme Oracle et les clés de registre, désinstallez les variables d'environnement Oracle et redémarrez l'ordinateur. Si la désinstallation échoue, vous pouvez désinstaller manuellement à l'aide de l'outil Oracle Universal Disinstal.

Comment obtenir du temps dans Oracle Comment obtenir du temps dans Oracle Apr 11, 2025 pm 08:09 PM

Il existe les méthodes suivantes pour obtenir du temps dans Oracle: current_timestamp: renvoie le temps du système actuel, précis en secondes. Systimestamp: plus précis que current_timestamp, aux nanosecondes. Sysdate: renvoie la date du système actuelle, à l'exclusion de la partie d'heure. To_char (sysdate, 'yyy-mm-dd hh24: mi: ss'): convertit la date et l'heure du système actuels en format spécifique. Extrait: extrait une partie spécifique d'une valeur temporelle, comme un an, un mois ou une heure.

Comment importer une base de données Oracle Comment importer une base de données Oracle Apr 11, 2025 pm 08:06 PM

Méthode d'importation de données: 1. Utilisez l'utilitaire SqlLoader: Préparez les fichiers de données, créez des fichiers de contrôle et exécutez SqlLoader; 2. Utilisez l'outil IMP / EXP: les données d'exportation, les données d'importation. Astuce: 1. Chargeur SQL * recommandé pour les ensembles de Big Data; 2. La table cible doit exister et la définition de la colonne correspond; 3. Après l'importation, l'intégrité des données doit être vérifiée.

Comment créer des curseurs dans Oracle Loop Comment créer des curseurs dans Oracle Loop Apr 12, 2025 am 06:18 AM

Dans Oracle, la boucle pour la boucle pour créer des curseurs dynamiquement. Les étapes sont: 1. Définissez le type de curseur; 2. Créez la boucle; 3. Créez le curseur dynamiquement; 4. Exécuter le curseur; 5. Fermez le curseur. Exemple: un curseur peut être créé de cycle par circuit pour afficher les noms et salaires des 10 meilleurs employés.

Comment configurer les utilisateurs d'Oracle Comment configurer les utilisateurs d'Oracle Apr 11, 2025 pm 08:21 PM

Pour créer un utilisateur dans Oracle, suivez ces étapes: créez un nouvel utilisateur à l'aide de l'instruction Créer des utilisateurs. Accorder les autorisations nécessaires en utilisant la déclaration de subvention. Facultatif: utilisez l'instruction RESSOURCE pour définir le quota. Configurez d'autres options telles que les rôles par défaut et les espaces de table temporaires.

See all articles