Dans Oracle, le curseur est un mécanisme qui utilise le mot-clé CURSOR pour définir un ensemble de données interrogées par Oracle. L'ensemble de données interrogé peut être stocké dans la mémoire, puis le curseur pointe vers l'un des enregistrements via une boucle. Les curseurs atteignent l’objectif de parcourir des ensembles de données.
L'environnement d'exploitation de ce tutoriel : système Windows 7, version Oracle 11g, ordinateur Dell G3.
Dans Oracle, les curseurs sont un mécanisme par lequel un nom peut être attribué à une instruction SELECT et les informations contenues dans cette instruction SQL peuvent être traitées.
Le curseur Oracle définit un ensemble d'ensembles de données interrogés par Oracle via le mot-clé CURSOR. Semblable à un tableau, l'ensemble de données interrogé est stocké dans la mémoire, puis le curseur pointe vers l'un des enregistrements et l'ensemble de données circulaire est. atteint via le but du curseur de boucle.
Que fait le curseur ?
①Spécifiez la position d'une ligne spécifique dans l'ensemble de résultats.
②Récupérez une ou plusieurs lignes consécutives en fonction de la position actuelle de l'ensemble de résultats.
③ Modifiez les données de la ligne à la position actuelle de l'ensemble de résultats.
④ Définissez différents niveaux de sensibilité aux modifications de données apportées par d'autres utilisateurs.
⑤La base de données est accessible par programme.
Type de curseur Oracle ?
1. Curseur statique : Un curseur dont l'ensemble de résultats a été confirmé (défini statiquement). Divisé en curseurs implicites et explicites
Curseur implicite : toutes les instructions DML sont des curseurs implicites et les informations sur les instructions SQL peuvent être obtenues via l'attribut de curseur implicite.
Afficher le curseur : L'utilisateur affiche le curseur déclaré, c'est-à-dire l'ensemble de résultats spécifié. Lorsqu'une requête renvoie plusieurs lignes de résultats, un curseur explicite est requis.
2. Curseur REF : un objet temporaire qui associe dynamiquement l'ensemble de résultats.
Quels sont les statuts des curseurs Oracle et comment utiliser les attributs du curseur ?
①L'état du curseur est représenté par des attributs.
%Found : L'état d'exécution de l'instruction Fetch (obtention des enregistrements) est True ou False.
%NotFound : Indique si le dernier enregistrement est extrait comme True ou False.
%ISOOpen : Indique si le curseur est ouvert True ou False.
%RowCount : Le nombre de lignes actuellement extraites par le curseur.
②Utilisez les propriétés du curseur.
Exemple :
/* conn scott/tiger */ Begin Update emp Set SAL = SAL + 0.1 Where JOB = 'CLERK'; If SQL%Found Then DBMS_OUTPUT.PUT_LINE('已经更新!'); Else DBMS_OUTPUT.PUT_LINE('更新失败!'); End If; End;
Comment utiliser le curseur d'affichage ? Comment parcourir un curseur de boucle ?
1. Utilisez le curseur d'affichage
pour déclarer le curseur : divisez la zone de stockage. Notez que l'instruction Select n'est pas exécutée pour le moment.
CURSOR 游标名( 参数 列表) [返回值类型] IS Select 语句;
Ouvrez le curseur : exécutez l'instruction Select, obtenez l'ensemble de résultats et stockez-le dans le curseur. À ce moment, le curseur pointe vers la tête de l'ensemble de résultats, pas vers le premier enregistrement.
Open 游标名( 参数 列表);
Obtenir un enregistrement : déplacez le curseur pour obtenir un enregistrement
Fetch 游标名InTo 临时记录或属性类型变量;
Fermer le curseur : placez le curseur dans le pool de mémoire tampon sans libérer complètement les ressources. Peut être rouvert.
Close 游标名;
2. Curseur de boucle traversante
Curseur de boucle For
Le curseur de boucle ouvre implicitement le curseur, défile automatiquement pour obtenir un enregistrement et crée automatiquement une variable de type d'enregistrement temporaire pour stocker l'enregistrement. Le curseur se ferme automatiquement après le traitement.
For 变量名 In 游标名 Loop 数据处理语句; End Loop;
Curseur de boucle de boucle
。。。 Loop Fatch 游标名InTo 临时记录或属性类型变量; Exit When 游标名%NotFound; End Loop; 。。。
Exemple 1 :
/* conn scott/tiger */ Declare Cursor myCur is select empno,ename,sal from emp; vna varchar2(10); vno number(4); vsal number(7,2); Begin open myCur; fetch myCur into vno,vna,vsal; dbms_output.put_line(vno||' '||vna||' '||vsal); close myCur; End; /
Exemple 2 : Utilisez une boucle pour parcourir le curseur.
/* conn scott/tiger */ Declare Cursor myCur is select ename,job,sal,empno from emp; varE myCur%rowType; Begin if myCur%isopen = false then open myCur; dbms_output.put_line('Opening...'); end if; loop fetch myCur into varE; exit when myCur%notfound; dbms_output.put_line(myCur%rowCount||' '||vare.empno||' '||vare.ename||' '||vare.sal); end loop; if myCur%isopen then Close myCur; dbms_output.put_line('Closing...'); end if; End; /
Exemple 3 : Utiliser une boucle For pour parcourir le curseur,
/* conn scott/tiger */ Declare Cursor myCur is select * from emp; Begin for varA in myCur loop dbms_output.put_line(myCur%rowCount||' '||varA.empno||' '||varA.ename||' '||varA.sal); end loop; End; /
Comment mettre à jour et supprimer des enregistrements dans le curseur affiché ?
①La sous-chaîne WHERE CURRENT OF dans l'instruction UPDATE ou DELETE gère spécifiquement les données les plus récentes extraites de la table où l'opération UPDATE ou DELETE doit être effectuée.
Pour utiliser cette méthode, vous devez utiliser la sous-chaîne FOR UPDATE lors de la déclaration du curseur. Lorsque la boîte de dialogue utilise la sous-chaîne FOR UPDATE pour ouvrir un curseur,
Toutes les lignes de données de l'ensemble de retour seront au niveau de la ligne (ROW-). LEVEL) mode exclusif Verrouillé, les autres objets ne peuvent interroger que ces lignes de données,
ne peuvent pas effectuer d'opérations UPDATE, DELETE ou SELECT...FOR UPDATE.
Dans les requêtes multi-tables, utilisez la clause OF pour verrouiller une table spécifique. Si la clause OF est ignorée, les lignes de données sélectionnées dans toutes les tables seront verrouillées.
Si ces lignes de données ont été verrouillées par d'autres sessions, alors dans des circonstances normales, ORACLE attendra que les lignes de données soient déverrouillées.
② Utiliser la mise à jour ou la suppression :
⑴ Déclarer la mise à jour ou la suppression du curseur d'affichage :
Cursor 游标名IS SELECT 语句 For Update [ Of 更新列列名]; Cursor 游标名IS SELECT 语句 For Delete [ Of 更新列列名];
⑵ Utiliser l'enregistrement actuel du curseur d'affichage pour mettre à jour ou supprimer :
Update 表名 SET 更新语句 Where Current Of 游标名; Delete From 表名 Where Current Of 游标名;
Exemple 1 : Mettre à jour l'enregistrement du curseur d'affichage
/*conn scott/tiger*/ Declare Cursor myCur is select job from emp for update; vjob empa.job%type; rsal empa.sal%type; Begin open myCur; loop fetch myCur into vjob; exit when myCur%notFound; case (vjob) when 'ANALYST' then rsal := 0.1; when 'CLERK' then rsal := 0.2; when 'MANAGER' then rsal := 0.3; else rsal := 0.5; end case; update emp set sal = sal + rsal where current of myCur; end loop; End; /
Exemple 2 : Supprimer l'affichage Enregistrement du curseur
/*conn scott/tiger Crate table empa Select * from scott.emp; */ Declare Cursor MyCursor Select JOB From empa For Update; vSal emp.Sal%TYPE; Begin Loop Fetch MyCursor InTo vSal; Exit When MyCursor%NotFound; If vSal < 800 Then Delete From empa Where Cursor Of MyCursor; End If; End Loop; End;/
Qu'est-ce qu'un curseur d'affichage avec des paramètres ?
1. Semblables aux procédures et aux fonctions, les paramètres peuvent être transmis au curseur et utilisés dans les requêtes.
Le paramètre définit uniquement le type de données, pas la taille (tous les paramètres formels dans Oracle définissent uniquement le type de données, pas la taille).
与过程不同的是,游标只能接受传递的值,而不能返回值。
可以给参数设定一个缺省值,当没有参数值传递给游标时,就使用缺省值。
游标中定义的参数只是一个占位符,在别处引用该参数不一定可靠。
2、使用带参数的显示游标
声明带参数的显示游标:
CURSOR 游标名 [(parameter[,parameter],...)] IS Select语句;
参数形式:
1,参数名 数据类型
2,参数名 数据类型 DEFAULT 默认值
例子:
/*conn scott/tiger Crate table empa Select * from scott.emp; */ Declare Cursor MyCursor(pSal Number Default 800) Select JOB From empa Where SAL > pSal ; varA MyCursor%ROWTYPE; Begin Loop Fetch MyCursor InTo varA; Exit When MyCursor%NotFound; DBMS_OUTPUT.PUT_LINE(MyCursor%RowCount||' '||varA.empno||' '||varA.ename||' '||varA.sal); End Loop; End;/
推荐教程:《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!

