Comment utiliser le langage du module avec sql

Module de langue

Sommaire

fournit une méthode relativement facile pour l'utilisation de SQL avec un langage de programmation procédural. Avec le langage de module, vous mettez explicitement toutes les instructions SQL dans un module SQL distincte.

Un SQL module est simplement une liste d'instructions SQL. Chaque instruction SQL est inclus dans une requête SQL procédure et est précédée d'une spécification du nom de la procédure et le nombre et les types de paramètres.

Chaque procédure SQL ne contient qu'une seule instruction SQL. Dans le programme d'accueil, vous appelez explicitement une procédure SQL à quelque point dans le programme de l'hôte que vous voulez exécuter l'instruction SQL dans cette procédure. Vous appelez la procédure SQL comme si elle était un sous-programme dans la langue d'accueil.

Ainsi, vous pouvez utiliser un module SQL et le programme d'hôte associé à la main-Code explicitement le résultat du préprocesseur SQL embarqué pour la syntaxe.

Embedded SQL est beaucoup plus fréquent que la langue du module. La plupart des fournisseurs offrent une certaine forme de la langue du module, mais quelques-uns soulignent dans leur documentation. La langue du module ne présentent plusieurs avantages:

  • Programmeurs SQL ne doivent pas être des experts dans la langue de procédure. Parce que le SQL est complètement séparée de la langue de la procédure, vous pouvez louer les meilleurs programmeurs SQL disponibles pour écrire vos modules SQL, si oui ou non ils ont une expérience avec votre langage procédural. En fait, vous pouvez même décider de reporter la langue de la procédure à utiliser qu'après vos modules SQL sont écrites et mises au point.

  • Vous pouvez louer les meilleurs programmeurs qui travaillent dans votre langage procédural, même si elles ne savent rien de SQL. Il va de soi que si vos experts SQL ne doivent pas être des experts de la langue de procédure, certainement les experts de la langue de procédure ne doivent pas se soucier plus de l'apprentissage SQL.




  • Pas de SQL est mélangé avec le code de procédure, de sorte que votre débogueur de langage procédural fonctionne. Cela peut vous faire gagner du temps de développement considérable.

Une fois de plus, ce qui peut être regardé comme un avantage d'un point de vue peut être un inconvénient d'un autre. Parce que les modules de SQL sont séparés du code de procédure, la suite de l'écoulement de la logique est pas aussi facile que cela est en SQL embarqué quand vous essayez de comprendre comment le programme fonctionne.

Déclarations du module

La syntaxe pour les déclarations dans un module se présente comme suit:

MODULE [nom-module] [NOMS SONT caractère nom set] LANGUE PLI [SCHEMA nom-schéma] [AUTORISATION authorization-id][temporary-table-declarations...][cursor-declarations...][dynamic-cursor-declarations...]procedures...

Les crochets indiquent que le nom du module est facultatif. Nommer toute façon est une bonne idée si vous voulez garder les choses de devenir trop confus.

L'option Les noms sont clause spécifie un jeu de caractères. Si vous ne spécifiez pas un Les noms sont clause, le jeu de caractères SQL pour votre implémentation par défaut est utilisé. La LANGUE clause indique au module quelle langue il sera appelé à partir. Le compilateur sait ce que la langue d'appel est, car il fera les instructions SQL apparaissent au programme d'appel comme si elles sont sous-programmes dans la langue de ce programme.

Bien que le SCHEMA clause et le AUTORISATION clause sont tous deux en option, vous devez spécifier au moins un d'entre eux. Ou vous pouvez spécifier à la fois. La SCHEMA clause spécifie le schéma par défaut, et le AUTORISATION clause spécifie l'identificateur d'autorisation. La identifiant d'autorisation établit les privilèges que vous avez.

Si vous ne spécifiez pas un ID d'autorisation, le SGBD utilise l'ID d'autorisation associé à votre session pour déterminer les privilèges que votre module est autorisé. Si vous ne disposez pas des privilèges nécessaires pour effectuer l'opération de votre procédure prévoit, votre procédure ne soit pas exécutée.

Si votre procédure nécessite des tables temporaires, les déclarer à la clause de la déclaration des tables temporaires. Déclarer des curseurs et des curseurs dynamiques avant de déclarer toutes les procédures qui les utilisent. Déclarer un curseur après une procédure commence à exécuter est permis tant que la procédure ne pas utiliser le curseur. Déclarer curseurs pour être utilisé par des procédures ultérieures peuvent donner un sens.

Procédures de module

Les éléments fonctionnels du module sont les procédures. Une procédure du module langage SQL a un nom, déclarations de paramètres et des instructions SQL exécutables. Le programme de langage procédural appelle la procédure par son nom et transmet des valeurs à travers les paramètres déclarés. La syntaxe de procédure ressemble à ceci:

Procédure-nom (paramètre-déclaration [, paramètre-déclaration] ... instruction SQL - [instructions SQL] -

La déclaration de paramètre doit prendre la forme suivante:

type de données nom-paramètre

ou

SQLSTATE

Les paramètres vous déclarez peuvent être des paramètres d'entrée, les paramètres de sortie, ou les deux. SQLSTATE est un paramètre d'état à travers lequel les erreurs sont signalées.


» » » » Comment utiliser le langage du module avec sql