BlocSql

Instruction de déclaration. Définition des blocs Programming Language / Structured Query Language (PL/SQL).

Instruction. Exécution d'un bloc Programming Language / Structured Query Language (PL/SQL).

Syntaxe

BlocSql ListeDeBlocsSql

BlocSql NomSql ParametresSqlTransmis TempsDeGardeTransmis SourceBlocSql

Description

Employée en tant qu'instruction de déclaration, BlocSql permet de déclarer des blocs Programming Language / Structured Query Language (PL/SQL) statiques.

Un bloc Pl/Sql peut être déclaré globalement ou localement. Son accès peut être défini au moyen des instructions Prive, Protege et Public.

La déclaration du bloc Pl/Sql au niveau de la source de données relationnelles est établie tout le temps de la portée de la déclaration. Ainsi, un bloc Pl/Sql global est résidant, ce qui permet de factoriser les phases d'analyse et de calcul du plan effectuées par le moteur de la source de données pour plusieurs exécutions successives. La contre-partie est que le source du bloc Pl/Sql ne peut être que statique.

Un bloc Pl/Sql possède éventuellement des paramètres dont la liste est introduite par l'instruction ParametreSql. Il peut s'agir de paramètres d'entrée, d'entrée-sortie ou de sortie. Les paramètres sont identifiés dans le source du bloc Pl/Sql par des pseudo-variables de même nom.

Le source d'un bloc Pl/Sql est constitué de plusieurs commandes Pl/Sql, éventuellement isolées dans un bloc Pl/Sql stricto sensus. Il est introduit par l'instruction SqlStatique.

Un bloc Pl/Sql est particulièrement intéressant parce que toutes les commandes sont envoyées d'un seul bloc au moteur de la source de données.

Le source d'une commande Pl/Sql est écrit en clair dans le programme. Il doit respecter la syntaxe et la sémantique du moteur de la source de données. Il se termine par le caractère point-virgule ; .

Une commande Pl/Sql peut être :

Employée en tant qu'instruction BlocSql, permet aussi d'exécuter directement plusieurs ordres Programming Language / Structured Query Language (PL/SQL).

Les ordres Pl/Sql sont envoyés d'un seul bloc au moteur de la source de données relationnelles, ce qui permet d'optimiser la communication avec elle ainsi que son usage.

Les ordres Pl/Sql peuvent être déclarés au niveau de la source de données relationnelles le temps de son exécution ou ils ont pu être déclarés au préalable. Dans ce second cas, les phases d'analyse et de calcul du plan effectuées par le moteur de la source de données ont déjà été effectuées.

Les ordres Pl/Sql ne peuvent produire de résultat.

Les ordres Pl/Sql statiques possèdent éventuellement des paramètres dont la liste est introduite par l'instruction ParametreSql. Il s'agit de paramètres d'entrée, d'entrée-sortie ou de sortie. Les paramètres sont identifiés dans le source de l'ordre Sql par des pseudo-variables de même nom.

Le source des ordres Pl/Sql peut être :

Le source des ordres Pl/Sql doit respecter la syntaxe et la sémantique du moteur de la source de données.

Un bloc Pl/Sql est un objet implicite d'un type implémentant l'interface IBlocSql. Le type est automatiquement déduit de la connexion associée au bloc Pl/Sql.

Pour connaître les propriétés et les méthodes de ce type, veuillez vous reporter à la fiche Description de l'interface IBlocSql.

Exemple

Variable
/******/

ConnexionSql
/*******/

BlocSql
/*****/
Public : Protege : Prive :
Principal
/*******/
...
/* Bloc Sql dont le source est statique. */
BlocSql MonBlocSql6 ConnexionSql MaConnexionSql ParametreSql (NomEmploye : Nul Ou Caractere TailleMaxSql 20, DateEmbauche : Nul Ou Date, NumeroEmploye : Nul Ou Entier, NumeroDepartement : Nul Ou Entier, Salaire : Nul Ou Reel, NumeroEmploye2 : Entier, Salaire2 : Reel=-Salaire) SqlStatique Fin SqlStatique
...
/* Bloc Sql dont le source statique est factorise via l'objet semantique MonBlocSql2. */
BlocSql MonBlocSql2 ParametreSql (NomEmploye, DateEmbauche, NumeroEmploye, NumeroDepartement, Salaire, NumeroEmploye, -Salaire);
...
/* Bloc Sql dont le source est calcule dynamiquement. */
BlocSql MonBlocSql7 ConnexionSql MaConnexionSql SqlDynamique ...
Fin Principal

Voir aussi

ParametreSql pour déclarer les paramètres d'un bloc Pl/Sql. SqlDynamique pour déclarer le source d'un bloc Pl/Sql dynamique. SqlStatique pour déclarer le source d'un bloc Pl/Sql statique.
OrdreSql pour exécuter un ordre Pl/Sql. RequeteSql pour exécuter une requête Sql.

Traduction

---------