La sélection MySQL et Oracle doit être basée sur le coût, les performances, la complexité et les exigences fonctionnelles: 1. MySQL convient aux projets avec des budgets limités, est simple à installer et convient aux applications de petite à moyenne taille. 2. Oracle convient aux grandes entreprises et fonctionne parfaitement dans la gestion des données à grande échelle et des demandes simultanées élevées, mais est coûteuse et complexe en configuration.

Oracle aide les entreprises à réaliser la transformation numérique et la gestion des données grâce à ses produits et services. 1) Oracle fournit un portefeuille complet de produits, y compris les systèmes de gestion de base de données, les systèmes ERP et CRM, aidant les entreprises à automatiser et à optimiser les processus métier. 2) Les systèmes ERP d'Oracle tels que E-BusinessSuite et FusionApplications réalisent l'automatisation des processus métier de bout en bout, améliorent l'efficacité et réduisent les coûts, mais ont des coûts de mise en œuvre et de maintenance élevés. 3) Oracedatabase offre un traitement élevé de données de concurrence et de haute disponibilité, mais a des coûts de licence élevés. 4) L'optimisation des performances et les meilleures pratiques incluent l'utilisation rationnelle de la technologie d'indexation et de partitionnement, la maintenance régulière de la base de données et la conformité aux spécifications de codage.

