programmeurs utilisent le langage de requête standard ( SQL) pour accéder à une base de données et modifier son contenu . Parce qu'une base de données contient bien plus de données qu'il peut traiter à un moment donné , il confine son travail pour une petite partie de la mémoire appelée zone de contexte. Les programmeurs accéder à la zone de contexte à l'aide d'un curseur. Curseurs implicites et explicites servent le même but essentiel de permettre aux programmeurs d'accéder aux lignes retournées par une requête SQL séquentiellement , mais chacun offre également un ensemble unique d'atouts et ses inconvénients. Création
Par défaut , SQL accès aux données via un curseur implicite . Les programmeurs et les ingénieurs de bases de données il suffit d'écrire une instruction SQL et l'exécuter, et SQL seront automatiquement compter sur un curseur implicite pour exécuter l'instruction . Vous n'avez pas besoin d'instancier ou déclarer une variable d'utiliser un curseur implicite . Pour utiliser un curseur explicite , cependant, vous devez explicitement instancier en utilisant les mots-clés cursor_name . Une fois que le thread quitte le bloc de code, SQL supprime le curseur explicite de la mémoire.
Rangée simple récupération
S'il est utilisé correctement , un curseur explicite exécute plus efficacement qu'un implicite curseur lors de l'extraction d'une seule ligne à partir d'une base de données. Un curseur implicite doit faire deux allers-retours pour retourner une ligne d'une base de données. Le premier voyage sert à récupérer la ligne , la seconde pour déterminer si le nombre de lignes dépasse le nombre maximum de lignes autorisées. En revanche, un curseur explicite ne fait qu'un seul aller-retour à la base de données pour récupérer une ligne . Vous ne devriez pas vous soucier de cette différence mineure dans les circonstances ordinaires , mais dans les situations où vous devez effectuer de nombreuses récupérations une rangée , utilisez un curseur explicite.
Speed
Dans la grande majorité des cas, une requête SQL qui s'appuie sur un curseur implicite exécute plus rapidement qu'une requête qui s'appuie sur un curseur explicite. Bien sûr , vous devez utiliser une requête explicite lorsque vous devez exécuter un très grand nombre de requêtes à une rangée , mais dans presque toute autre circonstance , vous devez utiliser une requête implicite. Requêtes implicites non seulement d'exécuter plus rapidement , mais les programmeurs trouvent plus faciles à utiliser et à gérer .
Contrôle
Un programmeur ne peut pas exercer un plus grand contrôle sur un curseur explicite qu'un curseur implicite . Vous pouvez directement contrôler le mouvement et l'exécution d'un curseur explicite, mais un curseur implicite reste sous le contrôle indépendant du moteur interne de SQL. Vous ne pouvez pas accéder aux attributs d'un curseur implicite que vous pouvez avec un curseur externe, et vous ne pouvez utiliser facilement ramification ou d'autres déclarations à la décision.