Analyse de séquence Oracle SEQUENCE
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.
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}];
- 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;
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';
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;
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 );
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;
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;
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;
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;
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"
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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_

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.

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.

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.

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.

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.

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.

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.