Étapes pour supprimer la base de données ratée après que Oracle a échoué à créer une bibliothèque: utilisez le nom d'utilisateur SYS pour se connecter à l'instance cible. Utilisez la base de données Drop pour supprimer la base de données. Base de données de requête V $ pour confirmer que la base de données a été supprimé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.

Oracle Views peut être exporté via l'utilitaire EXP: Connectez-vous à la base de données Oracle. Démarrez l'utilitaire EXP, spécifiant le nom de vue et le répertoire d'exportation. Entrez les paramètres d'exportation, y compris le mode cible, le format de fichier et l'espace de table. Commencez à exporter. Vérifiez l'exportation à l'aide de l'utilitaire IMPDP.

Pour arrêter une base de données Oracle, effectuez les étapes suivantes: 1. Connectez-vous à la base de données; 2. Arrêt immédiatement; 3. Arrêt About complètement.

Lorsque les fichiers journaux Oracle sont complets, les solutions suivantes peuvent être adoptées: 1) nettoyer les anciens fichiers journaux; 2) augmenter la taille du fichier journal; 3) augmenter le groupe de fichiers journaux; 4) Configurer la gestion automatique des journaux; 5) Renidialiser la base de données. Avant d'implémenter une solution, il est recommandé de sauvegarder la base de données pour éviter la perte de données.

Les instructions SQL peuvent être créées et exécutées en fonction de l'entrée d'exécution en utilisant Dynamic SQL d'Oracle. Les étapes comprennent: la préparation d'une variable de chaîne vide pour stocker des instructions SQL générées dynamiquement. Utilisez l'instruction EXECUTER IMMÉDIATE OU PRÉPEPART pour compiler et exécuter les instructions SQL dynamiques. Utilisez la variable Bind pour passer l'entrée utilisateur ou d'autres valeurs dynamiques à Dynamic SQL. Utilisez EXECUTER immédiat ou exécuter pour exécuter des instructions SQL dynamiques.


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

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

Navigateur d'examen sécurisé
Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

MantisBT
Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

ZendStudio 13.5.1 Mac
Puissant environnement de développement intégré PHP