Rubrique d'aide introuvable. Recherchez les rubriques connexes dans l'aide en ligne.


Prise en charge des objets Oracle8 dans le Navigateur d'objet

Le nouveau noeud Types, situé sous le noeud Objets de base de données, permet d'afficher et de rechercher les types de données Oracle8 définis par l'utilisateur, ainsi que les méthodes et les attributs associés. D'autres fonctionnalités Oracle8 ont également été ajoutées aux noeuds Tables et Vues, grâce auxquelles vous pouvez afficher les tables d'objets, les objets de colonne, les vues d'objet et les déclencheurs INSTEAD OF associés.


Editeur de déclencheur de base de données amélioré

Les éléments de l’Editeur de déclencheur de base de données ont été regroupés de manière logique pour simplifier la création des déclencheurs de ligne et d'instruction. Une fonction de génération de messages d'erreur a également été ajoutée - un message apparaît si vous essayez d'extraire, d'enregistrer ou de supprimer un déclencheur non valide.

Pour la prise en charge des objets Oracle8, l'Editeur de déclencheur de base de données permet de créer et de modifier les déclencheurs INSTEAD OF des vues et des vues d'objets.


Prise en charge de PL/SQL 8

  Rubriques connexes

Cette version de Procedure Builder utilise PL/SQL V8 sur le client et sur le serveur. Les unités de programme côté client ne peuvent actuellement prendre en charge aucune fonctionnalité liée aux objets. Cependant, les unités de programme stockées peuvent utiliser toutes les nouvelles fonctions PL/SQL V8.

Remarquez que les unités de programme côté client et les unités de programme stockées peuvent fonctionner avec un serveur de base de données Oracle7 si elles n'utilisent aucune des nouvelles fonctions PL/SQL V8 ou SQL V8.

L'annexe A du manuel PL/SQL User's Guide and Reference Release 8.0 décrit les nouvelles fonctions PL/SQL V8. Ce manuel est disponible en ligne. Sélectionnez Aide [image] Manuels, puis choisissez Reference Manuals, sous Online Manuals.


Compatibilité avec les versions antérieures de PL/SQL

  Rubriques connexes

Si vos unités de programme côté client sont écrites en code PL/SQL V1 ou V2, vous devez convertir ce code pour le mettre à niveau. L'utilitaire de conversion PL/SQL V1 est fourni pour vous aider à automatiser le processus de mise à niveau.

Les unités de programme stockées écrites en code PL/SQL V2 fonctionnent avec le moteur PL/SQL V8 sur le serveur de base de données, mais risquent de générer des erreurs de compilation. Ces erreurs surviennent lorsqu'il y a incompatibilité de syntaxe entre les versions V2 et V8. Un indicateur de compatibilité PL/SQL V2, figurant dans la base de données V8, vous permet de définir un mode de compatibilité pour que le moteur V8 ne provoque pas de telles erreurs quand il compile du code V2. Le chapitre 6 du manuel Oracle8 Migration décrit les situations couvertes par l'indicateur de compatibilité PL/SQL V2.


Package intégré EXEC_SQL

Le package intégré EXEC_SQL contient des procédures et des fonctions permettant d'exécuter des instructions SQL dynamiques dans des procédures PL/SQL. Comme pour le package DBMS_SQL, ces instructions sont stockées dans des chaînes de caractères qui sont uniquement transmises au programme source ou créées par ce dernier lors de l'exécution.

Le package intégré EXEC_SQL s'avère particulièrement utile pour l'extraction, dans un même état ou dans une même application Forms, d'ensembles de résultats provenant de diverses sources de données Oracle ou ODBC. Vous pouvez effectuer cette opération car le package vous permet d'accéder simultanément à plusieurs bases de données Oracle via diverses connexions. Grâce à l'OCA (Open Client Adapter - Adaptateur client ouvert), vous pouvez également établir des connexions avec des sources de données ODBC.


Nouveau nom des exécutables de traitement par lots

Le nom des exécutables Procedure Builder est passé de PB20D32 à DE60 (Microsoft Windows), et de PB20DES à DEBLD60 (UNIX). Veillez à apporter les modifications appropriées aux scripts qui appellent ces exécutables.


Palette de syntaxe

La palette de syntaxe est un outil de programmation permettant d'afficher les structures de code PL/SQL et celles des packages intégrés, et de copier les éléments de syntaxe sélectionnés vers un éditeur. Cet outil est destiné aux programmeurs n'ayant pas l'habitude de ce type de langage. Il constitue en même temps une méthode simple et efficace pour les programmeurs chevronnés qui souhaitent réutiliser la même syntaxe sans la saisir plusieurs fois.


Recherche et remplacement de texte dans plusieurs unités de programme

La boîte de dialogue Recherche et remplacement de texte dans les unités de programme permet de rechercher un texte dans un groupe d'unités de programme sans avoir besoin d'ouvrir plusieurs instances de l'Editeur d'unité de programme. Vous pouvez remplacer chaque occurrence de la chaîne de texte ou uniquement les occurrences sélectionnées.


Assistant Type

Procedure Builder offre désormais un assistant Type, dans le cadre de la prise en charge des objets Oracle8. Cet assistant indique les étapes nécessaires à la création d'un nouveau type d'objet (avec ses attributs et ses méthodes), ou d'un nouveau type de table ou de tableau variable. Les types de données Oracle8 définis par l'utilisateur apparaissent sous le noeud Types dans le Navigateur d'objet.


Modification de types de données Oracle8 définis par l'utilisateur

L'Editeur d'unité de programme stockée a été amélioré pour permettre la modification du corps (méthodes) et de la spécification (attributs) des types de données Oracle8 définis par l'utilisateur.


Fonctions d'édition améliorées

L'Editeur d'unité de programme et l'Editeur d'unité de programme stockée prennent désormais en charge une série de fonctions d'édition de type Microsoft Windows, comme les suivantes :

•	Retrait/retrait négatif automatique : lorsque vous entrez du code dans les éditeurs, les lignes sont automatiquement mises en retrait ou en retrait négatif en fonction des règles de syntaxe PL/SQL.

•	Mise en évidence de la syntaxe à l'aide de couleurs : les chaînes, les mots-clés et les commentaires sont identifiés par des couleurs différentes.

•	Sélection de colonnes et de lignes : vous pouvez sélectionner des colonnes de texte, ainsi que des lignes de code source.

•	Manipulation de texte par Glisser-déplacer : vous pouvez copier ou déplacer le texte sélectionné en le faisant glisser.

•	Vues multiples : vous pouvez créer dans l'Editeur jusqu'à quatre vues distinctes de l'unité de programme actuelle.

•	Impression : vous pouvez imprimer l'unité de programme actuelle.

•	Annulation/rétablissement illimité : vous pouvez annuler/rétablir toutes les actions d'édition effectuées depuis la dernière utilisation de la commande Enregistrer.


Procedure Builder - Initiation

Si vous utilisez Procedure Builder pour la première fois, reportez-vous au manuel Oracle Procedure Builder Getting Started. L'objectif de ce didacticiel est de présenter rapidement les notions fondamentales de Procedure Builder. Pour accéder à ce manuel en ligne, sélectionnez Aide [image] Manuels, puis choisissez Online Manuals et Getting Started.

Des versions HTM et PDF de cette documentation ont également été installées dans le sous-répertoire de documentation \TOOLS\ dans %ORACLE_HOME%, par exemple, %ORACLE_HOME%\TOOLS\DOCnn\<langue>\PBGSnn\, nn correspondant au numéro de version et <langue>, au code de la langue (US, JP, etc.).


A propos des bibliothèques PL/SQL

  Rubriques connexes

Les bibliothèques PL/SQL sont des ensembles d'unités de programme côté client qui peuvent être stockées soit dans le système de fichiers soit dans la base de données. Elles simplifient le stockage des unités de programme côté client et leur partage entre plusieurs applications.

Les bibliothèques PL/SQL acceptent le chargement dynamique - c'est-à-dire qu'une unité de programme stockée dans une bibliothèque est chargée dans une application lorsque cette unité est appelée pour la première fois, puis reste chargée pour être réutilisée rapidement. Cette solution permet de diminuer considérablement l'espace mémoire nécessaire lors de l'exécution et améliore les performances d'une application.

Notez que les unités de programme résidant dans des bibliothèques PL/SQL ne doivent pas être confondues avec les sous-programmes stockés offerts par le serveur de base de données Oracle. Les sous-programmes stockés résident et sont toujours exécutés sur ce serveur, alors que les unités de programme d'une bibliothèque PL/SQL sont toujours chargées et exécutées dans le moteur PL/SQL côté client.


A propos de l'invalidation des unités de programme de bibliothèque

  Rubriques connexes

Si vous attachez une bibliothèque contenant une unité de programme portant le même nom qu'une unité de programme chargée définie dans une bibliothèque attachée distincte, l'unité de programme chargée est automatiquement redéfinie.

Toute unité de programme faisant référence à l'unité de programme chargée précédemment perd donc son état compilé (puisque la référence ne peut plus être résolue).

Lorsque vous tentez de recompiler une unité de programme, Procedure Builder recherche celle qui a été chargée précédemment dans la liste des bibliothèques attachées, dans l'ordre vertical de classement des bibliothèques dans le Navigateur d'objet. Il charge la première instance de l'unité de programme qu'il trouve.

L'ordre de classement des bibliothèques attachées peut donc avoir une incidence sur l'unité de programme référencée qui est chargée.

Pour réorganiser les bibliothèques attachées dans le Navigateur d'objet, sélectionnez-en une et faites-la glisser à son nouvel emplacement dans le noeud Bibliothèques attachées.

Remarque : Lorsque vous attachez une bibliothèque contenant une unité de programme portant le même nom qu'une unité de programme actuellement chargée et définie sous le noeud Unités de programme, l'unité de programme chargée n'est pas redéfinie automatiquement. Pour utiliser l'unité de programme de la bibliothèque attachée pendant la session en cours, supprimez l'unité de programme chargée sous le noeud Unités de programme.


Création d'une bibliothèque

  Rubriques connexes

Pour créer une bibliothèque :

1	Cliquez sur le noeud Bibliothèques PL/SQL, puis sur [image].

La bibliothèque est créée et reçoit un nom aléatoire unique dans la bibliothèque des applications Forms LIB_nnn. La bibliothèque est automatiquement ouverte afin que vous puissiez commencer à modifier son contenu.

2	Enregistrez la bibliothèque dans la base de données ou le système de fichiers.


Enregistrement d'une bibliothèque dans le système de fichiers

  Rubriques connexes

Pour enregistrer une bibliothèque dans le système de fichiers :

1	Cliquez sur la bibliothèque que vous voulez enregistrer dans le système de fichiers.

2	Cliquez ensuite sur [image].

Si vous enregistrez la bibliothèque pour la première fois ou que vous choisissiez Enregistrer sous dans le menu, la boîte de dialogue d'enregistrement de bibliothèque s'affiche et vous demande d'indiquer un nom et un emplacement pour l'enregistrement de la bibliothèque. Le suffixe de fichier .pll est donné par défaut.

3	Dans la boîte de dialogue, cliquez sur le bouton d'option Système de fichiers.

4	Cliquez sur Parcourir pour sélectionner le répertoire dans lequel vous voulez enregistrer la bibliothèque.

5	Dans la boîte de dialogue Bibliothèque PL/SQL, cliquez sur OK.


Enregistrement d'une bibliothèque dans la base de données

  Rubriques connexes

Pour enregistrer une bibliothèque dans la base de données :

1	Si vous n'êtes pas déjà connecté à une base de données, sélectionnez Fichier [image] Connecter. Conseil

2	Cliquez sur la bibliothèque que vous voulez enregistrer dans la base de données.

3	Cliquez ensuite sur [image].

Si vous enregistrez la bibliothèque pour la première fois ou que vous choisissiez Enregistrer sous dans le menu, la boîte de dialogue d'enregistrement de bibliothèque s'affiche et vous demande d'indiquer un nom et un emplacement pour l'enregistrement de la bibliothèque.

4	Dans la boîte de dialogue, cliquez sur le bouton d'option Base de données.

5	Entrez un nouveau nom de bibliothèque si vous le souhaitez.

6	Cliquez sur OK.

La bibliothèque est enregistrée automatiquement dans la base de données en cours.


Ouverture d'une bibliothèque

  Rubriques connexes

Pour ouvrir une bibliothèque :

1	Dans le Navigateur d'objet, choisissez Fichier [image] Ouvrir dans le menu pour afficher la boîte de dialogue Ouverture de bibliothèque.

2	Cliquez sur l'un des boutons d'option du champ De pour indiquer l'emplacement source de la bibliothèque.

3	Entrez l'emplacement et le nom de la bibliothèque dans le champ Bibliothèque ou cliquez sur Parcourir pour afficher une boîte de dialogue de fichiers de système d'exploitation ou la boîte de dialogue Bibliothèques de base de données que vous pouvez parcourir.

4	Cliquez sur OK.

La bibliothèque sélectionnée est ouverte sous le noeud Bibliothèques PL/SQL du Navigateur.

Si vous ouvrez une bibliothèque à laquelle d'autres bibliothèques sont attachées, Procedure Builder vérifie l'horodatage des bibliothèques attachées. Si une ou plusieurs de ces bibliothèques sont plus récentes que la bibliothèque ouverte, toutes les unités de programme de la bibliothèque ouverte perdent leur état compilé.


Ajout d'une unité de programme à une bibliothèque

  Rubriques connexes

Pour ajouter une unité de programme à une bibliothèque :

1	Si le noeud de la bibliothèque ouverte n'est pas déjà développé, cliquez deux fois sur celui-ci pour afficher les sous-noeuds Unités de programme et Bibliothèques attachées.

2	Dans le noeud Unités de programme de niveau supérieur (ou autre emplacement), cliquez sur l'unité de programme à ajouter à la bibliothèque ouverte.

3	Faites glisser l'unité de programme sous le noeud Unités de programme de la bibliothèque ouverte.

Notez que le curseur passe d'un rond noir, avec une barre oblique, à une flèche terminée par une petite case. Ce symbole indique que vous avez le droit de déposer l'unité de programme. Si vous déposez l'unité de programme pendant que le curseur a la forme d'un rond avec une barre oblique, il ne se produit rien. Relâchez le bouton de la souris pour insérer une copie de l'unité de programme dans la bibliothèque ouverte.

Remarque : L'unité de programme n'est pas transférée à la bibliothèque ouverte. Son objet apparaît toujours sous le noeud Unités de programme.


Suppression d'une unité de programme d'une bibliothèque

  Rubriques connexes

Pour supprimer une unité de programme d'une bibliothèque :

1	Dans le Navigateur d'objet, sélectionnez la ou les unités de programme dans le noeud Unités de programme de la bibliothèque ouverte.

2	Cliquez sur [image] dans la barre d'outils du Navigateur.


Compilation d'unités de programme de bibliothèque

  Rubriques connexes

Pour compiler toutes les unités de programme non compilées d'une bibliothèque :

1	Dans le Navigateur d'objet, cliquez sur le noeud Bibliothèques PL/SQL ou sur le sous-noeud d'une bibliothèque ouverte.

2	Choisissez Programme [image] Compiler [image] Incrémentiel dans le menu.

La boîte de dialogue de compilation s'affiche et indique l'état de la compilation. Les erreurs éventuelles s'affichent dans la zone de liste. Cliquez sur l'erreur pour accéder à la zone où elle a été constatée dans l'unité de programme.

Pour compiler toutes les unités de programme d'une bibliothèque, quel que soit leur état de compilation :

1	Dans le Navigateur d'objet, cliquez sur le noeud Bibliothèques PL/SQL ou sur le noeud d'une bibliothèque ouverte.

2	Choisissez Programme [image] Compiler [image] Tout dans le menu.

La boîte de dialogue de compilation s'affiche et indique l'état de la compilation. Les erreurs éventuelles s'affichent dans la zone de liste. Cliquez sur l'erreur pour accéder à la zone où elle a été constatée dans l'unité de programme.


Fermeture d'une bibliothèque

  Rubriques connexes

Pour fermer une bibliothèque :

1	Dans le Navigateur d'objet, cliquez sur le noeud Bibliothèques PL/SQL ou sur le noeud d'une bibliothèque ouverte.

2	Cliquez sur le bouton Fermer dans la barre d'outils du Navigateur.

Si vous fermez une bibliothèque ouverte à partir du Navigateur d'objet, un message vous demande d'enregistrer les modifications que vous n'avez pas encore enregistrées. Si vous utilisez la commande CLOSE de l'Interpréteur, les modifications que vous avez apportées à la bibliothèque depuis le dernier enregistrement sont automatiquement enregistrées.


Attachement d'une bibliothèque

  Rubriques connexes

Pour attacher une bibliothèque :

1	Choisissez Fichier [image] Attacher bibliothèque pour afficher la boîte de dialogue Attachement de bibliothèque.

2	Cliquez sur l'un des boutons d'option dans le champ De pour indiquer si la bibliothèque est stockée dans le système de fichiers ou dans la base de données.

3	Entrez l'emplacement et le nom de la bibliothèque dans le champ Bibliothèque ou cliquez sur Parcourir pour afficher une boîte de dialogue de fichiers de système d'exploitation ou la boîte de dialogue Bibliothèques de base de données que vous pouvez parcourir.

4	Cliquez sur Attacher pour fermer la boîte de dialogue.

La bibliothèque apparaît sous le noeud Bibliothèques attachées, dans le Navigateur d'objet.

Remarque : Si le noeud Bibliothèques attachées est vide, cliquez deux fois sur celui-ci pour afficher la boîte de dialogue Attachement bibliothèque.

Pour faire référence à des unités de programme stockées dans une bibliothèque PL/SQL, commencez par attacher la bibliothèque soit à la session Procedure Builder en cours, soit à une autre bibliothèque. Lorsque vous avez fini d'utiliser la bibliothèque, détachez-la.

Vous ne pouvez pas éditer une bibliothèque attachée. Pour modifier le contenu d'une bibliothèque attachée, commencez par la détacher, puis ouvrez-la. Vous pouvez donc considérer une bibliothèque attachée comme une copie "d'exécution" ou "en lecture seule" de la bibliothèque.


Détachement d'une bibliothèque

  Rubriques connexes

Pour détacher une bibliothèque :

1	Dans le Navigateur d'objet, cliquez pour sélectionner le sous-noeud de bibliothèque sous le noeud Bibliothèques attachées.

2	Cliquez sur [image] dans la barre d'outils du Navigateur.

Notez la différence entre détacher et supprimer une bibliothèque. Lorsque vous détachez une bibliothèque, vous la supprimez simplement de l'ensemble des bibliothèques attachées.


Chargement d'unités de programme à partir d'une bibliothèque

  Rubriques connexes

Pour charger des unités de programme à partir d'une bibliothèque :

Utilisez la commande LOAD pour charger explicitement des unités de programme de bibliothèque. Par exemple :

PL/SQL> .LOAD PROCEDURE foo LIBRARY mabibl

Les unités de programme qui résident dans des bibliothèques PL/SQL attachées ne sont chargées implicitement que lorsqu'elles sont référencées par un autre programme lors de la compilation ou de l'exécution.


Visualisation d'informations sur les bibliothèques

  Rubriques connexes

Pour visualiser des informations sur les bibliothèques :

Vous pouvez visualiser les informations concernant les bibliothèques ouvertes dans la session Procedure Builder et attachées à cette session.

Le Navigateur d'objet affiche une liste des bibliothèques ouvertes et attachées, respectivement dans les noeuds Bibliothèques et Bibliothèques attachées. Sélectionnez un noeud et cliquez sur le bouton Développer tout dans la barre d'outils du Navigateur pour afficher tous les sous-noeuds.

Pour afficher des informations sur une bibliothèque donnée (notamment son mode, son emplacement et son contenu), entrez la commande DESCRIBE à l'invite PL/SQL> de l'Interpréteur.

Par exemple :

PL/SQL> .DESCRIBE LIB lib1
   Library:  LIB1
   Mode:  Open(READWRITE)
   Modified:  YES
   External Location:  lib1.pll
   Contents:
     Procedure Body BONUSES
     Procedure Body MAIN


Changement de nom d'une bibliothèque

  Rubriques connexes

Pour renommer une bibliothèque ouverte, mais non encore enregistrée :

1	Choisissez Fichier [image] Enregistrer sous, dans le menu, pour afficher la boîte de dialogue d'enregistrement de bibliothèque.

2	Entrez le nouveau nom de la bibliothèque dans la zone de texte Bibliothèque, ou cliquez sur Parcourir pour afficher la boîte de dialogue de fichiers de votre système d'exploitation, où vous disposez d'une option Parcourir.

3	Tapez le nouveau nom du fichier de bibliothèque.

4	Cliquez sur OK pour enregistrer le fichier sous son nouveau nom.

Pour renommer une bibliothèque déjà enregistrée dans un fichier :

Utilisez les fonctions de votre système d'exploitation pour renommer le fichier.

Pour renommer une bibliothèque stockée dans la base de données :

Tapez la commande RENAME à l'invite PL/SQL> de l'Interpréteur. Par exemple :

PL/SQL> .RENAME LIB LIB35 TO scott_lib


Autorisation et révocation d'accès aux bibliothèques

  Rubriques connexes

Deux méthodes permettent de gérer l'accès aux bibliothèques stockées dans le système de fichiers ou dans une base de données : l'autorisation et la révocation.

Pour autoriser et révoquer l'accès aux bibliothèques stockées dans le système de fichiers, utilisez la méthode du système d'exploitation, qui accorde et limite l'accès aux fichiers.

Pour autoriser et révoquer l'accès aux bibliothèques stockées dans la base de données, vérifiez d'abord que les conditions suivantes sont remplies :

•	Vous êtes propriétaire de la bibliothèque ou vous avez vous-même accordé l'accès à cette dernière.

•	L'utilisateur auquel vous souhaitez octroyer des droits d'accès dispose d'un ID utilisateur valide pour la base de données actuelle.

•	Vous êtes connecté à la base de données.

Pour autoriser et révoquer des accès aux bibliothèques :

1	Dans le Navigateur d'objet, sélectionnez le sous-noeud de bibliothèque, sous le noeud Objets base de données, pour lequel vous voulez autoriser un accès à la base de données.

2	Choisissez Fichier [image] Administration [image] Octroyer l'accès pour afficher la boîte de dialogue Autorisation à liste d'accès.

Pour accorder des droits d'accès à un utilisateur, tapez l'ID d'utilisateur de base de données dans le champ Utilisateur et cliquez sur Ajouter.

Pour révoquer une autorisation d'accès, sélectionnez l'ID d'utilisateur dans la liste et cliquez sur Supprimer.

3	Cliquez sur OK pour fermer la boîte de dialogue.


Suppression d'une bibliothèque

  Rubriques connexes

Pour supprimer un fichier contenant une bibliothèque :

Utilisez les fonctions de votre système d'exploitation.

Pour supprimer une bibliothèque stockée dans la base de données :

1	Dans le Navigateur d'objet, sélectionnez le noeud de bibliothèque de base de données.

2	Cliquez sur [image] dans la barre d'outils du Navigateur.


A propos du chemin de chargement

Lorsque vous appelez une commande (par exemple, LOAD ou INTERPRET) pour l'utiliser sur un document PL/SQL du système de fichiers, mais sans indiquer précisément l'emplacement du document (c'est-à-dire le chemin d'accès complet au répertoire), Procedure Builder utilise un chemin de recherche appelé chemin de chargement.

Le chemin de chargement se compose d'un ensemble d'emplacements ou de répertoires du système de fichiers. Procedure Builder explore les répertoires les uns à la suite des autres jusqu'à ce qu'il trouve les documents indiqués.


Initialisation du chemin de chargement

Pour initialiser le chemin de chargement :

La variable d'environnement ORAPLSQLLOADPATH permet d'initialiser le chemin de recherche afin qu'il contienne un ou plusieurs répertoires. Vous définissez cette variable comme vous définiriez d'autres variables d'environnement dans votre système d'exploitation de base, en tenant compte des règles applicables à la plate-forme utilisée (longueur de chemin d'accès, etc.). Sous Microsoft Windows, vous devez éditer votre base de registres.

Sous UNIX, vous pouvez initialiser le chemin de chargement aux répertoires /usr/plsql et /home/user en entrant, à partir d'un shell C, la commande suivante :

setenv ORAPLSQLLOADPATH /usr/plsql:/home/user


Ajout d'un répertoire au chemin de chargement

  Rubriques connexes

Pour ajouter un répertoire au chemin de chargement :

Lorsque vous ajoutez un répertoire au chemin de chargement, commencez par choisir dans la liste l'endroit où vous voulez l'insérer. Le système explore les répertoires dans l'ordre dans lequel ils figurent dans la liste.

Vous pouvez éditer directement les paramètres de votre variable d'environnement ou utiliser la commande INSERT (Chemin de chargement) à partir de l'invite de commande de l'Interpréteur pour insérer un chemin au début ou à la fin de la liste.

Par exemple, pour insérer le répertoire C:\bibliothèques à la fin du chemin de chargement en cours :

PL/SQL> .INSERT LOADPATH DIRECTORY C:\libraries

Pour insérer le répertoire C:\bibliothèques au début du chemin de chargement en cours, ajoutez le mot-clé BEFORE :

PL/SQL> .INSERT LOADPATH DIRECTORY C:\libraries BEFORE


Affichage du chemin de chargement

  Rubriques connexes

Pour afficher le chemin de chargement :

Pour afficher les répertoires figurant dans le chemin de chargement, utilisez les fonctions de votre système d'exploitation pour afficher les valeurs des variables d'environnement ou utilisez la commande DESCRIBE (Chemin de chargement) à partir de l'invite de commande de l'Interpréteur :

PL/SQL> .DESCRIBE LOADPATH

Les répertoires du chemin de chargement sont affichés dans l'ordre dans lequel ils sont explorés.


Effacement du chemin de chargement

  Rubriques connexes

Pour effacer le chemin de chargement :

Vous pouvez éditer directement les paramètres de vos variables d'environnement ou utiliser la commande DELETE (Chemin de chargement) à partir de l'invite de commande de l'Interpréteur.

Par exemple, pour supprimer tous les répertoires du chemin de chargement en cours :

PL/SQL> .DELETE LOADPATH


Pour vous assurer que vous êtes déjà connecté à un schéma, vérifiez le noeud Objets de base de données. Si ce dernier est développé ou contient un signe plus, vous êtes déjà connecté.


A propos des scripts de l'Interpréteur

Un script de l'Interpréteur peut contenir toute combinaison de code source PL/SQL, de commandes de l'Interpréteur et d'instructions PL/SQL. Vous pouvez exécuter un script de l'Interpréteur en le chargeant dans Procedure Builder par la commande INTERPRET, ou l'exécuter en mode batch à partir de la ligne de commande.

Dans Procedure Builder, vous pouvez exécuter la plupart des actions en utilisant les menus et les dialogues offerts par l'interface ou les commandes de l'Interpréteur. Les scripts de l'Interpréteur permettent d'enregistrer et de stocker les commandes de l'Interpréteur servant à effectuer des opérations de routine.


A propos des unités de programme dans les scripts

Si vous envisagez d'appeler des unités de programme PL/SQL à partir de votre script, les critères ci-après vous permettront de déterminer la meilleure méthode :

•	Définissez l'unité de programme dans le script, puis appelez-la pour l'exécuter. L'unité de programme est compilée lorsqu'elle est appelée.

•	Définissez et déboguez l'unité de programme dans l'Editeur d'unité de programme, chargez-la dans le script à l'aide de commande LOAD, puis appelez-la. L'unité de programme est compilée lorsqu'elle est chargée.

•	Définissez et déboguez l'unité de programme dans l'Editeur d'unité de programme, puis ajoutez-la à une bibliothèque. Attachez la bibliothèque en utilisant la commande ATTACH, puis appelez l'unité de programme. L'unité de programme est déjà compilée.


Création ou édition d'un script de l'Interpréteur

Pour créer ou éditer un script :

Vous pouvez créer et éditer vos scripts de l'Interpréteur en utilisant tout éditeur qui vous permet d'enregistrer des fichiers sous la forme de texte ASCII. Le suffixe standard des noms de fichier des scripts de l'Interpréteur est .pld.


Exécution d'un script dans l'Interpréteur

Pour exécuter un script de l'Interpréteur dans l'Interpréteur :

1	Choisissez Fichier [image] Interpréter dans le menu pour afficher la boîte de dialogue Interpréteur de script de débogage.

2	Entrez l'emplacement et le nom du script de l'Interpréteur dans la boîte de texte Fichier ou cliquez sur Parcourir pour afficher la boîte de dialogue de fichiers de votre système d'exploitation, dans laquelle vous pouvez parcourir le système de fichiers.

Par défaut, les scripts de l'Interpréteur ont le suffixe de fichier .pld.

3	Sélectionnez la case à cocher Echo pour que les commandes de script soient renvoyées en écho lorsqu'elles sont interprétées.

4	Sélectionnez la case à cocher Silencieux pour supprimer l'écho des messages d'erreur et des commandes dans l'Interpréteur.

5	Sélectionnez la case à cocher Supprimer les confirmations pour supprimer les fenêtres de message de confirmation pendant le traitement des scripts.

6	Cliquez sur Interpréter pour accepter les paramètres et exécuter le script de l'Interpréteur.

Procedure Builder renvoie en écho la commande .INTERPRET FILE nom_de_fichier dans la fenêtre de l'Interpréteur. Le script de l'Interpréteur s'exécute.

Les scripts de l'Interpréteur peuvent contenir toute combinaison de sources d'unités de programme PL/SQL, de commandes Procedure Builder et d'instructions SQL.


Exécution d'un script en mode batch

  Exemple

Pour exécuter un script en mode batch (Microsoft Windows) :

  Cliquez sur Démarrer [image] Exécuter dans la barre de tâches de Windows et saisissez la syntaxe suivante :

  det60 FILE={NomScript.pld}

Remarques :

•	L'exécution de scripts en mode batch à partir de l'invite DOS n'est pas prise en charge.

•	Pour exécuter un script en mode ligne dans Microsoft Windows, sélectionnez Démarrer [image] Programmes [image] Forms Developer6i [image] Procedure Builder - Line Mode dans la barre des tâches Windows.

Pour exécuter un script en mode batch (UNIX) :

 Utilisez la syntaxe suivante :

  debld60 MODE={batch | line} FILE={NomScript.pld}

Utilisez MODE=batch pour exécuter le script en arrière-plan. Sélectionnez MODE=line pour exécuter le script en mode ligne.


Exemple : Exécution d'un script en mode batch

/* Pour conserver un enregistrement permanent de l'exécution
** du script, utilisez dans ce script la commande LOG. Par exemple :
*/

.LOG FILE fichier_journal
...
...
.LOG OFF
.QUIT NOCONFIRM


Création d'un déclencheur de base de données

  Rubriques connexes

Pour créer un déclencheur de base de données :

1	Sélectionnez Programme [image] Editeur de déclencheur de base de données pour afficher l'Editeur.

2	Choisissez le nom d'un utilisateur (schéma) dans la liste déroulante Propriétaire de la table.

3	Sélectionnez Table ou Vue. (Vue est uniquement disponible lorsque vous êtes connecté à une base de données Oracle8.)

4	Choisissez le nom d'une table ou d'une vue dans la liste déroulante Table ou Vue.

5	Cliquez sur Nouveau pour créer un déclencheur de base de données.

Dans la liste déroulante Nom, un nom, unique au sein du schéma concerné, est automatiquement attribué au nouveau déclencheur. Vous pouvez modifier le nom du déclencheur.

6	Configurez l'option Déclenchement :

•	Cliquez sur Avant pour indiquer à Oracle d'activer le déclencheur avant d'exécuter l'instruction de déclenchement. Cette option n'est valide que pour les tables.

•	Cliquez sur Après pour indiquer à Oracle d'activer le déclencheur après avoir exécuté l'instruction de déclenchement. Cette option n'est valide que pour les tables.

•	Cliquez sur A la place de pour indiquer à Oracle d'activer le déclencheur au lieu d'exécuter l'instruction de déclenchement. Cette option n'est valide que pour les vues. Les déclencheurs INSTEAD OF effectuent les opérations de mise à jour, d'ajout ou de suppression directement dans les tables de base de la vue.

7	Indiquez l'instruction SQL de déclenchement activant le déclencheur. (Vous pouvez mentionner plusieurs instructions de déclenchement.)

•	UPDATE : cochez cette case pour qu'Oracle active le déclencheur chaque fois qu'une instruction UPDATE modifie une valeur dans l'une des colonnes indiquées dans la zone de liste Des colonnes.

•	INSERT : cochez cette case pour qu'Oracle active le déclencheur chaque fois qu'une instruction INSERT ajoute une ligne à la table.

•	DELETE : cochez cette case pour qu'Oracle active le déclencheur chaque fois qu'une instruction DELETE supprime une ligne de la table.

8	Si vous sélectionnez UPDATE en tant qu'événement de déclenchement, vous pouvez, si vous le souhaitez, indiquer une liste de colonnes à ajouter à l'instruction de déclenchement.

La liste des noms de colonne de la table où vous définissez le déclencheur apparaît dans la zone de liste Des colonnes. Cliquez sur des colonnes pour indiquer que le déclencheur n'est activé que lorsque l'une quelconque des colonnes sélectionnées est mise à jour.

Pour que le déclencheur soit activé lorsque l'une des colonnes de la table est mise à jour, ne cliquez sur aucun nom de colonne dans la zone de liste.

La zone de liste Des colonnes n'est pas disponible pour les déclencheurs INSTEAD OF. Oracle active les déclencheurs INSTEAD OF chaque fois qu'une instruction UPDATE modifie une valeur dans une colonne de la vue.

9	Pour les déclencheurs BEFORE et AFTER, indiquez si le déclencheur doit être activé pour chaque instruction ou ligne :

•	Cliquez sur Instruction pour qu'Oracle exécute le déclencheur une seule fois au lancement de l'instruction de déclenchement (quel que soit le nombre de lignes concerné), si l'expression SQL facultative figurant dans la zone Lorsque est satisfaite.

•	Cliquez sur Ligne pour qu'Oracle exécute le déclencheur une seule fois pour chaque ligne concernée par l'instruction de déclenchement et remplissant la condition définie par l'expression SQL facultative figurant dans la zone Lorsque.

10	Pour les déclencheurs de ligne, vous pouvez préciser les noms de corrélation comme suit :

•	Dans la zone de texte OLD comme, entrez un nom de corrélation pour éviter tout conflit entre ce dernier et une table du même nom.

•	Dans la zone de texte NEW comme, entrez un nom de corrélation pour éviter tout conflit entre ce dernier et une table du même nom.

11	Pour les déclencheurs de ligne, vous pouvez inclure une restriction en indiquant une expression SQL booléenne dans la zone de texte Lorsque.

Si une restriction de déclencheur est indiquée, Oracle active le déclencheur seulement si l'expression SQL prend la valeur TRUE. L'expression SQL peut contenir plusieurs noms de corrélation faisant explicitement référence aux ancienne et nouvelle valeurs de la ligne actuelle. Elle ne peut pas contenir de sous-interrogation ni d'expression PL/SQL.

12	Entrez les instructions PL/SQL et SQL dans la zone Corps du déclencheur.

Le corps du déclencheur est un bloc PL/SQL qui est exécuté dès que l'instruction de déclenchement est lancée et que la restriction de déclencheur facultative définie dans la zone Lorsque prend la valeur TRUE. Il doit contenir les mots-clés BEGIN et END, et ressemble à une procédure stockée. Un déclencheur peut contenir plusieurs instructions SQL et PL/SQL, et appeler d'autres procédures stockées. Un déclencheur ne peut pas contenir d'instructions SQL de contrôle de transaction, comme COMMIT et ROLLBACK.

Pour les déclencheurs de ligne, vous pouvez ajouter au corps du déclencheur des noms de corrélation faisant explicitement référence aux ancienne et nouvelle valeurs de la ligne actuelle. Si plusieurs instructions de déclenchement activent le déclencheur de ligne, vous pouvez également utiliser les prédicats conditionnels INSERTING, DELETING et UPDATING afin d'exécuter des blocs de code particuliers dans le corps du déclencheur.

13	Cliquez sur Enregistrer pour compiler et enregistrer le déclencheur dans la base de données.

Si un message d'erreur apparaît, cliquez sur OK pour le fermer. Editez le déclencheur, puis effectuez une nouvelle compilation.


Edition d'un déclencheur de base de données

  Rubriques connexes

Pour éditer un déclencheur de base de données :

1	Sélectionnez Programme [image] Editeur de déclencheur de base de données pour afficher l'Editeur.

2	Choisissez l'emplacement et le nom du déclencheur de base de données via les listes déroulantes Propriétaire de la table, Table ou Vue, et Nom.

3	Editez le contenu ou les propriétés du déclencheur de base de données.

4	Cliquez sur Enregistrer pour enregistrer les modifications apportées au déclencheur.

Si un message d'erreur apparaît, cliquez sur OK pour le fermer. Editez le déclencheur, puis effectuez une nouvelle compilation.


Désactivation d'un déclencheur de base de données

Pour désactiver un déclencheur de base de données :

1	Dans le Navigateur d'objet, cliquez sur le déclencheur de base de données.

2	Choisissez l'option Désactiver du menu instantané ou la commande Navigateur [image] Désactiver du menu pour désactiver temporairement le déclencheur sélectionné.

Dans le Navigateur d'objet, un astérisque indiquant le statut du déclencheur de base de données (désactivé) apparaît à côté du nom de ce dernier.


Activation d'un déclencheur de base de données

Pour activer un déclencheur de base de données :

1	Dans le Navigateur d'objet, cliquez sur le déclencheur de base de données.

2	Choisissez l'option Activer du menu instantané ou la commande Navigateur [image] Activer du menu pour activer le déclencheur de base de données désactivé.

Dans le Navigateur d'objet, l'astérisque indiquant le statut du déclencheur de base de données n'apparaît plus à côté du nom de ce dernier, ce qui indique que le déclencheur a été réactivé.


Suppression d'un déclencheur de base de données

Pour supprimer un déclencheur de base de données :

1	Sélectionnez Programme [image] Editeur de déclencheur de base de données pour afficher l'Editeur.

2	Choisissez le déclencheur de base de données via les listes déroulantes Propriétaire de la table, Table ou Vue, et Nom.

3	Cliquez sur Eliminer afin de supprimer le déclencheur de la base de données.


A propos des bibliothèques dynamiques

Les bibliothèques L3G doivent normalement être regroupées au sein d'un fichier exécutable unique pour appeler les fonctions qu'elles contiennent. Cependant, lorsqu'une bibliothèque est dynamique, elle peut exister en tant que fichier autonome auquel un exécutable peut faire référence. Les noms de ces bibliothèques diffèrent selon les plates-formes. Par exemple, sous Microsoft Windows, elles sont appelées « DLL » (Dynamic Link Libraries ou bibliothèques de liens dynamiques) ; sous UNIX, elles sont souvent appelées « bibliothèques partagées ».

Procedure Builder vous permet d'appeler les fonctions des bibliothèques dynamiques à partir de PL/SQL.


A propos de l'interface de fonctions étrangères

  Rubriques connexes

Au départ, les routines L3G d'une bibliothèque dynamique sont inconnues de PL/SQL et sont donc appelées fonctions étrangères. Procedure Builder offre une interface PL/SQL permettant d'appeler ces fonctions. Cette interface est le package PL/SQL ORA_FFI.

Le package ORA_FFI contient les éléments PL/SQL suivants :

Sous-programmes	Fournissent à votre application des informations relatives à l'emplacement et à la définition des fonctions que vous avez l'intention d'appeler.
Types de données	Contiennent des informations relatives à l'état et à la structure des fonctions définies.
Constantes	Sont utilisées comme arguments des sous-programmes dans le package ORA_FFI.
Remarque : L'interface de fonctions étrangères prend en charge les bibliothèques dynamiques qui utilisent les standards d'appel Pascal ou C. Les arguments en virgule flottante doivent être convertis en double précision. Si vous devez utiliser des déclarations ANSI, n'utilisez que des doubles avec votre code. Pour plus d'informations, reportez-vous à la documentation relative à votre compilateur.


Initialisation d'une fonction étrangère

  Exemples	  Rubriques connexes

Pour initialiser un fonction étrangère :

1	Chargez la bibliothèque

2	Inscrivez les fonctions étrangères dans la base de registres

3	Inscrivez les paramètres (le cas échéant) dans la base de registres

4	Inscrivez le type de retour (le cas échéant) dans la base de registres


Chargement de la bibliothèque

  Exemples	  Etape suivante

Pour charger la bibliothèque :

 Pour pouvoir appeler une fonction stockée dans une bibliothèque dynamique, vous devez charger la bibliothèque dans votre application. Pour cela, utilisez la fonction Ora_Ffi.Load_Library.

Par exemple, pour charger la bibliothèque mabibl.dll, qui se trouve dans le répertoire C:\utils\bibl, utilisez l'instruction suivante :

lib_handle := Ora_Ffi.Load_Library('C:\utils\bibl\',
                                   'mabibl.dll');

Remarque : Lorsque vous indiquez un emplacement de bibliothèque, n'oubliez pas de le terminer par une barre oblique inverse (sous Microsoft Windows). Sur les plates-formes UNIX, vous devez terminer le chemin d'accès au répertoire par une barre oblique normale.

Ora_Ffi.Load_Library est une fonction qui retourne un identificateur (c'est-à-dire un pointeur) à la bibliothèque indiquée. Cet identificateur, de type Ora_Ffi.Libhandletype, peut être utilisé dans d'autres éléments ORA_FFI pour identifier cette bibliothèque de manière unique.


Inscription de la fonction étrangère dans la base de registres

  Exemples	   Etape suivante

Pour inscrire la fonction étrangère dans la base de registres :

 Lorsque vous avez chargé une bibliothèque, vous devez inscrire dans la base de registres chacune de ses fonctions que vous avez l'intention d'appeler. Cette opération indique à votre application dans quelle bibliothèque se trouve la fonction appelée et le standard d'appel (C ou Pascal) utilisé par la fonction. Pour fournir ces informations, utilisez Ora_Ffi.Register_Function.

Par exemple, pour inscrire dans la base de registres la fonction étrangère mafonc, définie dans la bibliothèque indiquée par lib_handle, utilisez l'instruction suivante :

ff_handle := Ora_Ffi.Register_Function(lib_handle,
                                       'mafonc');

Ora_Ffi.Register_Function est une fonction qui retourne un identificateur (c'est-à-dire un pointeur) à la fonction étrangère. Cet identificateur, de type Ora_Ffi.Funchandletype, peut alors être utilisé dans d'autres éléments ORA_FFI pour identifier cette fonction étrangère de manière unique.


Inscription des paramètres dans la base de registres

  Exemples	   Etape suivante

Pour inscrire des paramètres dans la base de registres :

Si la fonction étrangère accepte des arguments, vous devez les inscrire dans la base de registres de votre application, de façon à indiquer à votre application comment établir la correspondance entre le type de données PL/SQL de chaque argument et un type de données en C. Utilisez la procédure Ora_Ffi.Register_Parameter pour fournir ces informations.

L'ordre dans lequel vous inscrivez les arguments doit correspondre à celui dans lequel ils figurent dans la définition de la fonction C.

Prenons, par exemple, la définition de fonction C suivante :

void show_error(int errnum, char *errmsg)

Si la variable ff_handle est un pointeur vers cette fonction étrangère inscrite, les instructions qui inscrivent les deux arguments de la fonction sont les suivantes :

Ora_Ffi.Register_Parameter(ff_handle, Ora_Ffi.C_Int);
Ora_Ffi.Register_Parameter(ff_handle, Ora_Ffi.C_Char_Ptr);


Inscription d'une valeur de retour dans la base de registres

  Exemples

Pour inscrire une valeur de retour dans la base de registres :

 Si le type de retour de la fonction étrangère est autre que le type C void, vous devez l'inscrire dans la base de registres de votre application. Pour cela, utilisez la procédure Ora_Ffi.Register_Return.

Prenons, par exemple, la définition de fonction C suivante :

int to_power(int x, float y)

Si la variable ff_handle est un pointeur vers cette fonction étrangère inscrite, l'instruction qui inscrit le type de retour de la fonction est la suivante :

Ora_Ffi.Register_Return(ff_handle, Ora_Ffi.C_Int);


Création d'une interface PL/SQL pour une fonction étrangère

  Exemples	  Rubriques connexes

Pour créer une interface PL/SQL pour une fonction étrangère :

1	Associez un sous-programme à la fonction étrangère

2	Simulez la définition de fonction étrangère dans la spécification de sous-programme

Dans vos unités de programme PL/SQL, vous ne pouvez appeler que d'autres éléments PL/SQL. Vous devez donc créer un sous-programme PL/SQL qui sait communiquer avec les bibliothèques dynamiques. Lorsque vous voulez appeler la fonction étrangère, vous appelez en fait non la fonction étrangère, mais ce sous-programme.


Association d'un sous-programme à une fonction étrangère

  Exemples	   Etape suivante

Pour associer un sous-programme à une fonction étrangère :

 Un sous-programme qui appelle une fonction étrangère doit avoir au moins un paramètre, et le premier paramètre doit être un pointeur à cette fonction étrangère. Pour obtenir un pointeur vers une fonction étrangère, utilisez les fonctions ORA_FFI suivantes :

•	Ora_Ffi.Find_Function

•	Ora_Ffi.Register_Function

Exemple de sous-programme PL/SQL qui appelle une fonction étrangère :

PROCEDURE sp_name(ff_handle Ora_Ffi.Funchandletype);
  PRAGMA interface(C, sp_name, 11265);

Dans cet exemple, ff_handle est un pointeur vers la fonction étrangère et sp_name est le nom du sous-programme. Lorsque vous appelez cette procédure, l'instruction PRAGMA passe le contrôle à un emplacement de mémoire de votre produit Oracle qui sait communiquer avec les bibliothèques dynamiques.

Important : L'instruction PRAGMA doit apparaître dans le corps du sous-programme exactement comme indiqué ci-dessus, sauf en ce qui concerne le nom du sous-programme. Exemple Ora_Ffi 1A définit le sous-programme mathlib. Celui-ci comprend une instruction PRAGMA permettant d'appeler la fonction C nommée pow, qui élève un nombre de façon à ce qu'il atteigne la puissance indiquée.

Remarque : La fonction Ora_Ffi.Generate_Foreign génère automatiquement un package de code PL/SQL, comprenant toutes les instructions PRAGMA nécessaires, pour toutes les fonctions étrangères définies dans la bibliothèque dynamique indiquée. L'exemple Ora_Ffi 1B utilise la fonction Ora_Ffi.Generate_Foreign, au lieu d'une instruction PRAGMA, pour définir le sous-programme mathlib, qui appelle en retour la fonction C nommée pow pour élever un nombre à la puissance indiquée.


Simulation d'une définition de fonction étrangère

  Exemples	  Rubriques connexes

Pour simuler la définition d'une fonction étrangère :

 Le sous-programme que vous définissez a une correspondance directe avec une fonction étrangère et doit donc simuler la définition de cette fonction. Prenons, par exemple, la définition d'une fonction C dans une bibliothèque dynamique :

float tax(float amt, float rate)

Pour que cette fonction étrangère corresponde à un sous-programme PL/SQL, vous devez créer une fonction PL/SQL ayant deux paramètres NUMBER et un type de retour NUMBER :

FUNCTION ffi_tax(ff_handle Ora_Ffi.FUNCHANDLETYPE,
                 x NUMBER, y NUMBER)
  RETURN NUMBER;
  PRAGMA interface(C, ffi_tax, tax, 11265);

Autre exemple : soit la définition de fonction C suivante :

void show_message(char *msg)

Comme cette fonction C ne retourne pas de valeur, vous devez l'associer à une procédure PL/SQL qui accepte un paramètre VARCHAR2 :

PROCEDURE ffi_show_message(ff_handle Ora_Ffi.FUNCHANDLETYPE,
                           msg IN OUT VARCHAR2);
  PRAGMA interface(C, ffi_show_message, show_message, 11265);

N'oubliez pas que le pointeur vers la fonction étrangère doit être le premier paramètre que vous transmettez au sous-programme.


Conversion de types C en PL/SQL

Pour convertir des types C en PL/SQL :

 La définition de paramètre ou le type de retour du sous-programme PL/SQL dépend du type de données C correspondant. Le tableau ci-dessous indique la relation entre un type de données C et son type de retour ou sa définition de paramètre PL/SQL correspondante :

Type de données C	Paramètre PL/SQL	Type de retour PL/SQL
char	IN VARCHAR2	VARCHAR2
char *	IN OUT VARCHAR2	VARCHAR2
double	IN NUMBER	NUMBER
double *	IN OUT NUMBER	NUMBER
float	IN NUMBER	NUMBER
float *	IN OUT NUMBER	NUMBER
int	IN PLS_INTEGER	PLS_INTEGER
int *	IN OUT PLS_INTEGER	PLS_INTEGER
long int	IN PLS_INTEGER	PLS_INTEGER
long int *	IN OUT PLS_INTEGER	PLS_INTEGER
short	IN PLS_INTEGER	PLS_INTEGER
short *	IN OUT PLS_INTEGER	PLS_INTEGER
void *	IN OUT Ora_Ffi.Pointertype	Ora_Ffi.Pointertype


Ora_Ffi - Exemple 1A

  Rubriques connexes

Voici un exemple de fonction C d'une bibliothèque dynamique intitulée mathlib et des éléments PL/SQL utilisés pour l'appeler dans Procedure Builder.

Remarque : Pour simplifier l'inscription dans la base de registres et la gestion des fonctions étrangères, nous vous conseillons de mettre dans un package PL/SQL tous les éléments PL/SQL concernant une bibliothèque. Cette solution vous permet de créer des programmes simplifiés qui ne demandent pas que vous leur transmettiez des pointeurs de fonction étrangère chaque fois que vous les appelez.

Supposons que vous vouliez créer une interface avec la fonction C pow, qui se trouve dans la bibliothèque d'exécution de Microsoft Windows, C:\windows\system\msvcrt.dll. (La fonction pow élève x à la puissance y.)

int pow(int x, int y)

Commencez par créer une spécification de package qui représente la bibliothèque et définit la fonction PL/SQL que vous voulez appeler :

PACKAGE mathlib IS
   FUNCTION pow(x NUMBER, y NUMBER)
     RETURN NUMBER;
END;

Appelez la fonction PL/SQL mathlib.pow, définie ci-dessus, pour appeler la fonction étrangère, pow, depuis la bibliothèque dynamique msvcrt.dll.

Notez que ce sous-programme ne demande pas de pointeur vers la fonction étrangère ou vers la bibliothèque. Pour des raisons pratiques, les différentes inscriptions sont gérées dans le corps du package défini ci-dessous.

Remarque : Cet exemple utilise une instruction de compilation PRAGMA pour indiquer au compilateur PL/SQL que la fonction ff_to_power doit en fait être compilée en tant que fonction C, plutôt que PL/SQL. L'exemple Ora_Ffi 1B montre comment obtenir ce même résultat avec la fonction Ora_Ffi.Generate_Foreign, afin de générer un package PL/SQL mathlib. Dans l'exemple 1B, l'instruction PRAGMA est automatiquement gérée par la fonction Ora_Ffi.Generate_Foreign.

PACKAGE BODY mathlib IS
  /* Déclarer la bibliothèque et les pointeurs de. */
  /* fonction.                                     */
  mathlib_lhandle   Ora_Ffi.Libhandletype;
  to_power_fhandle  Ora_Ffi.Funchandletype;

  /* Créer la fonction PL/SQL qui va réellement    */
  /* appeler la fonction étrangère.                */
  FUNCTION ff_to_power(fhandle Ora_Ffi.Funchandletype,
         x NUMBER, y NUMBER)RETURN NUMBER;
  PRAGMA interface(C, ff_to_power, 11265);

  /* Créer la fonction PL/SQL qui est définie dans */
  /* la spécification de package. Cette fonction   */
  /* transmet simplement les arguments qu'elle     */
  /* reçoit à ff_to_power (définie ci-dessus), en  */
  /* ajoutant le pointeur de la fonction étrangère */
  /* à la liste d'arguments. */
  FUNCTION pow(x NUMBER, y NUMBER) RETURN NUMBER IS
  BEGIN
    RETURN(ff_to_power(to_power_fhandle, x, y));
  END pow;

  /* Définir le corps du package mathlib        */
BEGIN

  /* Charger la bibliothèque.                      */
  mathlib_lhandle := Ora_Ffi.Load_Library
         ('C:\WINDOWS\SYSTEM\', 'msvcrt.dll');

  /* Inscrire la fonction étrangère dans la base  */
  /* de registres.                                 */
  to_power_fhandle := Ora_Ffi.Register_Function
         (mathlib_lhandle, 'pow', Ora_Ffi.C_Std);

  /* Inscrire les deux paramètres de la fonction  */
  /* to_power dans la base de registres.           */
  Ora_Ffi.Register_Parameter (to_power_fhandle,
                             Ora_Ffi.C_DOUBLE);
  Ora_Ffi.Register_Parameter(to_power_fhandle,
                             Ora_Ffi.C_DOUBLE);

  /* Inscrire le type de retour dans la base de   */
  /* registres.                                    */
  Ora_Ffi.Register_Return (to_power_fhandle, Ora_Ffi.C_DOUBLE);

END;  /* Corps du package Mathlib */

Pour appeler la fonction C pow depuis mscvrt.dll, il vous suffit d'appeler la fonction PL/SQL pow définie dans la spécification de package mathlib. Par exemple :

PL/SQL>

PROCEDURE raise_to_power (a in number, b in number) IS
   BEGIN
      text_io.put_line(mathlib.pow(a,b));
   END;

PL/SQL> raise_to_power(2,9);

512


Exemple Ora_Ffi 1B

  Rubriques connexes

Voici une autre méthode permettant de mettre en oeuvre la fonction C pow, décrite dans Exemple Ora_Ffi 1A. Cet exemple utilise la fonction Ora_Ffi.Generate_Foreign pour générer un package PL/SQL. L'instruction de compilation PRAGMA, nécessaire pour la compilation de la fonction étrangère C, est automatiquement incluse dans le package généré ; elle n'est donc pas utilisée dans le corps de package ci-dessous.

/* Créer le package mathlib qui va générer un package
PL/SQL grâce à une fonction en C issu d'un fichier
étranger pour élever un nombre à une puissance.
Le paramètre pkg_name vous permet de préciser
le nom du package généré. */
PACKAGE mathgen IS
   PROCEDURE gen(pkg_name IN VARCHAR2);
END;

PACKAGE BODY mathgen IS
   /* Définir la procédure 'gen' qui va
      générer le package de fichier étranger. */
   PROCEDURE gen(pkg_name IN VARCHAR2) IS
      /* Déclarer la bibliothèque et les pointeurs
         de fonction. */
      mathlib_lhandle   Ora_Ffi.Libhandletype ;
      to_power_fhandle  Ora_Ffi.Funchandletype ;

   BEGIN   /* corps du package mathlib */
      /* Charger la bibliothèque. */
      mathlib_lhandle := Ora_Ffi.Load_Library
         ('C:\WINDOWS\SYSTEM\', 'msvcrt.dll');

      /* Inscrire la fonction étrangère dans la
         base de registres. */
      to_power_fhandle := Ora_Ffi.Register_Function
         (mathlib_lhandle, 'pow', Ora_Ffi.C_Std);

      /* Inscrire les deux paramètres de la
         fonction étrangère dans la base de
         registres. */
      Ora_Ffi.Register_Parameter (to_power_fhandle,
                             Ora_Ffi.C_DOUBLE);
      Ora_Ffi.Register_Parameter(to_power_fhandle,
                             Ora_Ffi.C_DOUBLE);

      /* Inscrire le type de retour de la
         fonction étrangère dans la base de
         registres. */
      Ora_Ffi.Register_Return (to_power_fhandle, Ora_Ffi.C_DOUBLE);

      /* Générer un package PL/SQL contenant la
         fonction C étrangère, 'pow.' Vous pouvez
         donner un nom au nouveau package en précisant
         une valeur pour le paramètre, pkg_name,
         lorsque vous générez ce package. */
      Ora_Ffi.generate_foreign(mathlib_lhandle, pkg_name);

   END; /* Procédure gen */
END; /* Corps du package mathgen */

Pour élever un nombre à une puissance avec cette méthode, vous devez d'abord générer un package PL/SQL à l'aide du package mathgen et de la procédure gen. Par exemple, si le package de puissance PL/SQL généré doit être appelé mathlib, vous devez le générer de la façon indiquée ci-après :

PL/SQL> mathgen.gen('mathlib');

Ensuite, pour appeler la fonction de puissance du package mathlib, vous pouvez écrire une procédure du type de celle indiquée ci-après :

PROCEDURE raise_to_power (a in number, b in number) IS
   BEGIN
      text_io.put_line(mathlib.pow(a,b));
   END;

PL/SQL> raise_to_power(5,2);

25


Exemple Ora_Ffi 2

  Rubriques connexes

Voici un exemple de fonctions C d'affichage d'image dans une bibliothèque dynamique d'images et des éléments PL/SQL utilisés pour les appeler dans Procedure Builder.

Remarque : Pour simplifier l'inscription dans la base de registres et la gestion des fonctions étrangères, nous vous conseillons de mettre dans un package PL/SQL tous les éléments PL/SQL concernant une bibliothèque. Cette solution vous permet de créer des programmes simplifiés qui ne demandent pas que vous leur transmettiez des pointeurs de fonction étrangère chaque fois que vous les appelez.

Supposons que vous vouliez créer une interface avec les fonctions C décrites ci-après qui se trouvent dans la bibliothèque C:\oralibs\imglib.dll:

void *get_image(char *imgkey)
void show_image(void *binimage, float iscale)

Supposons que la fonction get_image utilise un argument à mot-clé pour charger les données de l'image, puis retourne un pointeur générique (c'est-à-dire un pointeur de type non spécifié) à ces données binaires. Vous transmettez alors le pointeur et un facteur d'échelle à show_image, qui affiche l'image à l'écran.

Commencez par créer une spécification de package qui représente la bibliothèque et définit les fonctions PL/SQL que vous voulez appeler :

PACKAGE imglib IS
  FUNCTION get_image(ikey IN OUT VARCHAR2)
    RETURN Ora_Ffi.Pointertype;

  PROCEDURE show_image(idata IN OUT Ora_Ffi.POINTERTYPE,
                       iscale NUMBER);
END;   /* package imglib */

Le corps du package est défini de la manière suivante :

PACKAGE BODY imglib IS
  /* Déclarer la bibliothèque et les pointeurs
     de fonction. */
  imglib_lhandle      Ora_Ffi.Libhandletype;
  get_image_fhandle   Ora_Ffi.Funchandletype;
  show_image_fhandle  Ora_Ffi.Funchandletype;

  /* Créer la fonction PL/SQL qui appellera */
  /* la fonction étrangère 'get_image'.       */
  FUNCTION ff_get_image(fhandle Ora_Ffi.FUNCHANDLETYPE,
                        ikey IN OUT VARCHAR2)
    RETURN Ora_Ffi.Pointertype;
    PRAGMA interface(C, ff_get_image, 11265);

  /* Créer la fonction PL/SQL 'get_image' qui est */
  /* définie dans la spécification de package. */
  FUNCTION get_image(ikey IN OUT VARCHAR2)
    RETURN Ora_Ffi.Pointertype IS
  BEGIN
    RETURN(ff_get_image(get_image_fhandle, ikey));
  END;   /* fonction get_image */

  /* Créer la procédure PL/SQL qui */
  /* appellera la fonction étrangère 'show_image'. */
  PROCEDURE ff_show_image(fhandle Ora_Ffi.FUNCHANDLETYPE,
                          idata IN OUT Ora_Ffi.POINTERTYPE,
                          iscale NUMBER);
    PRAGMA interface(C, ff_show_image, 11265);

  /* Créer la procédure PL/SQL 'show_image' qui est */
  /* définie dans la spécification de package. */
  PROCEDURE show_image(idata IN OUT Ora_Ffi.POINTERTYPE,
                       iscale NUMBER) IS
  BEGIN
    ff_show_image(show_image_fhandle, idata, iscale);
  END;   /* procédure show_image */

BEGIN   /* corps du package imglib */

  /* Charger la bibliothèque. */
  imglib_lhandle := Ora_Ffi.Load_Library
         ('C:\oralibs\', 'imglib.dll');

  /* Inscrire les fonctions étrangères dans la */
  /* base de registres. */
  get_image_fhandle := Ora_Ffi.Register_Function
         (imglib_lhandle, 'get_image', Ora_Ffi.C_Std);
  show_image_fhandle := Ora_Ffi.Register_Function
         (imglib_lhandle, 'show_image', Ora_Ffi.C_Std);

  /* Inscrire les paramètres dans la base de registres. */
  Ora_Ffi.Register_Parameter(get_image_fhandle,
                            Ora_Ffi.C_Char_Ptr);

  Ora_Ffi.Register_Parameter(show_image_fhandle,
                             Ora_Ffi.C_Void_Ptr);
  Ora_Ffi.Register_Parameter(show_image_fhandle,
                             Ora_Ffi.C_Float);

  /* Inscrire le type de retour dans la base */
  /* de registres ('get_image' seulement). */
  Ora_Ffi.Register_Return(get_image_fhandle,
                          Ora_Ffi.C_Void_Ptr);

END;   /* corps du package imglib */

Pour appeler les fonctions étrangères, appelez les procédures PL/SQL définies dans la spécification de package, comme dans l'exemple suivant :

PROCEDURE display_image(keywrd IN OUT VARCHAR2) IS
  img_ptr  Ora_Ffi.Pointertype;
BEGIN
  img_ptr := imglib.get_image(keywrd);
  imglib.show_image(img_ptr, 2);
END;   /* procédure display_image */


ORA_FFI - Exemples

1.  Appel d'une fonction C à partir de la bibliothèque dynamique mathlib

•	utilisation explicite d'une instruction de compilateur PRAGMA

•	utilisation de la fonction Ora_Ffi.Generate_Foreign

2.  Appel d'une fonction C à partir d'une bibliothèque dynamique d'images


A propos de la journalisation

  Rubriques connexes

Procedure Builder permet de garder la trace des entrées et des sorties de l'Interpréteur. Lorsque la journalisation est activée, les commandes entrées dans l'Interpréteur - et les messages résultants fournis en sortie par l'Interpréteur - sont ajoutés ou écrits dans un fichier journal jusqu'à ce que vous interrompiez ou arrêtiez la journalisation.

Action	Boîte de dialogue	Accès
Créer un nouveau fichier journal	Journalisation d'interpréteur	Fichier [image] Journal
Ajouter la journalisation à un fichier	Journalisation d'interpréteur	Fichier [image] Journal
Désactiver la journalisation	Journalisation d'interpréteur ou Journalisation d'interpréteur PL/SQL	Fichier [image] Journal ou Vue [image] Journalisation d'interpréteur
Activer la journalisation	Journalisation d'interpréteur ou Journalisation d'interpréteur PL/SQL	Fichier [image] Journal ou Vue [image] Journalisation d'interpréteur
Arrêter la journalisation	Journal interpréteur PL/SQL	Afficher [image] Journal interpréteur
Afficher le fichier journal	Journal interpréteur PL/SQL	Afficher [image] Journal interpréteur


Création d'un nouveau fichier journal

  Rubriques connexes

Pour créer un nouveau fichier journal :

1	Choisissez Fichier [image] Journal pour afficher la boîte de dialogue Journalisation d'interpréteur.

2	Entrez un chemin d'accès et un nom de fichier dans la zone de texte Fichier ou cliquez sur Rechercher pour afficher la boîte de dialogue de sélection de fichiers de votre système d'exploitation, où vous disposez d'une option Parcourir.

Les fichiers journal de l'Interpréteur ont, par défaut, le suffixe log.

3	Cliquez sur OK pour commencer à enregistrer l'entrée et la sortie de l'Interpréteur dans le fichier journal choisi.

La commande suivante est renvoyée en écho à l'Interpréteur :

PL/SQL> .LOG FILE nom_de_fichier
Log output file set to nom_de_fichier
PL/SQL>


Ajout de journalisation à un fichier existant

  Rubriques connexes

Pour ajouter une journalisation à un fichier existant :

1	Choisissez Fichier [image] Journal pour afficher la boîte de dialogue Journalisation d'interpréteur.

2	Entrez le chemin d'accès et le nom du fichier journal dans la zone de texte Fichier ou cliquez sur Rechercher pour afficher la boîte de dialogue de sélection des fichiers de votre système d'exploitation, où vous disposez d'une option Parcourir.

3	Cochez la case Annexer.

4	Cliquez sur OK pour valider vos modifications et fermer la boîte de dialogue Journalisation d'interpréteur.

La commande suivante est renvoyée en écho à l'Interpréteur :

PL/SQL> .LOG FILE nom_de_fichier APPEND
Log output file set to nom_de_fichier
PL/SQL>


Désactivation de la journalisation

  Rubriques connexes

Pour désactiver la journalisation :

1	Choisissez Fichier [image] Journal pour afficher la boîte de dialogue Journalisation d'interpréteur.

2	Cochez la case Désactivé.

3	Cliquez sur OK pour valider vos modifications et fermer la boîte de dialogue Journalisation d'interpréteur.

La commande suivante est renvoyée en écho à l'Interpréteur :

PL/SQL> .DISABLE LOGGING
Logging disabled.
PL/SQL>


Activation de la journalisation

  Rubriques connexes

Pour activer la journalisation :

1	Choisissez Fichier [image] Journal pour afficher la boîte de dialogue Journalisation d'interpréteur.

2	Désactivez la case à cocher Désactivé.

3	Cliquez sur OK pour valider vos modifications et fermer la boîte de dialogue Journalisation d'interpréteur.

La commande suivante est renvoyée en écho à l'Interpréteur :

PL/SQL> .ENABLE LOGGING
Logging enabled.
PL/SQL>


Affichage du fichier journal

Pour afficher le fichier journal :

1	Si le menu Affichage n'est pas affiché, cliquez sur la fenêtre Interpréteur pour l'activer.

2	Choisissez Affichage [image] Journal interpréteur pour afficher la boîte de dialogue Journal interpréteur PL/SQL.

A partir de cette boîte de dialogue, vous pouvez afficher le contenu du fichier journal en cours, désactiver la journalisation, la suspendre momentanément ou l'activer.


Fin de la journalisation

Pour mettre fin à la journalisation:

1	Si le menu Affichage n'est pas affiché, cliquez sur la fenêtre Interpréteur pour l'activer.

2	Choisissez Affichage [image] Journal interpréteur pour afficher la boîte de dialogue Journal interpréteur PL/SQL.

3	Cliquez sur Fermer pour mettre fin à la journalisation dans le fichier en cours et fermer la boîte de dialogue.

La commande suivante est renvoyée en écho à l'Interpréteur :

PL/SQL> .LOG OFF
Logging has been turned off.
PL/SQL>


A propos des actions de débogage

La création d'actions de débogage dans des unités de programme compilées permet de localiser et de supprimer les erreurs d'exécution. La plupart des actions de débogage sont effectuées dans l'Interpréteur PL/SQL et dans le Navigateur d'objet.

Les deux principaux types d'action de débogage sont les suivants :

•	points d'interruption

•	déclencheurs de débogage

Les termes utilisés dans ce contexte sont les suivants :

•	lignes source exécutables

•	emplacement source

•	emplacement de travail en cours

•	emplacement d'exécution en cours


A propos des points d'interruption

  Rubriques connexes

Le point d'interruption est l'action de débogage la plus courante. Lorsque vous exécutez une unité de programme contenant un point d'interruption, l'exécution s'interrompt au début de la ligne qui contient le point d'interruption. Dès que l'unité de programme est interrompue, le contrôle passe à l'Interpréteur. A ce stade, vous pouvez exécuter pas à pas le reste du code de l'unité de programme et consulter ou modifier au fur et à mesure les valeurs des variables locales.

Vous pouvez aussi définir un "déclencheur d'interruption" pour un point d'interruption, c'est-à-dire un bloc PL/SQL qui s'exécute chaque fois que le point d'interruption est atteint. Plusieurs packages intégrés peuvent être utilisés dans les déclencheurs d'interruption.


A propos des déclencheurs de débogage

  Exemple

Les déclencheurs de débogage sont une forme plus générale d'action de débogage. Un déclencheur de débogage associe un bloc arbitraire de code PL/SQL à une ligne source exécutable spécifique d'une unité de programme. Les déclencheurs de débogage peuvent être extrêmement coûteux et ne doivent être utilisés que rarement.

Procedure Builder exécute un déclencheur de débogage juste avant d'atteindre la ligne qui contient le déclencheur de débogage. Vous pouvez demander l'activation d'un déclencheur de débogage dans les cas suivants :

•	lorsqu'une ligne spécifique d'une unité de programme est atteinte (par exemple, l'emplacement source en cours, ligne 5, ligne 23, etc.) ;

•	chaque fois que l'Interpréteur prend le contrôle (c'est-à-dire chaque fois que le programme rencontre un point d'interruption, une commande d'exécution pas à pas, etc.) ;

•	chaque fois qu'une ligne source PL/SQL est exécutée.

Les déclencheurs de débogage sont particulièrement utiles comme points d'interruption conditionnels. Vous pouvez générer l'exception Debug.Break dans la logique de contrôle arbitrairement complexe du corps du déclencheur. Par exemple, le déclencheur de débogage ci-dessous crée à la ligne 10 de ma_proc un point d'interruption conditionnel, qui ne sera atteint que si la variable locale NUMBER mon_sal est supérieure à 5000 :

PL/SQL> .TRIGGER PROC my_proc LINE 10 IS
     +> IF Debug.Getn('my_sal') > 5000 THEN
     +>   RAISE Debug.Break;
     +> END IF;


A propos des lignes source exécutables

Les actions de débogage doivent être attachées à des lignes source d'unité de programme "exécutables". Une ligne source est considérée comme exécutable si elle contient une ou plusieurs instructions pour lesquelles le compilateur PL/SQL génère du code. Par exemple, les lignes source contenant des instructions d'affectation et des appels de procédure sont exécutables, alors que celles qui contiennent des commentaires, des lignes vierges, des déclarations ou l'instruction NULL ne le sont pas.


A propos de l'emplacement source

L'emplacement source correspond à l'emplacement du curseur dans la fenêtre Source de l'Interpréteur. De nombreuses commandes de Procedure Builder permettent d'indiquer l'emplacement source comme cible de la commande. Dans la syntaxe de la commande, l'emplacement source est identifié par le point ou le mot-clé point (.).

Par exemple, pour créer un point d'interruption à l'emplacement source en cours, tapez la commande :

PL/SQL> .BREAK .


A propos de la pile d'appels

La pile d'appels représente la chaîne des appels de sous-programmes entre le point d'entrée initial et le sous-programme en cours d'exécution. Par exemple, si la procédure A appelle la procédure B qui appelle la procédure C, alors qu'une instruction de la procédure C est en cours d'exécution, la chaîne des appels en cours se présente de la manière suivante :

[0] Corps de procédure A Ligne n[1] Corps de procédure B Ligne n[2] Corps de procédure C Ligne n.

Chaque appel de sous-programme est représenté par une trame sur la pile d'appels. Une trame contient des informations sur l'appel de sous-programme correspondant : son nom, les valeurs des paramètres réels, les valeurs des variables locales et la prochaine instruction à exécuter.

Procedure Builder utilise le modèle standard de débogage d'une pile croissant par le bas, dans lequel les derniers programmes entrés sont ajoutés au bas de la pile. La première trame, qui correspond au point d'entrée initial du programme, se trouve donc en haut de la pile, tandis que la dernière, associée à l'appel de sous-programme le plus imbriqué, se trouve au bas de la pile.

Les trames de pile sont numérotées de 0 à N. La trame 0 est en haut de la pile, et la trame N, au bas de la pile. La trame 0 correspond donc au point d'entrée initial, et la trame N au sous-programme en cours d'exécution.

Le noeud Pile dans le Navigateur d'objet est automatiquement développé si une unité de programme en cours d'exécution est suspendue par une action de débogage. Chaque sous-noeud du noeud Pile correspond à une trame de la pile d'appels, et est numéroté en conséquence.


A propos de l'emplacement de travail en cours

L'emplacement de travail en cours est l'endroit où Procedure Builder cherche les paramètres et les variables locales. Il correspond à l'emplacement d'exécution de l'un des sous-programmes PL/SQL de la pile d'appels.

Chaque fois que l'exécution d'une unité de programme est interrompue (par exemple, par une action de débogage), l'emplacement de travail est initialisé à l'emplacement d'exécution du sous-programme du bas de la pile d'appels. Une fois l'exécution interrompue, vous pouvez remplacer l'emplacement de travail en cours par une autre trame de la pile d'appels, ce qui vous permet d'afficher des variables locales d'autres sous-programmes de la pile.


A propos des niveaux de débogage

Lorsqu'une action de débogage interrompt l'exécution d'un programme, l'Interpréteur prend le contrôle et crée ce que l'on appelle un niveau de débogage. A un niveau de débogage, vous pouvez entrer des commandes et des instructions PL/SQL pour connaître et modifier l'état de l'unité de programme interrompue et en reprendre l'exécution.

Comme tout code PL/SQL entré de manière interactive ou détecté à un niveau de débogage peut lui-même être interrompu (par exemple, par un autre point d'interruption), il est possible d'imbriquer des niveaux de débogage. Pour éviter toute confusion, les niveaux sont numérotés à partir de zéro (niveau le moins imbriqué).

En général, le niveau 0 (qui correspond à l'imbrication la plus faible) est appelé niveau supérieur et n'est pas explicitement numéroté. Aucun état de programme n'y est associé, puisque c'est le niveau à partir duquel les unités de programme sont appelées à l'origine. L'interruption du code appelé à partir du niveau supérieur crée le niveau de débogage 1, l'interruption du code appelé à partir du niveau de débogage 1 crée le niveau 2, et ainsi de suite.

L'invite de l'Interpréteur indique le niveau de débogage en cours. Lorsque l'Interpréteur passe à un niveau inférieur au niveau supérieur, l'invite comporte un préfixe qui indique le numéro de débogage en cours. Par exemple, l'invite de l'Interpréteur au niveau 1 se présente de la manière suivante :

(Debug 1)PL/SQL>


A propos de l'emplacement d'exécution en cours

L'emplacement d'exécution en cours indique la prochaine ligne source PL/SQL à exécuter. Il correspond à ce que l'on appelle habituellement le compteur de programmes (PC). Lorsque l'Interpréteur prend le contrôle pendant l'exécution d'un programme (par exemple, lorsqu'il détecte un point d'interruption ou à la suite d'une opération pas à pas), l'emplacement d'exécution en cours est indiqué dans la fenêtre Source par le symbole =>.


A propos du débogage dans Procedure Builder

L'Interpréteur PL/SQL est l'espace de travail principal pour le débogage de Procedure Builder. Le débogage se compose des étapes suivantes :

•	affichage du source de l'unité de programme dans l'Interpréteur

•	créer une action de débogage :

point d'interruption

déclencheur de débogage

•	exécution de l'unité de programme

•	consulter et modifier les valeurs des variables locales

•	contrôle de l'exécution de l'unité de programme :

vérifier le code, pas à pas

reprendre l'exécution de l'unité de programme

quitter le niveau de débogage actuel

Notez que les actions de débogage sont supprimées lorsque vous quittez Procedure Builder.


Affichage du source de l'unité de programme dans l'Interpréteur

  Etape suivante	  Rubriques connexes

Pour afficher le source de l'unité de programme dans l'Interpréteur : Remarque

1	Si l'Interpréteur PL/SQL n'est pas encore ouvert, choisissez Programme [image] Interpréteur PL/SQL pour l'afficher.

2	Disposez votre bureau de manière à voir à la fois l'Interpréteur PL/SQL et le Navigateur d'objet.

3	Dans le Navigateur d'objet, cliquez sur l'unité de programme contenant la source à afficher.

La fenêtre Source de l'Interpréteur PL/SQL affiche une copie en lecture seule de l'unité de programme avec des numéros de ligne.

La fenêtre Source est utilisée pendant le débogage pour localiser l'emplacement d'exécution de l'unité de programme interrompue. Lorsque le code source de l'unité de programme est affiché, vous pouvez choisir où créer des actions de débogage.

Par défaut, la ligne source en cours est la première instruction de la fenêtre. Utilisez la commande LIST pour indiquer le numéro de ligne de l'emplacement source en cours.


Ce processus est le même pour toutes les unités de programme côté serveur.


Création d'un point d'interruption simple

  Etape suivante	  Rubriques connexes

Pour créer un point d'interruption simple : Remarque

1	Dans le Navigateur d'objet, cliquez sur l'unité de programme dans laquelle vous voulez créer le point d'interruption pour l'afficher dans la fenêtre Source de l'Interpréteur PL/SQL.

2	Dans la fenêtre Source de l'Interpréteur PL/SQL, cliquez deux fois sur la ligne source exécutable dans laquelle vous voulez créer le point d'interruption.

Le point d'interruption créé reçoit un identificateur numérique unique permettant de faire référence à ce point d'interruption lorsque vous utiliserez des commandes de Procedure Builder ou le package DEBUG.


Création d'un point d'interruption avec un déclencheur

 Exemples	 Etape suivante	 Rubriques connexes

Pour créer un point d'interruption avec un déclencheur : Remarque

1	Dans le Navigateur d'objet, cliquez sur l'unité de programme pour l'afficher dans la fenêtre Source de l'Interpréteur PL/SQL.

2	Dans la fenêtre Source de l'Interpréteur PL/SQL, cliquez sur la ligne source exécutable dans laquelle vous voulez créer le point d'interruption.

3	Choisissez Interruption dans le menu instantané de la fenêtre Source (cliquez sur le bouton droit de la souris dans Windows) pour afficher la boîte de dialogue Point d'interruption PL/SQL.

4	Entrez le corps du déclencheur dans la boîte de texte Déclencheur.

Notez que les mots-clés BEGIN et END sont facultatifs.

5	Cliquez sur OK pour compiler le déclencheur d'interruption et créer le point d'interruption.

Le point d'interruption créé reçoit un identificateur numérique unique permettant de faire référence à ce point d'interruption lorsque vous utiliserez des commandes de Procedure Builder ou le package DEBUG.

Le déclencheur est activé chaque fois qu'une exécution de programme atteint le point d'interruption.


Exemple : Point d'interruption avec un déclencheur

Dans l'exemple suivant, un point d'interruption est créé afin d'activer un déclencheur lorsque le point d'interruption est atteint.

PL/SQL> .break proc my_proc line 10 trigger
     +> DEBUG.INTERPRET('.SHOW LOCALS');


Création d'un déclencheur de débogage

  Exemples	  Etape suivante	  Rubriques connexes

Pour créer un déclencheur de débogage : Remarque

1	Dans le Navigateur d'objet, cliquez sur l'unité de programme pour l'afficher dans la fenêtre Source de l'Interpréteur PL/SQL.

2	Dans la fenêtre Source de l'Interpréteur PL/SQL, cliquez sur la ligne source exécutable dans laquelle vous voulez créer le déclencheur de débogage.

3	Choisissez Déclencheur dans le menu instantané de la fenêtre Source (cliquez sur le bouton droit de la souris dans Windows) pour afficher la boîte de dialogue Déclencheur PL/SQL.

4	Sélectionnez un emplacement dans la liste déroulante Emplacement, ou acceptez l'emplacement par défaut (unité de programme en cours seulement).

Le paramètre d'emplacement indique l'endroit où le déclencheur de débogage doit être activé.

5	Entrez le déclencheur de débogage dans le champ Corps du déclencheur.

Notez que les mots-clés BEGIN et END sont facultatifs.

6	Cliquez sur OK pour compiler le déclencheur et créer le déclencheur de débogage.

Le déclencheur créé reçoit un identificateur numérique unique permettant de faire référence à ce déclencheur lorsque vous utiliserez des commandes de Procedure Builder ou le package DEBUG.

Si vous voulez enregistrer un déclencheur de débogage pour l'utiliser au cours d'une autre session, enregistrez le bloc anonyme dans un fichier texte et chargez-le ultérieurement, ou transférez le bloc anonyme dans une bibliothèque.

Utilisez les déclencheurs de débogage pour indiquer les conditions dans lesquelles une action de débogage donnée doit être exécutée. Pour définir vos actions de débogage, vous pouvez utiliser l'un des packages fournis avec Procedure Builder.


Exemple : Déclencheur de débogage

  Rubriques connexes

Les exemples ci-dessous indiquent les utilisations possibles des déclencheurs de débogage à l'aide du package DEBUG.

Exemple 1

Supposons que vous ayez une unité de programme, appelée foo, qui appelle le sous-programme bar. Ce sous-programme (bar) est également appelé par de nombreuses autres unités de programme. Vous voulez créer un point d'interruption dans bar, mais qui ne doit être activé que lorsque le sous-programme est appelé à partir de foo, et non pas lorsqu'il est appelé à partir des autres unités de programme.

Pour cela :

1	Créez un point d'interruption dans la procédure bar, à l'endroit où vous voulez interrompre l'exécution.

2	Désactivez le point d'interruption que vous venez de créer.

Ces deux opérations peuvent être exécutées à partir de la boîte de dialogue Point d'interruption. Créez un point d'interruption avec un déclencheur d'interruption dans la procédure foo qui active le premier point d'interruption créé dans la procédure bar. Par exemple :

PL/SQL>.BREAK PROC foo LINE 6 TRIGGER
>BEGIN
>  Debug.Interpret('.enable break 1');
>  Debug.Interpret('.go');
>END;

Exemple 2

Reprenons la même situation, dans laquelle la procédure bar accepte l'argument 'message' à partir des nombreuses procédures qui l'appellent. La procédure foo transmet à bar un argument unique de 'bonjour à tous'. Dans ce cas, vous pouvez définir un déclencheur qui ne génère un point d'interruption dans la procédure bar que lorsque foo transmet son argument :

PL/SQL> .TRIGGER PROC bar LINE 3 IS
>BEGIN
>  IF Debug.Getn('message') = 'bonjour à tous' THEN
>    RAISE Debug.Break;
>  END IF;
>END;


Exécution de l'unité de programme

  Rubriques connexes

Pour exécuter l'unité de programme : Remarque

Lorsque vous avez créé des actions de débogage, vous pouvez exécuter l'unité de programme pour en suspendre l'exécution.

A l'invite PL/SQL> de l'Interpréteur PL/SQL, entrez le nom de l'unité de programme suivi d'un point virgule (;). Appuyez sur la touche Entrée ou Retour pour exécuter l'unité de programme.

N'oubliez pas de terminer l'appel par un point-virgule (;) et de fournir les paramètres obligatoires entre parenthèses. Si vous faites une faute de frappe dans le nom de l'unité de programme, choisissez Nouvelle invite dans le menu instantané de la fenêtre de l'Interpréteur (cliquez sur le bouton droit de la souris dans Windows) pour afficher une nouvelle invite.

Si l'Interpréteur détecte une action de débogage, il affiche un message du type :

>>Entering BREAKPOINT n° line n of unité_programme
(Debug1)PL/SQL>

L'emplacement d'exécution de l'unité de programme interrompue est indiqué par le symbole => dans la fenêtre Source. Cet emplacement change lorsque vous progressez dans le code.


Consultation et modification des variables et des paramètres simples

  Rubriques connexes

Pour consulter et modifier des variables et des paramètres simples :

1	Dans le Navigateur d'objet, cliquez sur le noeud Pile.

2	Cliquez sur [image] dans la barre d'outils pour développer tous les sous-noeuds.

Les variables et les paramètres de chaque trame de la pile d'appels, ainsi que les valeurs correspondantes, apparaissent en tant que sous-noeuds.

3	Pour éditer une valeur, cliquez sur la variable ou le paramètre à sélectionner.

4	Cliquez à nouveau sur la valeur que vous voulez éditer.

Le curseur prend la forme d'un curseur d'éditeur de texte.

5	Editez la valeur et appuyez sur la touche Entrée pour enregistrer la modification.

La commande suivante est renvoyée en écho à l'Interpréteur :

Debug.Setc ('nom_de_la_variable', 'nouvelle_valeur';)


Consultation et modification de variables complexes

  Rubriques connexes

Pour consulter et modifier des tables d'enregistrements :

1	Dans le Navigateur d'objet, cliquez sur le noeud Pile.

2	Sélectionnez le noeud de la table que vous voulez consulter.

3	Si la table contient plus de 50 lignes, la boîte de sélection de lignes de table PL/SQL est automatiquement appelée. Si la table que vous voulez consulter contient moins de 50 lignes, utilisez la combinaison de touches Maj+clic appropriée à votre plate-forme (par exemple, bouton droit de la souris pour Windows). La boîte de dialogue de sélection de lignes de table PL/SQL qui s'affiche contient la liste des index pour tous les enregistrements de la table. Par défaut, ils sont tous sélectionnés.

4	Désélectionnez tous les enregistrements que vous ne voulez pas consulter. Cliquez sur OK pour quitter la boîte de dialogue.

Dans le Navigateur d'objet, seuls les enregistrements que vous avez sélectionnés dans la boîte de dialogue sont développés.


Contrôle de l'exécution d'une unité de programme interrompue

  Rubriques connexes

Pour contrôler l'exécution d'une unité de programme interrompue : Remarque

Après l'interruption de l'exécution d'une unité de programme, si vous avez consulté et/ou modifié l'état du programme, vous pouvez effectuer les actions suivantes :

1	Exécuter le code pas à pas.

2	Reprendre l'exécution de l'unité de programme.

3	Quitter au niveau de débogage en cours.

Vous pouvez reprendre momentanément l'exécution d'un programme, en incrémentant effectivement l'exécution du code afin de pouvoir surveiller l'état du programme pendant qu'il s'exécute. Le contrôle est rendu à l'Interpréteur lorsque les instructions indiquées ont été exécutées.


Exécution pas à pas du code

  Etape suivante	  Rubriques connexes

Pour exécuter le code pas à pas : Remarque

Les différentes options offertes par Procedure Builder pour exécuter pas à pas une unité de programme sont indiquées ci-dessous. Les trois premières options ont le même effet, à moins que votre unité de programme contienne des appels à des sous-programmes.

Pour	Utilisez
exécuter la prochaine instruction	Step into
exécuter uniquement la prochaine instruction de l'unité de programme en cours (les appels aux sous-programmes imbriqués sont exécutés)	Step Over
reprendre l'exécution à la prochaine instruction exécutable de l'unité de programme d'origine (les appels aux sous-programmes imbriqués sont exécutés)	Step Out
poursuivre l'exécution jusqu'à l'emplacement source indiqué	Step To
Pour contrôler l'exécution du programme, vous avez le choix entre les méthodes suivantes :

Cliquer sur les boutons Step Into, Step Over ou Step Out de la barre d'outils de l'Interpréteur.

Ou,

Choisir Déboguer [image] Step pour afficher la boîte de dialogue Step.

Remarque : L'option Step To ne figure pas dans la barre d'outils de l'Interpréteur.

La sélection de Step dans le menu de débogage affiche la boîte de dialogue PL/SQL Step.  Vous pouvez utiliser cette boîte de dialogue pour indiquer l'option Step en sélectionnant l'un des boutons d'option du champ Mode.


Reprise de l'exécution d'une unité de programme

  Rubriques connexes

Pour reprendre l'exécution d'une unité de programme : Remarque

Cliquez sur le bouton Exécuter (Go) dans la barre d'outils de l'Interpréteur.

A la différence de la commande STEP, GO exécute une boucle FOR complète. L'exécution de l'unité de programme reprend indéfiniment, c'est-à-dire jusqu'à ce que l'exécution en cours se termine ou qu'elle soit à nouveau interrompue par une action de débogage.


Sortie du niveau de débogage en cours

  Rubriques connexes

Pour sortir du niveau de débogage en cours : Remarque

Cliquez sur le bouton Réinitialiser dans la barre d'outils de l'Interpréteur.

Vous pouvez, en entrant la commande RESET dans la ligne de commande, reprendre explicitement l'exécution à un précédent niveau de débogage (par défaut, le niveau de débogage le plus élevé). Cette action rend le contrôle à un niveau de débogage extérieur sans poursuivre l'exécution au niveau de débogage en cours (ce qui interrompt l'exécution au niveau en cours, et éventuellement aux niveaux supérieurs).


Affichage des actions de débogage en cours

  Rubriques connexes

Pour afficher les actions de débogage en cours :

Dans le Navigateur d'objet, développez le noeud Actions de débogage.

Chaque action de débogage définie est affichée comme un sous-noeud. Par exemple :

(Point d'interruption : corps de procédure FOO ligne 3)

Si une action de débogage est désactivée, elle s'affiche avec un astérisque (*) :

* (Point d'interruption : corps de procédure FOO ligne 3)


Désactivation d'une action de débogage

  Rubriques connexes

Pour désactiver une action de débogage :

1	Dans le Navigateur d'objet, sélectionnez le noeud d'action de débogage.

2	Choisissez Désactiver dans le menu instantané (cliquez sur le bouton droit de la souris dans Windows).

L'astérisque qui apparaît après l'ID du point d'interruption, dans le Navigateur d'objet, indique que l'action de débogage est momentanément désactivée. Il est possible d'interrompre momentanément des actions de débogage spécifiques et de les reprendre ultérieurement si nécessaire.


Activation d'une action de débogage

  Rubriques connexes

Pour activer une action de débogage :

1	Dans le Navigateur d'objet, sélectionnez le noeud d'action de débogage.

2	Choisissez Activer dans le menu instantané (cliquez sur le bouton droit de la souris dans Windows).

L'astérisque disparaît de l'ID du point d'interruption dans le Navigateur d'objet pour indiquer que l'action de débogage est réactivée.


Suppression d'une action de débogage

 Rubriques connexes

Pour supprimer une action de débogage :

1	Dans le Navigateur d'objet, sélectionnez le noeud d'action de débogage.

2	Cliquez sur [image] dans la barre d'outils du Navigateur.


Définition d'un emplacement source spécifique

  Rubriques connexes

Pour définir un emplacement source spécifique : Remarque

La commande LIST permet non seulement d'afficher le source d'une unité de programme, mais aussi de définir l'emplacement de travail en cours en utilisant le mot-clé LINE.

Par exemple, pour afficher le texte source de la procédure bonus et définir l'emplacement source en cours à la ligne 3, entrez dans l'Interpréteur la commande :

PL/SQL> .LIST PROC bonus LINE 3

La fenêtre Source apparaît comme indiqué ci-dessous, avec le curseur positionné au début de la ligne 3.

00001  PROCEDURE bonuses (my_ename IN CHAR) IS
00002   CURSOR c1 IS
00003 |   SELECT ename, sal*0.15 bonus FROM emp;
00004  BEGIN
00005   FOR c1rec IN c1 LOOP
00006    Text_IO.Putf('%s %s %s %s', 'Employee:',
00007     c1rec.ename, 'Bonus:', TO_CHAR(c1rec.bonus));
00008    Text_IO.New_Line;
00009   END LOOP;
00010  END;


Consultation ou modification des variables à l'aide du package DEBUG

  Rubriques connexes

Pour consulter ou modifier des variables à l'aide du package DEBUG : Remarque

Le package DEBUG comporte un certain nombre de procédures et de fonctions conçues pour être utilisées dans des déclencheurs de débogage. Deux de ces sous-programmes intégrés peuvent être utilisés pour extraire et modifier les valeurs des paramètres et des variables locales dans le corps du déclencheur de débogage proprement dit :

•	la fonction GETx

•	la procédure SETx

La fonction GETx permet d'extraire la valeur d'un paramètre ou d'une variable locale du sous-programme à l'emplacement de travail en cours (x représente le type de la variable (n pour NUMBER, c pour CHAR, etc.)).

La procédure SETx permet de définir la valeur d'un paramètre ou d'une variable locale du sous-programme à l'emplacement de travail en cours.


Changement d'emplacement de travail en cours

  Rubriques connexes

Pour changer l'emplacement de travail en cours :

Dans le Navigateur d'objet, cliquez sur une trame sous le noeud Pile. Ou,

Ou,

A l'invite de la ligne de commande de l'Interpréteur, entrez la commande SET SCOPE.

La commande SET permet d'indiquer un déplacement relatif de la trame de pile en cours à une autre trame, ou de passer à un sous-programme particulier de la pile d'appels.


A propos du débogage côté serveur

Les versions 7.3.4 ou ultérieures d'Oracle7 et les versions 8.0.4 ou ultérieures d'Oracle8 prennent en charge le débogage côté serveur. Toutes les actions de débogage, comme la création de points d'interruption et de déclencheurs de débogage, l'exécution pas à pas du code et la consultation ou la modification des valeurs de variable locale peuvent être effectuées directement sur les unités de programme stockées.

Vous devez disposer du privilège ALTER SESSION pour le débogage côté serveur afin de ne pas avoir à recompiler vos procédures client chaque fois qu'une procédure stockée dont elles dépendent est régénérée. Ce privilège est également nécessaire pour faire passer la session du mode horodatage au mode signature.

Si vous disposez de la version 8.0.3 d'Oracle8 ou d'une version antérieure à la version 7.3.4 d'Oracle7, faites glisser les unités de programmes stockées du côté client pour les déboguer. Une fois le débogage effectué, replacez les unités de programmes du côté serveur.

Vous pouvez également déboguer les unités de programmes stockées et les déclencheurs de base de données à l'aide du package DBMS_OUTPUT. Ce package fournit des procédures PUT et PUT_LINE qui permettent d'obtenir la valeur des variables et des expressions. Pour plus d'informations sur le package DMBS_OUTPUT et sur les autres packages de base de données, reportez-vous à Oracle7 Application Developer's Guide ou à Oracle8 Application Developer's Guide.


A propos des unités de programme PL/SQL

  Rubriques connexes

Une unité de programme est une structure de code PL/SQL qui peut être reconnue et traitée indépendamment par le compilateur PL/SQL. Les unités de programme PL/SQL comprennent les éléments suivants :

•	blocs anonymes

•	sous-programmes

•	packages


A propos des blocs anonymes

  Exemple 	  Rubriques connexes

Un bloc anonyme définit une séquence d'actions sans nom. Il s'agit d'une unité de programme PL/SQL ne portant pas de nom, dans laquelle les mots-clés BEGIN et END ne sont pas obligatoires au début et à la fin des instructions exécutables. Les blocs anonymes étant dépourvus de nom, ils ne peuvent pas être référencés par d'autres unités de programme.

Un bloc anonyme contient une partie déclarative (facultatif), une partie exécutable et au moins un gestionnaire d'exceptions (facultatif).

La partie déclarative permet de déclarer les variables, les exceptions et les curseurs PL/SQL. La partie exécutable contient le code PL/SQL et les instructions SQL, et peut comprendre des blocs imbriqués. Les gestionnaires d'exceptions contiennent le code appelé lorsqu'une exception se produit.

Les blocs anonymes sont généralement utilisés par l'Interpréteur pour appeler de manière interactive d'autres unités de programmes portant un nom. Par exemple, la saisie des blocs anonymes suivants appelle la procédure Put_Line dans le package Text_IO :

Text_IO.Put_Line('Bonjour');


Exemple de bloc anonyme

Le bloc anonyme PL/SQL suivant imprime le nom de tous les employés du département 20 de la table emp_tab, à l'aide du package DBMS_OUTPUT :

DECLARE
   emp_name  VARCHAR2(10);
   cursor    c1 IS SELECT ename FROM emp_tab
                     WHERE deptno = 20;
BEGIN
   OPEN c1;
   LOOP
      FETCH c1 INTO emp_name;
      EXIT WHEN c1%NOTFOUND;
      DBMS_OUTPUT.PUT_LINE(emp_name);
   END LOOP;
END;


A propos des sous-programmes

  Rubriques connexes

Les sous-programmes sont des blocs PL/SQL nommés qui peuvent stocker des paramètres et être appelés. Les sous-programmes peuvent être référencés par d'autres unités de programme.

Le code PL/SQL comprend deux types de sous-programme : les procédures et les fonctions. En général, vous utilisez une procédure pour exécuter une action et une fonction pour calculer une valeur.

Les sous-programmes sont adaptables : ils permettent d'ajuster le langage PL/SQL à vos besoins. Par exemple, si vous avez besoin d'une procédure qui crée des départements, vous pouvez facilement en écrire une. Procédez comme suit :

PROCEDURE create_dept (new_dname VARCHAR2, new_loc VARCHAR2) IS
BEGIN
  INSERT INTO dept
     VALUES (deptno_seq.NEXTVAL, new_dname, new_loc);
END create_dept;

Les sous-programmes sont également modulables : vous pouvez fractionner un programme en modules logiques bien définis, plus faciles à gérer. Cette fonctionnalité prend en charge la conception et l'approche détaillée, par étapes, de la résolution des problèmes.

En outre, les sous-programmes peuvent être conservés et sont réutilisables. Après l'avoir validé, vous pouvez utiliser un sous-programme en toute confiance dans toutes les applications de votre choix. Si sa définition est modifiée, seul le sous-programme est affecté. Cela simplifie la gestion et l'amélioration des applications.

Enfin, les sous-programmes servent d'aide à l'abstraction, à la séparation des éléments dans l'esprit du développeur. Pour utiliser des sous-programmes, vous devez connaître leur fonction, et non leur mode de fonctionnement. Par conséquent, vous pouvez concevoir des applications de A à Z sans vous soucier des détails de mise en oeuvre. Des sous-programmes fictifs (unités de remplacement) permettent de retarder la définition des procédures et des fonctions jusqu'à l'étape de test et de débogage du programme principal.


A propos des procédures

  Restrictions 	  Exemple	  Rubriques connexes

Une procédure est un sous-programme qui exécute une action précise. Vous écrivez des procédures en utilisant la syntaxe suivante :

PROCEDURE nom [(paramètre[, paramètre, ...])] IS
   [déclaration des variables locales]
BEGIN
   instructions exécutables
[EXCEPTION
   gestionnaires d'exceptions]
END [nom];

Dans ce texte, paramètre correspond à la syntaxe suivante :

nom_paramètre [IN | OUT [NOCOPY] | IN OUT [NOCOPY]] nom_type_données
   [{:= | DEFAULT} expression]

Une procédure est composée de deux parties :

•	la spécification ;

•	le corps.

Spécification  La spécification de la procédure commence par le mot-clé PROCEDURE et se termine par le nom de la procédure ou par la liste des paramètres. La déclaration des paramètres est facultative. Les procédures dépourvues de paramètre ne contiennent pas de parenthèses. La spécification de la procédure proc1 est illustrée ci-dessous :

PROCEDURE proc1 (param CHAR);

Corps  Le corps de la procédure commence par le mot-clé IS et se termine par le mot-clé END, suivi du nom de la procédure (facultatif). Ce corps comprend trois parties : une partie déclarative, une partie exécutable et une partie de gestion des exceptions, facultative.

La partie déclarative contient la déclaration des variables locales, placée entre les mots-clés IS et BEGIN. Le mot-clé DECLARE, qui introduit les déclarations dans un bloc PL/SQL anonyme, n'est pas utilisé.

La partie exécutable contient des instructions, encadrées par les mots-clés BEGIN et EXCEPTION (ou END). Cette partie doit contenir au moins une instruction. L'instruction NULL répond à cette exigence.

La partie qui gère les exceptions contient des gestionnaires d'exceptions, placés entre les mots-clés EXCEPTION et END.

Par exemple, le corps de la procédure proc1 est le suivant :

PROCEDURE proc1 (param CHAR) IS
BEGIN
  Text_IO.Put_Line('Bonjour de PROC1');
END;

Une procédure est appelée sous forme d'une instruction PL/SQL. Par exemple, vous pouvez appeler la procédure raise_salary de la manière suivante :

DECLARE
   emp_id NUMBER;
   amount REAL;
BEGIN
   ...
   raise_salary(emp_id, amount);


Contraintes liées aux paramètres

Vous ne pouvez pas appliquer de contrainte (avec NOT NULL, par exemple) au type de données d'un paramètre. Par exemple, la déclaration suivante (pour acct_id) n'est pas autorisée, car le type de données CHAR comporte une contrainte de taille :

PROCEDURE reconcile (acct_id CHAR(5)) IS ... -- illegal

Cependant, vous pouvez utiliser la solution suivante pour imposer une contrainte de taille aux types de paramètre, de manière indirecte :

DECLARE
   temp CHAR(5);
   SUBTYPE Char5 IS temp%TYPE;
   PROCEDURE reconcile (acct_id Char5) IS ...


Exemple de procédure

Vous trouverez ci-dessous la procédure raise_salary, qui ajoute un montant donné au salaire d'un employé :

PROCEDURE raise_salary (emp_id INTEGER, amount REAL) IS
   current_salary REAL;
   salary_missing EXCEPTION;
BEGIN
   SELECT sal INTO current_salary FROM emp
     WHERE empno = emp_id;
   IF current_salary IS NULL THEN
      RAISE salary_missing;
   ELSE
      UPDATE emp SET sal = sal + amount
        WHERE empno = emp_id;
   END IF;
EXCEPTION
   WHEN NO_DATA_FOUND THEN
      INSERT INTO emp_audit VALUES (emp_id, ’Immatriculation inexistante’);
   WHEN salary_missing THEN
      INSERT INTO emp_audit VALUES (emp_id, ’Salaire NULL’);
END raise_salary;

Lorsqu'elle est appelée, cette procédure accepte un numéro d'employé et un montant d'augmentation de salaire. Elle utilise le numéro d'immatriculation pour sélectionner le salaire actuel dans la table de base de données emp. Si ce numéro est introuvable ou si le salaire actuel est Null, une exception est déclenchée. Dans le cas contraire, le salaire est mis à jour.


A propos des fonctions

  Exemple 	  Rubriques connexes

Une fonction est un sous-programme qui calcule une valeur. Les fonctions et les procédures présentent des structures similaires, mais les fonctions comprennent une clause RETURN. La syntaxe des fonctions est la suivante :

FUNCTION nom [(paramètre[, paramètre, ...])] RETURN type_données IS
   [déclaration des variables locales]
BEGIN
   instructions exécutables
[EXCEPTION
   gestionnaires d'exceptions]
END [nom];

Dans ce texte, paramètre correspond à la syntaxe suivante :

nom_paramètre [IN | OUT [NOCOPY] | IN OUT [NOCOPY]] nom_type_données
   [{:= | DEFAULT} expression]

Comme les procédures, les fonctions comportent deux parties :

•	la spécification ;

•	le corps.

Spécification  La spécification de la fonction commence par le mot-clé FUNCTION et se termine par la clause RETURN, qui indique le type de données du résultat. La déclaration des paramètres est facultative. Les fonctions qui ne comportent aucun paramètre sont dépourvues de parenthèses.

Corps  Le corps de la fonction commence par le mot-clé IS et se termine par le mot-clé END, suivi du nom de la fonction (facultatif). Il se compose de trois parties : une partie déclarative, une partie exécutable et une partie de gestion des exceptions, facultative.

La partie déclarative contient la déclaration des variables locales, placées entre les mots-clés IS et BEGIN. Le mot-clé DECLARE n'est pas utilisé.

La partie exécutable contient des instructions, placées entre les mots-clés BEGIN et EXCEPTION (ou END). La partie exécutable d'une fonction doit contenir au moins une instruction RETURN.

La partie qui gère les exceptions contient des gestionnaires d'exceptions, placés entre les mots-clés EXCEPTION et END.

Vous ne pouvez pas appliquer de contrainte (via NOT NULL, par exemple) au type de données des paramètres ou du résultat de la fonction. Cependant, vous pouvez imposer une contrainte de taille de manière indirecte. Reportez-vous à la rubrique Contraintes liées aux paramètres.

Une fonction est appelée sous forme d'élément dans une expression. Par exemple, la fonction sal_ok peut être appelée de la manière suivante :

DECLARE
   new_sal REAL;
   new_title VARCHAR2(15);
BEGIN
   ...
   IF sal_ok(new_sal, new_title) THEN ...

L'identificateur de fonction sal_ok agit comme une variable dont la valeur dépend des paramètres qui lui sont transmis.

Par conséquent, alors qu'un appel de procédure correspond simplement à une instruction, un appel de fonction correspond à une expression et ne peut apparaître qu'aux endroits où les expressions sont acceptées. Par exemple, la fonction TO_CHAR peut être utilisée dans la partie droite d'une instruction d'affectation (charvar := to_char(100);).


Exemple de fonction

Voici la fonction sal_ok, qui détermine si le salaire d'un employé est hors limites :

FUNCTION sal_ok (salary REAL, title REAL) RETURN BOOLEAN IS
   min_sal REAL;
   max_sal REAL;
BEGIN
   SELECT losal, hisal INTO min_sal, max_sal
     FROM sals
     WHERE job = title;
   RETURN (salary >= min_sal) AND (salary <= max_sal);
END sal_ok;

Lorsqu'elle est appelée, cette fonction accepte un montant de salaire et un intitulé de poste. Elle utilise cet intitulé pour sélectionner les limites de la plage de salaires dans la table de base de données sals. L'identificateur de fonction, sal_ok, est paramétré sur une valeur booléenne par l'instruction RETURN. Si le salaire est hors limites, sal_ok est FALSE ; dans le cas contraire, sal_ok est TRUE.


A propos des packages

  Exemple 	  Rubriques connexes

Les packages définissent un ensemble de sous-programmes (procédures et fonctions), de types, de variables et de curseurs reliés de manière logique. Un package comporte généralement deux parties :

•	spécification (obligatoire)

•	corps (facultatif)

Spécification La spécification déclare l'interface publique au package, c'est-à-dire les types, constantes, variables, exceptions, curseurs et sous-programmes pouvant être référencés par d'autres unités de programme.

Corps  Le corps comprend les détails de mise en oeuvre proprement dite du package, qui peuvent inclure des sous-programmes privés, des variables et des types de données. Vous pouvez déboguer, améliorer ou remplacer un corps de package sans modifier la spécification du package. Le corps est facultatif si le package ne contient que des déclarations (par exemple, un package peut simplement définir un ensemble de types de données).

Seules les déclarations de la spécification du package sont visibles et accessibles par les applications. Les détails de mise en oeuvre compris dans le corps du package sont masqués et inaccessibles. Vous pouvez donc modifier ce corps (mise en oeuvre) sans recompiler les programmes d'appel.

Vous pouvez compiler les packages et les stocker dans la base de données Oracle, où leur contenu peut être partagé par plusieurs applications. Lorsque vous appelez un sous-programme en package pour la première fois, l'intégralité du package est chargée en mémoire. Les appels suivants à d'autres sous-programmes du package ne requièrent aucune E/S sur disque.

Pour référencer les types, éléments et sous-programmes déclarés dans une spécification de package, utilisez la notation à point. Par exemple :

nom_package.nom_type

nom_package.nom_élément

nom_package.nom_sous-programme

Procedure Builder fournit plusieurs packages intégrés côté client, que vous pouvez utiliser dans des unités de programme PL/SQL. Reportez-vous à la rubrique Packages intégrés Developer.


Exemple de package

Cet exemple de package comprend deux procédures liées à la gestion du personnel :

CREATE PACKAGE emp_actions AS     -- spécification de package
   PROCEDURE hire_emp (empno NUMBER, ename CHAR);
   PROCEDURE fire_emp (emp_id NUMBER);
END emp_actions;

CREATE PACKAGE BODY emp_actions AS     -- corps du package
   PROCEDURE hire_emp (empno NUMBER, ename CHAR) IS
   BEGIN
      INSERT INTO emp VALUES (empno, ename);
   END hire_emp;
   PROCEDURE fire_emp (emp_id NUMBER) IS
   BEGIN
      DELETE FROM emp WHERE empno = emp_id;
   END fire_emp;
END emp_actions;


A propos de la compilation des unités de programme

  Rubriques connexes

Une unité de programme commence par un contenu textuel appelé code source, auquel  la compilation de cette unité de programme ajoute :

PCODE	le code runtime exécutable,
DIANA	des informations détaillées sur l'état compilé de l'unité de programme, notamment des informations sur les références croisées.
Considérations sur la taille de la mémoire La compilation entraînant la génération d'informations supplémentaires, la taille de l'unité de programme augmente. DIANA d'une unité de programme est le composant le plus volumineux de la taille de l'unité de programme.

Si la taille joue un rôle important pour un ensemble donné d'unités de programme à stocker dans une bibliothèque, vous pouvez utiliser l'une des options suivantes :

•	utiliser la commande SAVE avec le mot-clé NOSOURCE pour enregistrer une version runtime des unités de programme contenant toujours DIANA ;

•	utiliser la commande SAVE avec le mot-clé NODIANA pour n'enregistrer que le code source et le PCODE des unités de programme ;

•	utiliser la commande GENERATE pour générer seulement une version runtime de la bibliothèque qui ne contient que le PCODE exécutable d'unité de programme.

Remarque : Le code source doit être présent si vous voulez éditer et recompiler l'unité de programme.


A propos du partitionnement de votre application logique

  Rubriques connexes

L'emplacement de stockage des unités de programme PL/SQL de votre application peut avoir une forte incidence sur le temps d'exécution et sur l'efficacité de vos applications. Le tableau ci-dessous répertorie les trois emplacements de stockage des unités de programme PL/SQL et les emplacements d'exécution correspondants :

Emplacement de stockage	Emplacement d'exécution
Noeud des unités de programme	Client
Noeud des bibliothèques attachées :   unités de programme enregistrées dans le système de fichiers   unités de programme stockées dans la base de données	Client
Noeud des objets de base de données :   sous-noeud des unités de programme PL/SQL stockées.	Serveur
Une fois que vous avez développé tout le code PL/SQL de votre application, vous devez étudier l'emplacement où stocker le code.

Parmi les différents critères d'évaluation possibles, citons :

•	les unités de programme PL/SQL, qui vivent avec l'application, sont chargées en mémoire lorsque l'application est lancée lors de l'exécution ;

•	les unités de programme PL/SQL qui résident dans des bibliothèques attachées à l'application ne sont chargées en mémoire que lorsqu'elles sont appelées par l'application, puis elles restent en mémoire pour pouvoir être réutilisées rapidement ;

•	les unités de programme PL/SQL qui résident dans des bibliothèques peuvent être réutilisées par d'autres applications ;

•	les unités de programme PL/SQL qui exécutent une activité transactionnelle avec la base de données peuvent être stockées sur le serveur pour diminuer le trafic sur le réseau entre le client et le serveur.

Toutes les activités de partitionnement d'applications peuvent être réalisées par déplacement d'objets (unités de programme) dans le Navigateur d'objet.


A propos de l'invalidation des unités de programme

  Rubriques connexes

Une unité de programme est dite invalidée lorsqu'elle a été compilée, puis mise de côté. La redéfinition de la spécification d'une unité de programme (sa liste de paramètres ou de noms) peut invalider d'autres unités de programme qui font référence à cette spécification ou l'appellent. La spécification définit les parties d'une unité de programme qui sont visibles par d'autres unités de programme.

Changer le corps d'une unité de programme n'invalide pas les unités de programme qui l'appellent.

Lorsque vous changez la spécification d'une unité de programme référencée par d'autres unités de programme définies, notez dans le Navigateur d'objet que ces unités de programme perdent leur état compilé dès que vous compilez l'unité de programme modifiée.

Une unité de programme non compilée apparaît dans le Navigateur avec une icône de noeud non développable et un astérisque (*) après le nom de l'unité de programme.

Vous pouvez développer le noeud de l'unité de programme modifié dans le Navigateur d'objet et inspecter le noeud Référencé par, de façon à afficher les noms des unités de programme qui font référence à l'unité de programme modifiée.

Pour les sous-programmes, la spécification se compose de la liste des paramètres formels (et de la valeur de retour, dans le cas d'une fonction). La spécification d'un sous-programme peut apparaître séparément dans sa propre unité de programme, ou être implicitement spécifiée par le corps du sous-programme. Les spécifications implicites sont les plus courantes et les plus pratiques, mais des spécifications séparées sont intéressantes dans les cas qui impliquent des références avant.

Les packages comportent toujours une unité de spécification de programme séparée. L'invalidation ne peut se produire que lorsque la spécification de package change, car la spécification (et non le corps de package) est seule visible pour les autres unités de programme.


A propos de la résolution des références croisées

  Rubriques connexes

Lorsque Procedure Builder rencontre une référence à une unité de programme, il tente de résoudre la référence en recherchant l'unité de programme cible dans l'ordre suivant :

1	Unités de programme chargées, compilées.

2	Unités de programme intégrées.

3	Unités de programmes chargées, non compilées.

En cas de détection d'une concordance, l'unité de programme référencée est compilée à ce stade.

4	Bibliothèques attachées.

5	Unités de programme stockées dans la base de données en cours.


Création d'une unité de programme dans l'Editeur d'unité de programme

  Rubriques connexes

Pour créer une unité de programme dans l'Editeur d'unité de programme :

1	Dans le Navigateur d'objet, sélectionnez le noeud Unités de programme.

2	Cliquez sur [image] dans la barre d'outils du Navigateur pour afficher la boîte de dialogue Nouvelle unité de programme.

3	Entrez le nom de l'unité de programme dans la boîte de texte Nom.

4	Si l'unité de programme que vous voulez créer n'est pas une procédure (valeur par défaut), cliquez sur le bouton d'option Fonction ou Package, dans le champ Type.

5	Cliquez sur OK pour afficher l'Editeur d'unité de programme. La spécification initiale de l'unité de programme apparaît dans cet éditeur.

6	Entrez le code source de l'unité de programme dans la fenêtre de texte Source.

7	Cliquez sur Compiler pour compiler le code source de l'unité de programme.

Les éventuelles erreurs de syntaxe sont affichées dans la fenêtre de messages Compilation.

8	Cliquez sur Fermer pour fermer L'Editeur d'unité de programme ou sur Nouvelle pour créer une nouvelle unité de programme.


Création d'une unité de programme dans l'Interpréteur

  Rubriques connexes

Pour créer une unité de programme dans l'Interpréteur :

Vous pouvez définir une unité de programme en entrant son code source directement dans l'Interpréteur. L'invite PL/SQL>, dans la fenêtre Interpréteur, accepte toute syntaxe PL/SQL valide.

Par exemple, pour créer et exécuter un bloc anonyme dans Procedure Builder, entrez ce qui suit, à l'invite de l'Interpréteur :

PL/SQL> Text_IO.Put_Line('Bonjour à tous');


A propos de l'import des unités de programme externes

  Rubriques connexes

Pour définir une unité de programme externe, vous pouvez également la charger à partir d'une source externe, un fichier texte par exemple. Cette méthode est particulièrement utile si vous avez déjà utilisé une application externe pour éditer et/ou gérer votre PL/SQL (par exemple, éditeurs, outils de gestion de configuration, générateurs de code, etc.).

Vous pouvez importer des unités de programme à partir de sources externes de la manière suivante :

•	charger un fichier texte d'une unique unité de programme

•	exécuter un script d'Interpréteur

•	importer un texte source dans l'Editeur d'unité de programme


Chargement d'une seule unité de programme

  Rubriques connexes

Pour charger une seule unité de programme :

1	Choisissez Fichier [image] Charger, dans le menu, pour afficher la boîte de dialogue de chargement d'unité de programme.

2	Entrez le chemin d'accès au répertoire et le nom du fichier dans le champ Fichier, ou cliquez sur Parcourir pour afficher la boîte de dialogue de fichiers de votre système d'exploitation, que vous pouvez parcourir.

Les fichiers texte d'unité de programme utilisent par défaut le suffixe de fichier .pls.

3	Si vous ne voulez pas qu'un message vous demande de confirmer l'opération demandée pendant le processus de chargement, sélectionnez la case à cocher Supprimer les confirmations.

Si l'unité de programme que vous chargez a le même nom qu'une unité de programme existante, un message peut vous demander de confirmer l'opération.

4	Cliquez sur Charger pour charger et compiler le fichier texte d'unité de programme sélectionné.

Procedure Builder renvoie en écho la commande .LOAD FILE nom_de_fichier (NOCONFIRM) dans la fenêtre de l'Interpréteur. L'unité de programme est importée et compilée. Un nouveau noeud apparaît dans le Navigateur d'objet.


Exécution d'un script d'Interpréteur

  Rubriques connexes

Pour exécuter un script de l'Interpréteur :

1	Choisissez Fichier [image] Interpréter dans le menu pour afficher la boîte de dialogue Interpréteur de script de débogage.

2	Entrez le chemin d'accès au répertoire et le nom de fichier du script de l'Interpréteur dans le champ Fichier, ou cliquez sur Parcourir pour afficher la boîte de dialogue de fichier de votre système d'exploitation, que vous pouvez parcourir.

Les scripts de l'Interpréteur sont généralement identifiés par le suffixe de fichier .pld.

3	Sélectionnez la case à cocher Echo pour que les commandes de script soient renvoyées en écho lorsqu'elles sont interprétées.

4	Sélectionnez la case à cocher Silencieux pour supprimer l'écho des messages d'erreur et des commandes dans l'Interpréteur.

5	Sélectionnez la case à cocher Supprimer les confirmations pour supprimer les fenêtres de message de confirmation pendant le traitement des scripts.

Si le script crée une unité de programme ou une bibliothèque ayant le même nom qu'une unité ou une bibliothèque existant dans la session en cours, un message peut vous demander de confirmer l'opération.

6	Cliquez sur Interpréter pour accepter les paramètres et exécuter le script de l'Interpréteur.

Procedure Builder renvoie en écho la commande .INTERPRET FILE nom_de_fichier dans la fenêtre de l'Interpréteur. Le script de l'Interpréteur s'exécute. Les nouvelles unités de programme et les bibliothèques s'affichent dans le Navigateur d'objet au fur et à mesure de leur création.

Les scripts de l'Interpréteur peuvent contenir toute combinaison de sources d'unités de programme PL/SQL, de commandes Procedure Builder et d'instructions SQL.


Import de texte source

  Etape suivante	  Rubriques connexes

Pour importer du texte source :

1	Dans le Navigateur d'objet, sélectionnez le noeud Unités de programme.

2	Cliquez sur [image] dans la barre d'outils du Navigateur pour afficher la boîte de dialogue Nouvelle unité de programme.

3	Entrez le nom de l'unité de programme dans la boîte de texte Nom.

4	Si l'unité de programme que vous voulez créer n'est pas une procédure (valeur par défaut), cliquez sur le bouton d'option Fonction ou Package, dans le champ Type.

L'Editeur d'unité de programme affiche la spécification initiale de l'unité de programme.

5	Faites passer le curseur dans la fenêtre de texte Source, dans laquelle vous souhaitez importer le texte source.

6	Choisissez Fichier [image] Importer texte pour afficher la boîte de dialogue de fichiers de votre système d'exploitation.

7	Indiquez le nom et l'emplacement du fichier texte à importer.

8	Cliquez sur OK pour accepter la boîte de dialogue et importer le fichier.

Le fichier texte apparaît dans l'Editeur d'unité de programme. Editez-le si nécessaire.

9	Cliquez sur Compiler pour compiler l'unité de programme.

10	Cliquez sur Fermer pour fermer l'Editeur d'unité de programme lorsque vous avez terminé.


Edition d'une unité de programme

  Etape suivante	  Rubriques connexes

Pour éditer une unité de programme :

Dans le Navigateur d'objet, cliquez deux fois sur l'icône d'une unité de programme pour l'afficher dans l'Editeur d'unité de programme.

Ou,

Dans la liste déroulante Nom de l'Editeur d'unité de programme, cliquez sur le nom de l'unité de programme.

Si vous effectuez un nombre important d'éditions, utilisez le bouton Appliquer pour enregistrer au fur et à mesure les modifications que vous apportez à l'unité de programme. Aucune recompilation n'est effectuée.


Redéfinition d'une unité de programme

  Rubriques connexes

Pour redéfinir une unité de programme :

Dans l'Editeur d'unité de programme, éditez le contenu de l'unité de programme existante.

Ou,

Chargez une nouvelle unité de programme externe portant le même nom.

Ou,

Dans l'Interpréteur, entrez le code source d'une nouvelle unité de programme en utilisant le même nom que celui de l'unité de programme que vous voulez redéfinir.

Si l'unité de programme est très courte, ou si vos éditions sont limitées, vous aurez intérêt à éditer l'unité de programme existante dans l'Editeur d'unité de programme. Cependant, si vous voulez modifier complètement l'unité de programme existante et la remplacer par une autre du même nom (pour conserver les appels en provenance des autres unités de programme), utilisez l'une des autres options.


Affichage du code source d'une unité de programme

  Rubriques connexes

Pour afficher la source de l'unité de programme dans l'Editeur d'unité de programme :

Dans le Navigateur d'objet, cliquez deux fois sur l'unité de programme à supprimer.

Utilisez l'Editeur d'unité de programme lorsque vous voulez éditer le contenu de l'unité de programme elle-même.

Pour afficher le code source de l'unité de programme dans l'Interpréteur :

1	Si l'Interpréteur PL/SQL n'est pas encore ouvert, choisissez Programme [image] Interpréteur PL/SQL pour l'afficher.

2	Positionnez les fenêtres de sorte que le Navigateur d'objet et l'Interpréteur soient visibles.

3	Cliquez sur l'unité de programme dans le Navigateur d'objet.

Le code source de l'unité de programme s'affiche dans la fenêtre Source, avec des numéros de ligne.

Utilisez la fenêtre Source de l'Interpréteur pour afficher le code source de l'unité de programme avec des numéros de ligne et, éventuellement, exécuter des actions de débogage sur l'unité de programme.

Remarque : La liste déroulante Nom ne contient que les noms des unités de programme disponibles dans l'emplacement de travail en cours (c'est-à-dire, le noeud Unités de programme, un noeud de bibliothèque ouverte, etc.)


Appel d'un sous-programme

Pour appeler un sous-programme :

1	Assurez-vous que l'Editeur d'unité de programme est ouvert et affiché dans la fenêtre en cours (sélectionnée en dernier).

2	Faites passer le curseur dans l'Editeur d'unité de programme à l'endroit où vous voulez insérer l'appel au sous-programme.

3	Dans le Navigateur d'objet, sélectionnez un noeud de spécification d'unité de programme.

Il peut s'agir d'une spécification de sous-programme d'une unité de programme définie par l'utilisateur ou d'un sous-programme intégré en package.

4	Choisissez Coller nom ou Coller arguments dans le menu instantané (sous Windows, cliquez avec le bouton droit de la souris).

Le sous-programme sélectionné est inséré dans l'Editeur d'unité de programme.

Coller nom ne colle que le nom du sous-programme. Coller arguments colle le nom et le type d'argument indiqué, que vous pouvez remplacer par une valeur réelle.


Changement de nom d'une unité de programme

  Rubriques connexes

Pour renommer une unité de programme :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône de l'unité de programme à ouvrir dans l'Editeur d'unité de programme.

2	Dans le corps de l'unité de programme, éditez le nom de l'unité de programme.

3	Cliquez sur Compiler pour appliquer le nouveau nom.

4	Cliquez sur Fermer pour fermer l'Editeur d'unité de programme.

Notez que les unités de programme, compilées précédemment, qui contiennent des appels à l'ancien nom de l'unité de programme, apparaissent désormais dans le Navigateur d'objet suivies d'un astérisque (*) pour indiquer qu'elles ne sont pas compilées.

Remarque : Vous ne pouvez renommer les unités de programme qu'à partir de l'Editeur d'unité de programme. Si vous renommez une unité de programme référencée dans d'autres unités de programme, vous devez changer ces références pour tenir compte du nouveau nom.


Recherche et remplacement de texte dans une seule unité de programme

  Rubriques connexes

Pour rechercher et remplacer du texte dans une seule unité de programme :

1	Dans l'Editeur d'unité de programme ou dans l'Editeur d'unité de programme stockée, ouvrez l'unité de programme dans laquelle vous voulez effectuer la recherche.

2	Faites passer votre curseur à l'endroit où vous voulez commencer la recherche.

Procedure Builder commence la recherche à partir de la position du curseur dans le code source de l'unité de programme. Lorsque la fin de l'unité de programme en cours est atteinte, un message vous demande si vous voulez poursuivre (boucler) la recherche.

3	Choisissez Editer [image] Rechercher/remplacer pour afficher la boîte de dialogue de recherche et de remplacement.

4	Entrez vos critères de recherche et, éventuellement, la chaîne de remplacement.

Vous pouvez fournir soit une chaîne de texte, soit une expression régulière, comme chaîne de recherche. En outre, vous pouvez indiquer si la recherche doit, ou non, tenir compte de la différence entre les majuscules et les minuscules.

5	Cliquez sur Suivant pour lancer la recherche.

Lorsque le programme trouve une instance de critères de recherche, vous pouvez :

•	cliquer sur Remplacer pour remplacer une instance,

•	cliquer sur Remplacer tout pour remplacer toutes les instances dans l'unité de programme en cours,

•	éditer le texte directement dans l'éditeur.


Compilation d'une seule unité de programme

  Rubriques connexes

Pour compiler une seule unité de programme :

1	Dans le Navigateur d'objet, sélectionnez l'unité de programme à supprimer.

2	Choisissez Programme [image] Compiler [image] Tout dans le menu principal pour compiler l'unité de programme sélectionnée.

Si une erreur est détectée, l'Editeur d'unité de programme affiche le code source de l'unité de programme sélectionnée. Les erreurs de compilation apparaissent dans une fenêtre de messages d'erreur.


Compilation d'unités de programme sélectionnées

  Rubriques connexes

Pour compiler les unités de programme sélectionnées :

1	Dans le Navigateur d'objet, sélectionnez le noeud de chaque unité de programme.

Appuyez sur Maj tout en cliquant pour sélectionner une série d'unités de programme, ou appuyez sur Ctrl tout en cliquant pour développer les unités de programme sélectionnées qui ne font pas partie d'une série.

2	Choisissez Programme [image] Compiler [image] Tout dans le menu principal pour compiler les unités de programme sélectionnées.

Si une erreur est détectée, l'Editeur d'unité de programme affiche le code source de la première unité de programme sélectionnée. Les erreurs de compilation apparaissent dans une fenêtre de messages d'erreur.


Compilation de toutes les unités de programme

  Rubriques connexes

Pour compiler toutes les unités de programme :

1	Dans le Navigateur d'objet, sélectionnez le noeud Unités de programme.

2	Choisissez Programme [image] Compiler [image] Tout pour compiler toutes les unités de programme, quel que soit leur état de compilation.

La boîte de dialogue de compilation indique l'état de la compilation.


Compilation de toutes les unités de programme non compilées

  Rubriques connexes

Pour compiler toutes les unités de programme non compilées :

1	Dans le Navigateur d'objet, sélectionnez le noeud Unités de programme.

2	Choisissez Programme [image] Compiler [image] Incrémentiel pour ne compiler que les unités de programme qui ne le sont pas encore.

La boîte de dialogue de compilation indique l'état de la compilation.


Affichage d'informations sur une unité de programme dans le Navigateur d'objet

Pour afficher des informations sur une unité de programme dans le Navigateur d'objet :

Dans le Navigateur d'objet, cliquez sur le noeud Unités de programme, puis sur [image] dans la barre d'outils du Navigateur.

Le Navigateur d'objet affiche, au sujet de l'unité de programme, les informations suivantes :

•	type d'unité de programme,

•	spécification,

•	références à d'autres unités de programme, packages intégrés PL/SQL, etc.,

•	références par d'autres unités de programme, packages intégrés PL/SQL, etc.


Affichage d'informations sur une unité de programme dans l'Interpréteur

  Rubriques connexes

Pour afficher des informations sur une unité de programme, dans l'Interpréteur :

A l'invite de l'Interpréteur, entrez la commande DESCRIBE, suivie des mots-clés et des variables nécessaires.

Les informations écrites dans la fenêtre Source de l'Interpréteur sont les suivantes :

•	type d'unité de programme,

•	paramètre,

•	état compilé,

•	références à d'autres unités de programme, packages intégrés PL/SQL, etc.,

•	références par d'autres unités de programme, packages intégrés PL/SQL, etc.


Export d'une unité de programme dans un fichier texte

  Rubriques connexes

Pour exporter une unité de programme dans un fichier texte :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône de l'unité de programme pour ouvrir l'Editeur d'unité de programme.

2	Si vous ne voulez exporter qu'une partie d'une unité de programme, sélectionnez-la.

3	Choisissez Fichier [image] Exporter texte pour appeler la boîte de dialogue de fichiers de votre système d'exploitation.

4	Indiquez le nom et l'emplacement du répertoire du fichier texte de l'unité de programme exportée.

Les fichiers texte d'unité de programme utilisent par défaut le suffixe .PLS.

5	Cliquez sur OK pour accepter la boîte de dialogue et exporter une copie de l'unité de programme en cours dans le fichier texte indiqué.

Vous pouvez exporter le code source d'une unité de programme dans un fichier texte du système de fichiers, puis le recharger ultérieurement. Vous pouvez également définir et déboguer une unité de programme de Procedure Builder, l'exporter dans un fichier texte, et la transmettre à plusieurs utilisateurs en vue de son incorporation dans d'autres produits ORACLE. Enfin, vous pouvez exporter une partie ou la totalité d'une unité de programme.


Stockage d'une unité de programme dans la base de données

  Rubriques connexes

Pour stocker une unité de programme dans la base de données :

1	Dans le Navigateur d'objet, développez le noeud Objets base de données.

Si vous n'êtes pas connecté à la base de données, cette action affiche la boîte de dialogue Connexion.

2	Développez le sous-noeud qui correspond au nom d'utilisateur de la base de données pour laquelle vous avez l'autorisation d'accès et où vous voulez stocker l'unité de programme.

Notez que l'un des sous-noeuds est Unités de programme PL/SQL stockées. Sélectionnez l'unité de programme que vous voulez stocker dans la base de données.

3	Faites glisser l'unité de programme sous le sous-noeud Unités de programme stockées PL/SQL, sous le noeud Objets base de données, et relâchez le bouton de la souris.

La commande STORE est renvoyée en écho à la fenêtre Interpréteur :

PL/SQL> .STORE SUBPROGRAM /"nomup" BODY

Les unités de programme PL/SQL stockées sont des sous-programmes et des packages PL/SQL qui résident et sont exécutés sur le serveur de base de données Oracle.


Suppression d'une unité de programme du Navigateur d'objet

  Rubriques connexes

Pour supprimer une unité de programme du Navigateur d'objet :

1	Dans le Navigateur d'objet, sélectionnez l'unité de programme à supprimer.

2	Cliquez sur [image] dans la barre d'outils du Navigateur ou choisissez Navigateur [image] Supprimer dans le menu pour supprimer l'unité de programme.

Dans la fenêtre de message qui apparaît, confirmez la suppression.

3	Cliquez sur Oui pour confirmer.

La commande suivante est renvoyée en écho à l'Interpréteur :

PL/SQL> .DELETE PROCEDURE /"nom_proc" BODY
Removing procedure nom_proc...
PL/SQL>

Remarque : Si vous supprimez une unité de programme référencée dans d'autres unités de programme, vous devez supprimer ces références pour refléter la suppression.


Suppression d'une unité de programme de l'Editeur d'unité de programme

  Rubriques connexes

Pour supprimer une unité de programme de l'Editeur d'unité de programme :

1	Dans l'éditeur, sélectionnez l'unité de programme dans la liste déroulante Nom, si nécessaire.

2	Cliquez sur Supprimer.

Dans la fenêtre de message qui apparaît, confirmez la suppression.

3	Cliquez sur Oui pour confirmer.

L'unité de programme est supprimée.

Remarque : Si vous supprimez une unité de programme référencée dans d'autres unités de programme, vous devez supprimer ces références pour refléter la suppression.


A propos des unités de programme stockées PL/SQL

  Rubriques connexes

Les unités de programme PL/SQL stockées sont des packages et des sous-programmes PL/SQL (procédures et fonctions) créés et stockés sur le serveur de base de données Oracle sous forme d'objets de schéma. Une fois créée et compilée, une unité de programme stockée est un objet nommé qui peut être exécuté dans la base de données sans être recompilé.

L'Editeur d'unité de programme stockée offre des fonctionnalités de création, d'édition et de compilation permettant de développer des unités de programme stockées. Ces dernières sont créées dans le schéma d'un utilisateur et elles peuvent être exécutées avec les privilèges de leur propriétaire (droits DEFINER) ou avec les privilèges de l'utilisateur actuel (droits INVOKER).

Lors de la compilation, le compilateur PL/SQL contenu dans le moteur PL/SQL d'Oracle effectue les opérations suivantes :

•	il analyse le code source d'une unité de programme PL/SQL stockée et génère une arborescence d'analyse ;

•	il génère le pseudocode (ou code P) sur la base du code analysé.

Lorsque l'unité de programme stockée est appelée, le moteur PL/SQL exécute le code P après qu'Oracle a vérifié les conditions suivantes :

•	l'utilisateur à l'origine de l'appel possède ou dispose du privilège EXECUTE sur l'unité de programme stockée. L'utilisateur qui exécute l'unité de programme n'a pas besoin de droits d'accès aux objets référencés dans cette unité ; seul le créateur requiert les privilèges d'accès aux objets référencés.

•	le statut de l'unité de programme stockée est valide. S'il ne l'est pas, Oracle recompile automatiquement l'unité de programme.

Procedure Builder permet à vos unités de programme côté client d'appeler de façon transparente des sous-programmes définis dans des unités de programme stockées côté serveur.

Pour plus d'informations sur les unités de programme stockées, reportez-vous au manuel Oracle8 Concepts Manual.


A propos de la résolution de noms des unités de programme stockées
A propos de la résolution de noms des unités de programme stockées PL/SQL

  Rubriques connexes

Les références aux sous-programmes stockés ne sont résolues qu'après exploration de la totalité des bibliothèques attachées. Ainsi, lorsque le compilateur ou le système runtime rencontre une référence au nom d'une unité de programme qui n'est ni chargée ni définie dans une bibliothèque PL/SQL attachée, il tente de résoudre la référence à une unité de programme stockée (à condition que vous soyez connecté au serveur de base de données Oracle).


A propos des privilèges pour les unités de programme stockées

Vous devez disposer du privilège système CREATE PROCEDURE pour créer une unité de programme stockée dans votre schéma ou du privilège système CREATE ANY PROCEDURE pour créer une unité de programme stockée dans le schéma d'un autre utilisateur.

Lorsqu'un utilisateur dispose du privilège EXECUTE sur une unité de programme stockée, il est autorisé à exécuter une unité de programme stockée par un autre utilisateur. Un sous-programme stocké s'exécute sous le domaine de sécurité (ou schéma) de son créateur et non sous celui de l'utilisateur actuel. Par conséquent, l'utilisateur n'a pas besoin de disposer de privilèges sur les objets référencés par une unité de programme stockée.


Appel d'une unité de programme stockée
Appel d'une unité de programme stockée PL/SQL

  Rubriques connexes

Pour appeler une unité de programme stockée PL/SQL :

La syntaxe de l'appel des sous-programmes stockés dans une base de donnée locale est identique à celle de l'appel de sous-programmes côté client :

[nom-package.]nom-sous-programme(params)

c'est-à-dire que si le sous-programme stocké est défini dans un package stocké, vous devez ajouter le préfixe du package pour appeler le sous-programme stocké à partir d'une unité de programme côté client. Seules exceptions : si vous utilisez des synonymes (décrits ci-après) ou si vous appelez des sous-programmes définis dans le package STANDARD, ou dans une extension de STANDARD (par exemple, DBMS_STANDARD).

Procedure Builder ne reconnaît pas les valeurs par défaut des paramètres optionnels dans les en-têtes des sous-programmes stockés. Vous avez, par exemple, la fonction stockée :

FUNCTION taxe (amt NUMBER, rate NUMBER := 8.25)
  RETURN NUMBER IS
BEGIN
  RETURN(amt * rate);
END;

Supposons maintenant que vous ayez, dans une procédure autonome, l'instruction :

x := taxe(20);

Cette instruction ne sera pas correctement compilée. Procedure Builder ne reconnaît pas la valeur par défaut de taux  et considère que vous avez omis le paramètre. Vous devez donc toujours fournir les paramètres facultatifs, comme dans l'exemple suivant :

x := taxe(20, 8,25);


Utilisation de synonymes

Pour utiliser des synonymes :

Pour faire référence à un sous-programme stocké défini dans le schéma d'un autre utilisateur ou dans une base de données éloignée, vous devez créer un synonyme. Le synonyme masque au compilateur PL/SQL le nom de l'utilisateur et le nom de la liaison à la base de données, de sorte que la référence respecte la syntaxe générale d'appel définie ci-dessus. En d'autres termes, la syntaxe ci-après est également prise en charge :

synonyme-de-sous-programmes(params) | synonyme-de-package.nom-sous-programme(params)

Vous pouvez donc créer des synonymes pour les combinaisons suivantes :

nom-schéma.nom-sous-programme
nom-schéma.nom-package
nom-sous-programme@lien-base-de-données
nom-package@lien-base-de-données
nom-schéma.nom-sous-programme@lien-base-de-données
nom-schéma.nom-package@lien-base-de-données

Supposons, par exemple, qu'un package stocké appelé STOREDPKG se trouve dans le schéma PKGOWNER, et que STOREDPKG définisse une procédure nommée STOREDPROC. Vous pouvez créer pour PKGOWNER.STOREDPKG le synonyme suivant :

CREATE SYNONYM storedpkgsyn
  FOR pkgowner.storedpkg

Dans une unité de programme côté client, vous pouvez alors appeler STOREDPROC de la manière suivante :

storedpkgsyn.storedproc(param1, param2, ...);

Vous pouvez également créer un synonyme pour la procédure elle-même, comme indiqué ci-après :

CREATE SYNONYM storedprocsyn
  FOR pkgowner.storedpkg.storedproc

Vous pouvez alors créer STOREDPROC comme indiqué ci-après :

storedprocsyn(param1, param2, ...);

Enfin, supposons que STOREDPKG soit défini à un site distant accessible par la liaison à la base de données appelée REMOTESITE. Pour créer un synonyme pour la procédure distante, vous pouvez écrire :

CREATE SYNONYM remoteprocsyn
  FOR pkgowner.storedpkg.storedproc@remotesite

Vous pouvez alors appeler la procédure distante en émettant la commande suivante :

remoteprocsyn(param1, param2, ...);


Recherche et remplacement de texte dans plusieurs unités de programme

  Rubriques connexes

La boîte de dialogue Rechercher et remplacer dans les unités de programme permet de rechercher et de remplacer du texte dans les unités de programme sélectionnées ou dans toutes les unités de programme de la session actuelle.

Pour afficher la boîte de dialogue Rechercher et remplacer dans les unités de programme, choisissez Programme [image] Rechercher et remplacer dans les unités de programme dans le menu.

Grâce à la boîte de dialogue Rechercher et remplacer dans les unités de programme, vous pouvez :

•	entrer les chaînes de recherche et de remplacement, et indiquer la zone de recherche ;

•	rechercher et remplacer toutes les occurrences de la chaîne trouvée ;

•	rechercher et remplacer de façon sélective les occurrences de la chaîne trouvée ;

•	éditer le code source où figure la chaîne trouvée.


Pour définir des critères de recherche :

Dans la zone de liste Rechercher de la boîte de dialogue Rechercher et remplacer dans les unités de programme, entrez vos critères de recherche ou choisissez-en un dans la liste. Cette zone de liste répertorie jusqu'à 16 chaînes de recherche précédentes.

1	Pour utiliser plusieurs expressions régulières dans votre chaîne de recherche, cliquez sur le bouton Expression en regard de la zone de liste modifiable Rechercher, puis sélectionnez une expression dans cette liste. Lorsque vous choisissez une expression, un caractère spécial est inséré dans la zone de liste modifiable.

2	Dans la zone de liste modifiable Remplacer par, entrez la chaîne de remplacement ou choisissez-en une dans la liste. Cette zone de liste répertorie jusqu'à 16 des chaînes de remplacement précédentes.

3	Cochez la case Utiliser expression si vous utilisez des expressions régulières dans votre chaîne de recherche.

4	Cochez la case Distinction maj/min pour que la recherche respecte la casse.

5	Indiquez l'emplacement où effectuer la recherche dans la zone Suivant.

Les bibliothèques PL/SQL ouvertes dans l'environnement de programmation actuel apparaissent dans cette zone. Toutes les bibliothèques (ou noeuds) sont sélectionnées par défaut. Si vous souhaitez effectuer la recherche uniquement sur un noeud particulier, cliquez dessus.

Remarque : Dans Procedure Builder (en mode autonome), « / » représente le noeud d'unités de programmes visible en haut du Navigateur d'objet. Toutes les bibliothèques PL/SQL ouvertes dans la session en cours apparaissent sous « / ».


Pour effectuer un remplacement par lots :

Les remplacements par lots vous permettent de remplacer toutes les occurrences de la chaîne de recherche dans les unités de programme, sous tous les noeuds ou sous ceux sélectionnés de la zone Suivant.

1	Dans la boîte de dialogue Rechercher et remplacer dans les unités de programme, indiquez les critères de recherche et les noeuds où effectuer la recherche.

2	Pour lancer la recherche et remplacer toutes les occurrences de la chaîne de recherche par la chaîne de remplacement. cliquez sur Remplacer tout.

Une fenêtre de message vous invite à confirmer le remplacement par lots.

3	Cliquez sur Oui.

La zone de déroulement de la recherche/remplacement apparaît. Elle contient les chaînes de recherche et de remplacement, l'emplacement de la recherche et le déroulement de la recherche/remplacement. Cliquez sur le bouton Stop pour interrompre la recherche, et afficher les instances trouvées et remplacées.

L'opération terminée, une fenêtre de message apparaît. Elle indique le nombre de remplacements réalisés.

4	Cliquez sur OK pour fermer cette fenêtre.

Les résultats de l'opération de recherche/remplacement apparaissent dans la zone de liste Résultats. L'emplacement de chaque chaîne trouvée est indiqué par le nom du noeud, celui de l'unité de programme, et les numéros de ligne et de colonne de la ligne source. La ligne d'état située au-dessus de cette zone indique le nombre d'instances trouvées.

5	Cliquez sur Fermer pour fermer la boîte de dialogue Rechercher et remplacer dans les unités de programme.


Pour effectuer un remplacement sélectif :

Les remplacements sélectifs vous permettent de rechercher d'abord les occurrences de la chaîne. Ensuite, vous pouvez sélectionner celles à remplacer.

1	Dans la boîte de dialogue Rechercher et remplacer dans les unités de programme, indiquez les critères de recherche et les noeuds où effectuer la recherche.

2	Cliquez sur Rechercher tout pour rechercher toutes les occurrences sans les remplacer pour l'instant.

La fenêtre de déroulement de la recherche/du remplacement apparaît. Elle contient la chaîne de recherche, l'emplacement et le déroulement de la recherche. Cliquez sur le bouton Stop pour interrompre la recherche et afficher les instances trouvées.

Une fois la recherche terminée, les instances de la chaîne de recherche apparaissent dans la zone de liste Résultats. L'emplacement de chaque chaîne trouvée est défini par le noeud du noeud, celui de l'unité de programme, et les numéros de ligne et de colonne de la ligne source. La ligne d'état située au-dessus de cette zone indique le nombre d'instances trouvées.

3	Pour effectuer des remplacements sélectifs, cliquez sur les instances voulues dans la zone de liste Résultats, tout en maintenant la touche Maj ou Ctrl enfoncée, puis cliquez sur Remplacer.

Une fenêtre de message apparaît. Elle indique le nombre de remplacements réalisés.

4	Cliquez sur OK pour fermer cette fenêtre.

5	Cliquez sur Fermer pour fermer la boîte de dialogue Rechercher et remplacer dans les unités de programme.


Pour éditer le code source des chaînes trouvées :

Dans la boîte de dialogue Rechercher et remplacer dans les unités de programme, indiquez les critères de recherche et les noeuds où effectuer la recherche.

1	Cliquez sur Rechercher tout ou sur Remplacer tout pour procéder à la recherche, ou à la recherche et au remplacement.

Les instances de la chaîne recherchée (ou recherchée/remplacée) apparaissent dans la zone de liste Résultats.

2	Pour vérifier si un remplacement a été réalisé ou pour modifier directement un code, cliquez sur une instance dans la zone de liste Résultats, puis sur Edition pour ouvrir l'Editeur d'unité de programme.

3	Une fois les modifications et l'enregistrement effectués, cliquez sur Fermer pour fermer l'Editeur d'unité de programme.

4	Cliquez sur Fermer pour fermer la boîte de dialogue Rechercher et remplacer dans les unités de programme.


A propos de PL/SQL

  Rubriques connexes

PL/SQL est une extension du langage SQL, servant de langage procédural à Oracle. Il s'agit d'un langage avancé de type 4GL (langage de programmation de la quatrième génération), qui prend en charge l'encapsulation des données, la surcharge, les types de collecte, la gestion des exceptions et le masquage des informations.

PL/SQL permet d'utiliser des instructions SQL pour manipuler les données Oracle et des instructions de contrôle de flux pour traiter ces données. En outre, vous pouvez déclarer des constantes et des variables, définir des procédures et des fonctions, et détecter les erreurs d'exécution. Par conséquent, PL/SQL combine la puissance de manipulation des données du langage SQL et la puissance de traitement des données des langages procéduraux.

Le moteur PL/SQL est un outil servant à définir, à compiler et à exécuter des unités de programme PL/SQL. Ce moteur est un composant spécial du serveur de base de données Oracle ou d'un outil de développement d'applications comme Oracle Procedure Builder, Oracle Form Builder et Oracle Report Builder.

Un serveur Oracle peut traiter des blocs et des sous-programmes PL/SQL, ainsi que des instructions SQL simples. Le serveur Oracle transmet les blocs et les sous-programmes à son moteur PL/SQL local.

Lorsqu'un outil de développement d'applications contient le moteur PL/SQL, il transmet des blocs et des sous-programmes PL/SQL à son moteur PL/SQL local. Ce moteur exécute toutes les instructions procédurales sur le site de l'application et il n'envoie à Oracle que les instructions SQL. Si un bloc ne contient aucune instruction SQL, le moteur exécute l'intégralité du bloc sur le site de l'application.

Ces deux environnements (serveur et outil) sont indépendants.


Exemple de programme PL/SQL

Cet exemple de programme traite une commande de raquettes de tennis. Il déclare d'abord une variable de type NUMBER pour stocker la quantité de raquettes disponibles. Il extrait ensuite cette quantité de la table de base de données inventory. Si cette quantité est supérieure à zéro, le programme met à jour la table et insère un enregistrement d'achat dans une autre table, purchase_record. Dans le cas contraire, le programme insère un enregistrement d'épuisement du stock dans la table purchase_record.

DECLARE
   qty_on_hand NUMBER(5);
BEGIN
   SELECT quantity INTO qty_on_hand
     FROM inventory
     WHERE product = ’TENNIS RACKET’
   FOR UPDATE OF quantity;
   IF qty_on_hand > 0 THEN -- check quantity
      UPDATE inventory SET quantity = quantity - 1
        WHERE product = ’TENNIS RACKET’;
      INSERT INTO purchase_record
        VALUES (’Raquette de tennis achetée’, SYSDATE);
   ELSE
      INSERT INTO purchase_record
        VALUES (’Raquettes de tennis épuisées’, SYSDATE);
   END IF;
   COMMIT;
END;


A propos de la structure du bloc PL/SQL
A propos de la structure des blocs PL/SQL

  Exemple 	  Rubriques connexes

PL/SQL est un langage structuré en blocs : les unités de base (procédures, fonctions et blocs anonymes) qui composent un programme PL/SQL sont des blocs logiques qui peuvent contenir un nombre quelconque de sous-blocs imbriqués. En général, chaque unité de programme (ou bloc logique) correspond à un problème ou à un sous-problème à résoudre.

Un bloc PL/SQL comporte trois parties : une partie déclarative, une partie exécutable et une partie de gestion des exceptions. (Dans PL/SQL, une condition d'avertissement ou d'erreur est appelée exception.) Seule la partie exécutable est obligatoire.

L'ordre des différentes parties est logique. La première partie est la partie déclarative, dans laquelle vous pouvez déclarer des éléments. Une fois déclarés, ces éléments peuvent être manipulés dans la partie exécutable. Les exceptions qui se sont produites au cours de l'exécution sont traitées dans la partie de gestion des exceptions.

Vous pouvez imbriquer des sous-blocs dans la partie exécutable et la partie de gestion des exceptions d'un bloc ou d'un sous-programme PL/SQL, mais pas dans la partie déclarative. En outre, vous pouvez définir des sous-programmes locaux dans la partie déclarative de tout bloc. Cependant, vous ne pouvez appeler des sous-programmes locaux qu'à partir du bloc dans lequel ils sont définis.

Outre les blocs et les sous-programmes, PL/SQL fournit des packages, qui permettent de regrouper des éléments de programme apparentés pour créer des unités plus volumineuses.


Connexion à un serveur de base de données

  Rubriques connexes

Pour vous connecter à un serveur de base de données dans Procedure Builder :

1	Choisissez Fichier [image] Connecter pour afficher la boîte de dialogue Connexion.

2	Dans la zone de texte Nom utilisateur, entrez le nom utilisateur qui vous a été affecté, par exemple SCOTT.

3	Dans la zone de texte Mot de passe, entrez votre mot de passe, par exemple TIGER. Les informations saisies dans cette zone de texte ne sont pas affichées de manière lisible.

4	Dans la zone de texte Base de données, entrez la chaîne de connexion correspondant à la base de données à laquelle vous voulez vous connecter, par exemple DEMO.

5	Cliquez sur Connecter.

Si la connexion à la base de données réussit, le signe + (plus) apparaît en regard du noeud Objets de base de données dans le Navigateur d'objet.


Pour interrompre la connexion de base de données actuelle

  Rubriques connexes

Choisissez Fichier [image] Déconnecter pour fermer la connexion de base de données actuelle.


Compilation d'une unité de programme

A propos de la compilation des unités de programme

Compilation d'une seule unité de programme

Compilation de toutes les unités de programme

Compilation de toutes les unités de programme non compilées

Compilation d'unités de programme sélectionnées

Détection des erreurs de syntaxe au cours de la compilation


A propos des packages Object Iron

Object Iron est un ensemble de packages de bases de données qui vous permet d'accéder aux tables contenant des instances de types d'objet Oracle8. Les packages génèrent un package propre à chaque table qui vous permet ensuite d'accéder aux données depuis la table indiquée.

Une fois généré, le package propre à chaque table apparaît sous le noeud Unités de programme stockées PL/SQL du Navigateur d'objet. Ce package contient des procédures qui vous permettent de sélectionner, d'insérer, de mettre à jour, de supprimer et de verrouiller des enregistrements dans la table indiquée. Vous pouvez au besoin afficher et modifier le code. Le package propre à chaque table que vous générez est particulièrement utile pour créer un bloc de données Forms utilisant les procédures stockées.

Vous devez posséder certains privilèges pour utiliser les packages Object Iron afin de créer un package propre à chaque table. En outre, les tables doivent remplir certaines conditions.


Installation des packages Object Iron

Vous pouvez installer les packages Object Iron depuis l'Interpréteur de Procedure Builder ou depuis SQL*Plus.

Pour procéder à une installation depuis Procedure Builder :

1	Choisissez Fichier [image] Connecter pour vous connecter à la base de données.

Utilisez comme nom utilisateur celui du schéma contenant la table d'objets.

2	Choisissez Fichier [image] Interpréteur pour exécuter le script genpkgs.pld dans l'Interpréteur.

Le script crée les packages OPB_O8API et OPB_OBJ du côté serveur et la procédure OBJIRON du côté client.

Pour procéder à une installation depuis SQL*Plus :

1	Connectez-vous à la base de données.

2	Pour exécuter le script genpkgs.sql, saisissez start genpkgs lorsque l'invite SQL> apparaît.

Le script crée les packages OPB_O8API et OPB_OBJ, ainsi que la procédure OBJIRON du côté serveur.

Remarque : Le package OPB_OBJ contient les méthodes de création et de suppression d'un package propre à une table. Le package OPB_O8API ne comporte aucun sous-programme disponible pour une utilisation externe. Il est utilisé de manière interne par Oracle.


Création et utilisation d'un package propre à une table

Vous devez installer les packages Object Iron avant de pouvoir créer des packages propres aux tables.

Pour créer un package propre à une table :

  Lancez la procédure OBJIRON pour chacune des tables auxquelles vous souhaitez accéder.

Par exemple :

  PL/SQL> OBJIRON('NOM_TABLE', 'NOM_PROPRIETAIRE');

où NOM_TABLE désigne la table à laquelle vous souhaitez accéder, et NOM_PROPRIETAIRE le propriétaire de cette table.

Dans cet exemple, la procédure OBJIRON crée le package OPB$TABLENAME.

Remarque : La longueur maximale du nom de package généré est de 30 caractères. Si ce nom excède 30 caractères, seuls les 26 premiers sont utilisés, car la procédure y ajoute automatiquement le préfixe OPB$.

Utilisation d'un package propre à une table

La procédure OBJIRON crée un package contenant cinq procédures, propre à une table. Dans cet exemple, le package généré porte le nom d'OPB$TABLENAME, et les procédures figurant dans le package sont les suivantes :

OPB$TABLENAME.O_Select
OPB$TABLENAME.O_Insert
OPB$TABLENAME.O_Update
OPB$TABLENAME.O_Delete
OPB$TABLENAME.O_Lock

Lorsque vous appelez une procédure dans votre code, assurez-vous que le nom du package est correct.

La procédure OBJIRON fournit un « emballage » pratique qui permet d'appeler les packages Object Iron. Vous pouvez insérer une clause WHERE personnalisée pour filtrer les données retournées par O_Select ou modifier le repère O_Lock WAIT/NOWAIT en modifiant la procédure. Pour plus d'informations sur les repères WAIT/NOWAIT, reportez-vous au manuel Oracle8 SQL Reference Manual.


Suppression d'un package propre à une table

Lorsque vous n'avez plus besoin d'un package propre à une table, lancez la fonction OPB_OBJ.drp. Par exemple :

PLSQL> declare
    +>   outstr VARCHAR2(240);
    +> begin
    +>   outstr := OBJIRON('NOM_TABLE', 'NOM_PROPRIETAIRE');
   +>   -- utilisez text_io ou dbms_output pour voir le résultat
    +> end;

où NOM_TABLE désigne la table à supprimer, et NOM_PROPRIETAIRE le propriétaire de cette table.

Cette fonction exécute l'instruction DROP PACKAGE OPB$TABLENAME qui supprime de la base de données les packages associés et libère la mémoire qui leur était affectée.


Création d'un bloc de données Forms à l'aide d'un package propre à une table

Vous créez un bloc de données Forms à l'aide d'un package propre à une table comme vous le feriez à l'aide d'un ensemble de procédures stockées.

Lorsque vous sélectionnez une procédure stockée en tant que source de données pour votre bloc de données, n'oubliez pas d'indiquer le nom exact de la procédure, ainsi que le préfixe de nom de package approprié. Par exemple, lorsque vous accédez à la table TABLENAME via le package OPB$TABLENAME, utilisez les procédures suivantes pour effectuer l'action souhaitée dans le bloc de données :

•	procédure OPB$TABLENAME.O_Select pour les interrogations

•	procédure OPB$TABLENAME.O_Insert pour insérer des enregistrements

•	procédure OPB$TABLENAME.O_Update pour mettre à jour les enregistrements

•	procédure OPB$TABLENAME.O_Delete pour supprimer des enregistrements

•	procédure OPB$TABLENAME.O_Lock pour verrouiller des enregistrements


Privilèges et conditions d'utilisation des packages Object Iron

Privilèges

Le propriétaire de la table d'objets doit disposer du privilège CREATE ANY PROCEDURE pour utiliser les packages Object Iron et ainsi créer un package propre à une table. Ce privilège est accordé par l'administrateur système.

Conditions

La table d'objets à utiliser pour créer un package doit remplir les conditions suivantes :

•	La table ne peut contenir que des objets simples composites et des valeurs REF. L'interface Object Iron ne prend pas en charge les éléments RAW, LONG RAW, CLOB, BLOB, LOB, NESTED TABLES et VARRAY.

•	Tous les types d'objet composite figurant dans les colonnes de la table doivent appartenir au même schéma que la table.


Nouveau [menu Fichier]

Affiche un menu en cascade comportant les options suivantes :

•	Unité de programme - pour créer une nouvelle unité de programme

•	Bibliothèque PL/SQL - pour créer une nouvelle bibliothèque


Nouvelle unité de programme [menu Fichier]

Affiche la boîte de dialogue Nouvelle unité de programme dans laquelle vous pouvez entrer le nom et le type de l'unité de programme que vous voulez créer.


Nouvelle bibliothèque PL/SQL [menu Fichier]

Crée une nouvelle bibliothèque avec un nom temporaire.


Ouvrir [menu Fichier]

Affiche la boîte de dialogue d'ouverture dans laquelle vous pouvez indiquer le nom et l'emplacement de la bibliothèque à ouvrir.


Fermer [menu Fichier]

Ferme la bibliothèque en cours ou sélectionnée.

Si la bibliothèque n'a pas été enregistrée, un message vous invite à enregistrer les modifications avant de la fermer.


Enregistrer [menu Fichier]

Enregistre la bibliothèque à l'emplacement indiqué.

Si la bibliothèque n'a pas encore été enregistrée, Procedure Builder affiche la boîte de dialogue d'enregistrement de bibliothèque dans laquelle vous pouvez indiquer l'emplacement et le nom de fichier/module de la bibliothèque.


Enregistrer sous [menu Fichier]

Affiche la boîte de dialogue d'enregistrement dans laquelle vous pouvez indiquer un nom de fichier et l'emplacement où vous voulez enregistrer la bibliothèque.


Rétablir [menu Fichier]

Rend au document l'état dans lequel il se trouvait lors du dernier enregistrement, en supprimant toutes les modifications apportées depuis le dernier enregistrement.


Importer texte [menu Fichier]

Vous permet d'importer dans l'éditeur d'unité de programme un fichier texte d'unité de programme en vue de sa compilation. Cette commande affiche la boîte de dialogue de fichiers du système d'exploitation, dans laquelle vous pouvez choisir l'emplacement et le nom d'un fichier texte d'unité de programme.


Exporter texte [menu Fichier]

Vous permet d'écrire une unité de programme dans un fichier texte du système de fichiers. Cette commande affiche la boîte de dialogue de fichiers de votre système d'exploitation, dans laquelle vous pouvez indiquer un nom et l'emplacement où l'unité de programme exportée doit être stockée.

Les fichiers texte d'unité de programme reçoivent automatiquement le suffixe .pls.


Attacher bibliothèque [menu Fichier]

Affiche la boîte de dialogue d'attachement de bibliothèque, dans laquelle vous pouvez indiquer le nom et l'emplacement de la bibliothèque que vous voulez attacher à votre session en cours.


Charger [menu Fichier]

Affiche la boîte de dialogue de chargement d'unité de programme, dans laquelle vous pouvez indiquer le nom et l'emplacement de l'unité de programme que vous voulez charger. Cette unité de programme est compilée lors du chargement.


Interpréter [menu Fichier]

Affiche la boîte de dialogue Interpréteur de script de débogage dans laquelle vous pouvez indiquer le nom et l'emplacement du script de l'Interpréteur que vous voulez exécuter.


Journal [menu Fichier]

Affiche la boîte de dialogue Journal interpréteur dans laquelle vous pouvez indiquer le nom et l'emplacement d'un fichier journal, nouveau ou existant, destiné à recevoir l'entrée et la sortie de l'interpréteur.


Connecter [menu Fichier]

Affiche la boîte de dialogue connexion dans laquelle vous pouvez indiquer une chaîne de connexion pour vous connecter à une instance de la base de données.


Disconneter [menu Fichier]

Met fin à votre connexion à la base de données.


Administration [menu Fichier]

Affiche un menu en cascade comportant les options suivantes :

•	Octroyer l'accès - pour accorder et révoquer des autorisations d'accès aux unités de programmes stockées ou aux bibliothèques

•	Archivage-pour ajouter un nouveau fichier au contrôle de source

•	Extraction-pour extraire un fichier du contrôle de source

•	Gestion des archives et rapports-pour afficher la boîte de dialogue correspondante.


Administration - Octroyer l'accès [menu Fichier]

Affiche la boîte de dialogue Autorisation à liste d'accès dans laquelle vous pouvez accorder et révoquer des autorisations d'accès d'utilisateurs aux unités de programmes stockées ou aux bibliothèques.


Quitter [menu Fichier]

Met fin à votre session en cours. Selon l'état de votre session, vous pouvez, avant de quitter, être invité à enregistrer les modifications qui n'ont pas encore été enregistrées.


Imprimer [menu Fichier]

Imprime le document en cours.


Configuration de l'imprimante [menu Fichier]

Affiche la boîte de dialogue Configuration de l'imprimante, dans laquelle vous pouvez sélectionner une imprimante et définir d'autres options d'impression.


Courrier [menu Fichier]

Envoie le document sélectionné aux destinataires sélectionnés.


Administration - Archivage [menu Fichier]

Affiche la boîte de dialogue d'archivage dans laquelle vous pouvez indiquer le nom du fichier à archiver, ainsi que le nom de l'archive où le fichier doit être archivé.


Administration - Extraction [menu Fichier]

Affiche la boîte de dialogue d'extraction dans laquelle vous pouvez indiquer les noms de l'archive et du fichier à extraire.


Administration - Gestion des archives et rapports [menu Fichier]

Affiche la boîte de dialogue d'options dans laquelle vous pouvez ajouter/supprimer des répertoires d'archives, verrouiller/déverrouiller des archives ou générer un journal d'activités d'archives et créer des états d'archives.


Mise en page [menu Fichier]

Affiche la boîte de dialogue de mise en page du système, dans laquelle vous pouvez définir des options d'impression et sélectionner une imprimante.


Annuler [menu Edition]

Annule la dernière opération que vous avez exécutée.


Couper [menu Edition]

Supprime le texte ou l'objet sélectionné et le place dans le presse-papiers.

Le contenu du presse-papiers est remplacé chaque fois qu'une opération Copier ou Couper est exécutée.


Copier [menu Edition]

Copie le texte ou l'objet sélectionné et le place dans le presse-papiers sans le supprimer.

Le contenu du presse-papiers est remplacé chaque fois qu'une opération Copier ou Couper est exécutée.


Coller [menu Edition]

Place le contenu du presse-papiers (c'est-à-dire le dernier objet coupé ou copié) à l'emplacement du curseur.


Effacer [menu Edition]

Efface le texte ou l'objet sélectionné, mais sans le stocker dans le presse-papiers.


Copier [Menu Edition]
Dupliquer [menu Edition]

Crée une copie de l'objet sélectionné.


Rechercher/remplacer [menu Edition]

Affiche la boîte de dialogue de recherche et de remplacement, dans laquelle vous pouvez indiquer vos critères de recherche, et, en option, une chaîne de remplacement.

La recherche commence à la dernière position du curseur et se poursuit jusqu'à la fin du document en cours. Si votre recherche n'a pas commencé au début du document, lorsque vous arrivez à la fin, vous êtes invité à reprendre la recherche à partir du début. Si vous choisissez cette options, la recherche se poursuit jusqu'au point auquel elle a commencé à l'origine.

Cette fonction permet de rechercher une expression régulière ou une chaîne de caractères indiquée et, en option, de la remplacer par une autre chaîne de caractères. Elle est utile pour explorer une source d'unité de programme d'une certaine longueur.


Rechercher/remplacer tout [menu Edition]

Affiche la boîte de dialogue de recherche et de remplacement tout, dans laquelle vous pouvez indiquer vos critères de recherche et, en option, une chaîne de remplacement. Vos critères de recherche peuvent être soit une chaîne soit une expression régulière.

Cette commande exécute des opérations de recherche et remplacement sur plusieurs unités de programme. Sélectionnez le noeud Unités de programme dans le Navigateur d'objet pour effectuer une recherche et remplacement portant sur toutes les unités de programme en cours. Sélectionnez un noeud de bibliothèque ouverte dans le Navigateur pour effectuer une recherche et remplacement sur toutes les unités de programme de cette bibliothèque.


Sélectionner tout [menu Edition]

Sélectionne tous les éléments du contexte en cours. Si vous êtes dans l'Editeur d'unité de programme, par exemple, cette commande sélectionne tout le texte de l'unité de programme en cours.


Retrait [menu Edition]

Met en retrait les lignes source sélectionnées dans l'éditeur actif. Si aucune ligne n'est sélectionnée, cette commande met en retrait les caractères situés à droite du curseur.


Retrait négatif [menu Edition]

Met les lignes source sélectionnées en retrait négatif dans l'éditeur actif.


Annuler annulation [menu Edition]

Annule l'opération d'annulation la plus récente.


Développer [menu Navigateur]

Affiche les fils (le cas échéant) du noeud sélectionné.


Réduire [menu Navigateur]

Masque les fils (le cas échéant) du noeud sélectionné.


Développer tout [menu Navigateur]

Affiche les fils du noeud sélectionné, les fils des noeuds fils, et ainsi de suite.

Cependant, cette option ne développe pas les noeuds des attributs et des types de données Oracle8 de manière récurrente.


Réduire tout [menu Navigateur]

Masque les fils du noeud sélectionné, les fils du noeud fils, et ainsi de suite.


Créer [menu Navigateur]

Crée un nouvel objet de même type que le noeud d'en-tête ou l'objet sélectionné.


Supprimer [menu Navigateur]

Supprime l'objet sélectionné. Vous pouvez être invité à confirmer la suppression.


Signet [menu Navigateur]

Place un signet sur le noeud sélectionné pour vous permettre d'utiliser d'autres objets du Navigateur, puis de revenir au noeud portant un signet.

Il ne peut y avoir qu'un signet actif à la fois. Lorsque vous définissez un nouveau signet, le précédent est supprimé.


Atteindre signet [menu Navigateur]

Revient au noeud sur lequel vous avez placé un signet.


Désactiver [menu Navigateur]

Désactive le déclencheur de base de données ou l'action de débogage sélectionnée ou en cours.


Activer [menu Navigateur]

Active l'action de débogage ou le déclencheur de base de données en cours, ou une action ou un déclencheur préalablement désactivé.


Coller nom [menu Navigateur]

Vous permet d'insérer un appel à un sous-programme intégré en collant le sous-programme à la position du curseur dans la ligne de commande de l'Interpréteur PL/SQL ou de l'Editeur d'unité de programme.


Coller arguments [menu Navigateur]

Vous permet d'insérer un appel à un sous-programme intégré avec des spécifications d'argument en collant le sous-programme intégré et sa spécification d'argument à l'emplacement du curseur dans la ligne de commande de l'Interpréteur PL/SQL ou de l'Editeur d'unité de programme. Remplacez la spécification d'argument par les arguments appropriés.


Eléments de table [menu Navigateur]

La zone de sélection d'éléments de table PL/SQL vous permet de consulter certaines lignes sélectionnées dans une table sans développer la totalité de la table dans le Navigateur d'objet. Par défaut, les index de toutes les lignes d'une table sont sélectionnés. Pour effacer des sélections, annulez la sélection des lignes que vous ne voulez pas afficher et acceptez la zone de sélection. Les lignes que vous avez sélectionnées apparaissent alors totalement développées dans le Navigateur d'objet.


Compiler [menu Programme]

Affiche un menu en cascade comportant les options suivantes :

•	Incrémentiel - pour ne compiler que les unités de programme non compilées

•	Tout - pour compiler toutes les unités de programme

La compilation est fondée sur le noeud sélectionné :

Unités de programme	toutes les unités de programme du noeud Unités de programme
Bibliothèques	toutes les unités de programme de chaque bibliothèque ouverte énumérée dans le noeud
une bibliothèque spécifique	toutes les unités de programme de la bibliothèque sélectionnée


Compiler Incrémentiel [menu Programme]

Ne compile que les unités de programme du noeud sélectionné qui doivent être compilées. Affiche la boîte de dialogue de compilation contenant les erreurs générées pendant la compilation des unités de programme d'une bibliothèque.


Compiler Tout [menu Programme]

Compile toutes les unités de programme du noeud sélectionné, quel que soit leur état de compilation. Affiche la boîte de dialogue de compilation contenant les erreurs générées pendant la compilation des unités de programme d'une bibliothèque.


Editeur PL/SQL [menu Programme]
Editeur d'unité de programme [menu Programme]

Affiche l'Editeur d'unité de programme dans lequel vous pouvez éditer les unités de programme existantes ou en créer de nouvelles.


Interpréteur PL/SQL [menu Programme]

Affiche un nouvel Interpréteur PL/SQL dans lequel vous pouvez exécuter du code PL/SQL, des commandes SQL ou des commandes de l'Interpréteur PL/SQL.


Editeur d'unité de programme stockée [menu Programme]

Affiche l'Editeur d'unité de programme stockée qui vous permet de modifier les unités de programme stockées ou d'en créer. Grâce à cet éditeur, vous pouvez également modifier les spécifications et le corps des types de données Oracle8 définis par l'utilisateur. Pour afficher cet éditeur, vous devez être connecté à la base de données, et avoir accès aux types de données et aux unités de programme qu'elle contient.


Editeur de déclencheur de base de données [menu Programme]

Affiche l'Editeur de déclencheur de base de données dans lequel vous pouvez éditer les déclencheurs de base de données existants ou en créer de nouveaux. Vous devez être connecté à la base de données pour afficher cet éditeur.


Rechercher et remplacer dans les unités de programme [menu Programme]

Affiche la boîte de dialogue de recherche et de remplacement dans les unités de programme qui vous permet de rechercher et de remplacer le texte dans plusieurs unités de programme côté client sans ouvrir plusieurs instances de l'Editeur d'unité de programme.


Palette de syntaxe [menu Programme]

Affiche la palette de syntaxe qui vous permet de sélectionner et de visualiser la syntaxe des instructions PL/SQL ou des packages intégrés. Vous pouvez également copier cette syntaxe dans un éditeur de texte.


Interruption (menu Débogage)
Interruption [menu Débogage]

Affiche la boîte de dialogue Point d'interruption dans laquelle vous pouvez indiquer les options de création d'un point d'interruption.


Déclencheur (menu Débogage)
Déclencheur [menu Débogage]

Affiche la boîte de dialogue Déclencheur dans laquelle vous pouvez entrer un déclencheur de débogage.


Edition (menu Débogage)
Edition [menu Débogage]

Affiche l'éditeur d'unité de programme dans lequel vous pouvez modifier l'unité de programme affichée dans l'Interpréteur.


Step (menu Débogage)
Step [menu Débogage]

Affiche la boîte de dialogue Step dans laquelle vous pouvez définir les options de déroulement pas à pas de l'unité de programme suspendue.


Exécuter (menu Débogage)
Exécuter [menu Débogage]

Reprend l'exécution de l'unité de programme suspendue jusqu'à la prochaine action de débogage ou la fin de l'unité de programme.


Réinitialiser (menu Débogage)
Réinitialiser [menu Débogage]

Sort du niveau de débogage en cours. S'il s'agit du niveau 1, cette commande met fin à l'exécution suspendue.


Commandes du menu Fichier

Nouveau

Unité de programme

Bibliothèque PL/SQL

Ouvrir

Fermer

Enregistrer

Enregistrer sous

Rétablir

Importer texte

Exporter texte

Attacher bibliothèque

Charger

Interpréter

Journal

Mise en page

Imprimer

Connecter

Déconnecter

Administration

Accès à la bibliothèque

Archivage

Extraction

Gestion des archives et rapports

Quitter


Commandes du menu Edition

Annuler

Annuler annulation

Couper

Copier

Coller

Effacer

Dupliquer

Retrait

Retrait négatif

Sélectionner tout

Rechercher et remplacer


Commandes du menu Affichage

Fenêtre source

Fenêtre Navigateur

Fenêtre Interpréteur

Journal interpréteur


Commandes du menu Navigateur

Développer

Réduire

Développer tout

Réduire tout

Créer

Supprimer

Signet

Atteindre signet

Désactiver

Activer

Coller nom

Coller arguments

Eléments de table


Commandes du menu Programme

Compiler

Incrémentiel

Tout

Editeur d'unité de programme

Interpréteur PL/SQL

Editeur d'unité de programme stockée

Editeur de déclencheur de base de données

Rechercher et remplacer dans les unités de programme

Palette de syntaxe


Commandes du menu Débogage

Interruption

Déclencheur

Edition

Step

Exécuter

Réinitialiser


Commandes du menu Aide

Rubriques d'aide

Aperçu produit

Assistants

Manuels

A propos de Procedure Builder


Rubriques d'aide [menu Aide]

Appelle le système d'aide en ligne.


Recherche de l'aide sur [menu Aide]

Affiche la page Rechercher du système d'aide en ligne, dans laquelle vous pouvez exécuter une recherche de texte intégral sur un élément du système d'aide.


Assistants [menu Aide]

Appelle les Assistants qui fournissent des instructions détaillées sur l'exécution des tâches courantes, ainsi que des présentations visuelles des concepts et des processus les plus importants.


Aperçu produit [menu Aide]

Appelle le programme Aperçu produit qui vous présente les concepts et l'utilisation de Forms Developer. Pour que vous puissiez visualiser cet Aperçu produit, le lecteur Oracle Media Objects doit être installé sur votre système.

Si vous recevez un message d'erreur lorsque vous tentez de lancer l'Aperçu produit, les bons fichiers n'ont pas été installés.

Vérifiez auprès de votre administrateur système ou ré-exécutez le programme d'installation en veillant à sélectionner l'Aperçu produit.


Manuels [menu Aide]

Affiche les manuels en ligne.


A propos de Procedure Builder [menu Aide]

Affiche la boîte de dialogue A propos qui indique la version du composant Oracle que vous utilisez, les sous-composants correspondants et des informations de copyright.


Fenêtre Source [menu Affichage]

Affiche ou masque la fenêtre Source de l'Interpréteur PL/SQL.


Fenêtre Navigateur [menu Affichage]

Affiche ou masque la fenêtre Navigateur de l'Interpréteur PL/SQL.


Fenêtre Interpréteur [menu Affichage]

Affiche ou masque la fenêtre Interpréteur de l'Interpréteur PL/SQL.


Journal Interpréteur [menu Affichage]

Affiche l'explorateur du Journal interpréteur PL/SQL, qui contient une transcription en lecture seule de la session de journalisation en cours de l'Interpréteur.


Menu Fenêtre

Ce menu contient la liste de toutes les fenêtres d'Oracle ouvertes et vous permet d'en choisir une à activer.

La fenêtre choisie devient la fenêtre active et s'affiche devant toutes les autres.


Interface de l'Editeur de déclencheur de base de données

  Rubriques connexes

L'Editeur de déclencheur de base de données est l'interface graphique de l'instruction CREATE TRIGGER. Il offre un moyen simple de créer, d'éditer et de compiler des déclencheurs de lignes et d'instructions pour les tables et les vues de base de données. Vous pouvez créer et éditer les déclencheurs BEFORE/AFTER des tables, et les déclencheurs INSTEAD OF des vues et des vues d'objets. Un utilitaire de génération de rapports d'erreurs fait apparaître un message d'erreur lorsque vous tentez de récupérer, de stocker ou de supprimer un déclencheur non valide.

Pour utiliser un éditeur de déclencheur de base de données, vous devez être connecté à une base de données. Pour faire apparaître l'éditeur de déclencheur de base de données, sélectionnez Programme [image] Editeur de déclencheur de base de données dans le menu.

Pour obtenir toutes les informations sur les déclencheurs de base de données, reportez-vous au manuel Oracle8 Concepts Manual.

Familiarisez-vous avec

L'interface de l'Editeur de déclencheur de base de données

Les déclencheurs de base de données


Application Forms sans mode

L'Interpréteur sans mode n'interrompt pas le contrôle de l'application, ce qui vous permet d'intervenir comme vous le souhaitez. Vous pouvez afficher l'Interpréteur PL/SQL sans mode chaque fois que vous voulez définir, afficher et déboguer une unité de programme, en choisissant Programme [image] Interpréteur PL/SQL dans le menu.


Application Forms modale

L'Interpréteur PL/SQL modal apparaît lorsqu'une application runtime appelle une unité de programme contenant une action de débogage. Cette application est lancée en « mode débogage ».

Lorsqu'une unité de programme d'une application est suspendue par une action de débogage, le contrôle est transmis à l'interpréteur modal. Si elle existe, la source associée à l'unité de programme interrompue est affichée dans la fenêtre Interpréteur.

Après avoir consulté, et éventuellement modifié, l'état du programme interrompu, vous pouvez reprendre son exécution en fermant l'interpréteur modal.

L'application reprend le contrôle et s'exécute jusqu'à ce qu'elle soit terminée ou jusqu'à la prochaine action de débogage.


Editeur d'unité de programme

  Rubriques connexes

L'Editeur d'unité de programme offre des fonctions d'édition, de compilation et de survol des messages d'avertissement/d'erreur pour le développement d'unités de programme côté client.

Pour afficher l'éditeur d'unité de programme, sélectionnez les options Programme [image] Editeur d'unité de programme dans le menu.

L'éditeur prend en charge les fonctions suivantes :

•	retrait/retrait négatif automatique

•	mise en évidence de la syntaxe à l'aide de couleurs

•	sélection de colonnes et de lignes

•	manipulation de texte par glisser-déplacer

•	vues multiples

•	impression

•	annulation et annulation d'annulation illimitées

Familiarisez-vous avec

L'interface de l'Editeur d'unité de programme


Editeur d'unité de programme stockée

  Rubriques connexes

L'Editeur d'unité de programme stockée offre des fonctions d'édition, de compilation et de survol des messages d'avertissement/d'erreur pour le développement des unités de programme stockées dans une base de données.

Pour utiliser l'éditeur d'unité de programme stockée, vous devez être connecté à une base de données. Pour pouvoir afficher l'Editeur d'unité de programme stockée, sélectionnez les options Programme [image] Editeur d'unité de programme stockée dans le menu.

L'éditeur prend en charge les fonctions suivantes :

•	retrait/retrait négatif automatique

•	mise en évidence de la syntaxe à l'aide de couleurs

•	sélection de colonnes et de lignes

•	manipulation de texte par glisser-déplacer

•	vues multiples

•	impression

•	annulation et annulation d'annulation illimitées

L'Editeur d'unité de programme stockée vous permet également d'éditer la spécification (attributs) et le corps (méthodes) des types de données Oracle8 définis par l'utilisateur.

Familiarisez-vous avec

L'interface de l'Editeur d'unité de programme stockée


Interpréteur PL/SQL

  Rubriques connexes

L'Interpréteur PL/SQL est l'espace de travail de débogage central de Procedure Builder. Il constitue un espace de travail dans lequel vous pouvez afficher un code source, créer des actions de débogage, exécuter des unités de programme et les commandes d'Interpréteur de Procedure Builder, et émettre des instructions PL/SQL ou SQL.

Pour afficher l'interpréteur PL/SQL, sélectionnez Programme [image] Interpréteur PL/SQL dans le menu.

Selon votre environnement de travail, l'Interpréteur PL/SQL peut se présenter sous deux formes différentes :

•	sans mode

•	modal

Familiarisez-vous avec

L'interface de l'Interpréteur PL/SQL


Navigateur d'objet

  Rubriques connexes

Le Navigateur d'objet permet un accès direct à tous les objets de l'environnement de développement. Il vous permet de créer et de manipuler tous les éléments PL/SQL (unités de programme, bibliothèques, actions de débogage et variables) et les types de données Oracle8 définis par l'utilisateur, si vous êtes connecté à un serveur de base de données Oracle8. Vous pouvez sélectionner des commandes du Navigateur dans le menu et dans la barre d'outils verticale située à gauche de l'écran.

Familiarisez-vous avec

L'interface du Navigateur d'objet


Palette de syntaxe

  Rubriques connexes

La palette de syntaxe est utile aux programmeurs qui ne connaissent pas la structure d'un langage de programmation ou qui ne souhaitent pas avoir à saisir les éléments de langage fréquemment employés. Il s'agit d'un outil qui offre l'avantage d'afficher les éléments d'un langage de programmation et qui vous permet de les copier vers un éditeur de texte.

Pour afficher la palette de syntaxe, sélectionnez Programme [image] Palette de syntaxe dans le menu.

Vous pouvez utiliser la palette de syntaxe uniquement avec l'éditeur d'unité de programme ou d'unité de programme stockée. Lorsque vous ouvrez la palette et un éditeur, vous pouvez copier la syntaxe de la palette vers l'emplacement du curseur dans l'éditeur actif.

Familiarisez-vous avec

L'interface de la palette de syntaxe


Navigateur d'objet

Le Navigateur d'objet permet un accès direct à tous les objets de l'environnement de développement. Il vous permet de créer et de manipuler tous les éléments PL/SQL (unités de programme, bibliothèques, actions de débogage et variables) et les types de données Oracle8 définis par l'utilisateur, si vous êtes connecté à un serveur de base de données Oracle8. Vous pouvez sélectionner des commandes du Navigateur dans le menu et dans la barre d'outils verticale située à gauche de l'écran.

Affichage d'objets dans le Navigateur d'objet :

Sélection d'un objet

Recherche d'un objet

Développement d'un noeud

Réduction d'un noeud

Ajout d'un signet

Accès à un signet

Création, suppression et déplacement d'objets dans le Navigateur d'objet :

Création d'un objet

Réorganisation d'un objet

Suppression d'un objet

Familiarisez-vous avec

L'interface du Navigateur d'objet

La prise en charge des objets Oracle8 dans le Navigateur d'objet


L'interface du Navigateur d'objet

Le Navigateur d'objet contient les composants suivants :

Barre d'outils du Navigateur : la barre d'outils verticale propose des boutons correspondant aux opérations standard suivantes :

Ouvrir	Affiche la boîte de dialogue de fichiers de votre système d'exploitation pour vous permettre d'ouvrir un document.
Enregistrer	Tente d'enregistrer le document sélectionné à l'emplacement indiqué. Si le document n'a pas encore été enregistré, affiche la boîte de dialogue de fichiers de votre système d'exploitation.
Couper	Supprime le texte ou l'objet sélectionné et le place dans le presse-papiers.
Copier	Copie le texte ou l'objet sélectionné et le place dans le presse-papiers sans le supprimer.
	Le contenu du presse-papiers est remplacé chaque fois qu'une opération Copier ou Couper est exécutée.
Coller	Place le contenu du presse-papiers (c'est-à-dire le dernier objet coupé ou copié) à l'emplacement du curseur.
Créer	Crée un nouvel objet de même type que le noeud d'en-tête ou l'objet sélectionné.
Supprimer	Supprime l'objet sélectionné. Vous pouvez être invité à confirmer la suppression.
Développer	Affiche les fils (le cas échéant) du noeud sélectionné.
Réduire	Masque les fils (le cas échéant) du noeud sélectionné.
Développer tout	Affiche les fils du nœud sélectionné, ceux des nœuds fils, etc. Cette option ne développe pas les nœuds des types de données et des attributs Oracle8 de manière récurrente.
Réduire tout	Masque les fils du noeud sélectionné, les fils du noeud fils, et ainsi de suite.

Zone d'affichage des noeuds La zone d'affichage des noeuds du Navigateur d'objet offre une liste hiérarchique de tous les objets auxquels vous avez accès pendant la session en cours. Chaque objet figurant dans la liste du Navigateur se compose de trois parties, de gauche à droite :

indicateur de sous-noeud	Indique si le nœud a des sous-noeuds et s'il est développé ou réduit.
+ (plus)	Contient des objets de niveau inférieur qui sont masqués car le nœud est réduit.
- (minus)	Contient des objets de niveau inférieur qui sont visibles car le nœud est développé.
icône de type	Indique le type d'objet (par exemple, unité de programme, bibliothèque, type de données Oracle8, etc.). Pour certains objets, cliquez deux fois sur cette icône pour appeler la boîte de dialogue ou l'éditeur approprié.
nom	Nom par défaut ou nom que vous avez attribué au module ou à l'objet.
* (astérisque)	Un astérisque apparaissant après le nom d'une unité de programme indique que celle-ci a été modifiée et qu'elle doit être recompilée.
@ (a commercial)	Le symbole @ apparaissant après le nom d'une unité de programme indique que cette unité a été chargée telle quelle depuis une bibliothèque.

Le tableau suivant répertorie les objets situés dans la zone d'affichage des nœuds :

Unités de programme	Eléments PL/SQL côté client qui peuvent être reconnus et traités indépendamment par le compilateur PL/SQL. Ils peuvent appeler des sous-programmes définis dans les unités de programme stockées côté serveur.
Spécifications	Nom, paramètre et type de retour (fonctions uniquement) de l'unité de programme.
Références	Procédures, fonctions, tables et blocs anonymes référencés par l'unité de programme.
Référencé par	Procédures, fonctions, tables et blocs anonymes qui font référence à l'unité de programme.
Bibliothèques PL/SQL	Ensemble de fonctions, de procédures et de packages PL/SQL stockés dans la base de données ou le système de fichiers. Pour éditer l'unité de programme d'une bibliothèque ou modifier le contenu de cette dernière, vous devez avant tout ouvrir la bibliothèque.
Bibliothèques attachées	Bibliothèques référencées stockées dans la base de données ou le système de fichiers. Pour exécuter une unité de programme d'une bibliothèque, vous devez avant tout attacher cette dernière.
Packages intégrés	Vous pouvez référencer les éléments PL/SQL lors de l'élaboration d'applications ou du débogage d'unités de programme.
Actions de débogage	Actions qui vous permettent de contrôler ou d'interrompre l'exécution d'unités de programme PL/SQL.
Pile	Chaîne d'appels de sous-programmes, du premier point d'entrée jusqu'au sous-programme en cours d'exécution.
Objets de base de données	Objets de schéma, constitués d'ensembles d'unités de programme côté serveur, de bibliothèques, de tables, de vues et de types de données Oracle8. Vous ne pouvez développer un nœud que lorsque vous êtes connecté à une base de données. Cette option affiche tous les objets de votre schéma et ceux des autres schémas auxquels vous avez accès au cours de la session.
Unités de programme stockées	Packages et sous-programmes PL/SQL qui sont situés et exécutés sur le serveur de base de données Oracle.
Bibliothèques PL/SQL	Ensemble de fonctions, de procédures et de packages PL/SQL stockés dans la base de données.
Tables	Contient les tables que vous créez dans votre schéma. Les déclencheurs et les colonnes sont des sous-noeuds.
Vues	Contient les vues que vous créez dans votre schéma. Les déclencheurs et les colonnes sont des sous-noeuds.
Types	Disponible uniquement sous Oracle8. Contient les types d'objet définis par l'utilisateur, ainsi que les types d'ensemble, et les méthodes et attributs associés.
Déclencheurs	Déclencheurs Before/After destinés aux tables, et déclencheurs Instead Of réservés aux vues et aux vues d'objets.
Colonnes	Colonnes des tables et des vues.

Indicateur d'emplacement L'indicateur d'emplacement indique le nom du noeud ou de l'objet sélectionné.

Zone de texte Rechercher La zone de texte Rechercher vous permet de rechercher un objet dans le Navigateur en tapant le nom partiel ou complet de l'objet.

 et [image]  Après une première recherche, les boutons de recherche avant ou arrière permettent de rechercher l'occurrence suivante ou précédente des critères de recherche dans le Navigateur d'objet.


Interface Interpréteur PL/SQL

L'Interpréteur PL/SQL est l'espace de travail de débogage, où vous pouvez afficher le code source, créer des actions de débogage, lancer des unités de programme et exécuter des commandes de l'Interpréteur, et des instructions PL/SQL et SQL.

Par défaut, deux fenêtres sont toujours ouvertes dans l'Interpréteur PL/SQL : la fenêtre Source et la fenêtre Interpréteur.

Boutons de barre d'outils standard  Toutes les fenêtres de l'Interpréteur ont la même barre d'outils. A l'exception de Fermer, les boutons décrits ci-dessous ne sont activés que pendant la suspension de l'exécution d'une unité de programme et sont utilisés pour le débogage.

Step Into		Reprend l'exécution de l'unité de programme interrompue, jusqu'à l'instruction exécutable suivante.
Step Over		Reprend l'exécution de l'unité de programme interrompue, jusqu'à l'instruction exécutable suivante, en sautant tous les appels aux sous-programmes imbriqués.
Step Out		Reprend l'exécution du sous-programme imbriqué, en suspendant l'exécution à la prochaine instruction exécutable dans l'unité de programme appelante.
Atteindre		Reprend l'exécution de l'unité de programme interrompue, jusqu'à la fin de l'unité de programme ou la prochaine action de débogage.
Réinitialiser		Sort du niveau de débogage en cours. Au niveau 1, l'exécution interrompue est abandonnée.
Fermer		Ferme la fenêtre Interpréteur.
Aide		Affiche cette rubrique d'aide.

Fenêtre Source  La fenêtre Source affiche en lecture seule une copie de l'unité de programme sélectionnée. Les mots-clés, les commentaires, les chaînes et les symboles sont colorés différemment. La première colonne de la marge gauche est réservée aux icônes ou aux symboles. Les lignes source sont numérotées dans la seconde colonne. Les icônes suivantes peuvent être affichées :

flèche jaune		Indique l'emplacement ou le PC d'exécution en cours (compteur d'instruction).
rond rouge		Indique un point d'interruption ou un déclencheur activé.
rond vert		Indique un point d'interruption ou un déclencheur désactivé.

Les symboles suivants peuvent également apparaître dans la fenêtre Source :

|	Indique l'emplacement du source en cours.  Cet emplacement change à la suite de l'exécution de commandes de l'Interpréteur (LIST par exemple) ou lorsque l'exécution de l'unité de programme est interrompue par une action de débogage (un point d'interruption, par exemple).
B(n)	Indique l'emplacement d'un point d'interruption, où n est l'ID d'action de débogage correspondant.
T(n)	Indique l'emplacement d'un déclencheur de débogage, où n est l'ID d'action de débogage correspondant.

La fenêtre Source offre un menu instantané comprenant les commandes suivantes (sous Windows, cliquez avec le bouton droit de la souris) :

Arrêt	Affiche la boîte de dialogue Point d'interruption, dans laquelle vous pouvez définir un nouveau point d'interruption.
Déclencheur	Affiche la boîte de dialogue Déclencheur, dans laquelle vous pouvez définir un nouveau déclencheur de débogage.
Edition	Affiche l'Editeur d'unité de programme, dans lequel vous pouvez éditer l'unité de programme en cours.

Remarque : Les systèmes ne prennent pas tous en charge les menus instantanés. Les commandes ci-dessus figurent également dans le menu Débogage.

Barres de partage Les barres de partage permettent de modifier la place relative occupée par chaque fenêtre dans l'Interpréteur. Lorsque l'Interpréteur apparaît pour la première fois, une barre sépare la fenêtre Source de la fenêtre Interpréteur. Une seconde barre de partage s'affiche si vous utilisez l'Interpréteur modal ou que vous ayez inséré la fenêtre Navigateur dans l'Interpréteur sans mode.

Fenêtre Interpréteur  La fenêtre Interpréteur constitue une interface de ligne de commande avec PL/SQL, Procedure Builder et SQL. Vous pouvez entrer des instructions ou des blocs PL/SQL, des commandes de l'Interpréteur de Procedure Builder ou des instructions SQL après l'invite PL/SQL>. (Les instructions et la syntaxe SQL*Plus ne sont pas prises en charge.)

Commandes multilignes  Lorsque vous entrez une syntaxe PL/SQL à l'invite PL/SQL>, vous pouvez toujours appuyer sur la touche Entrée pour afficher une invite secondaire sous la forme +>. Affichez autant d'invites secondaires successives que nécessaire avant d'exécuter le code terminé par un point-virgule (;).

Niveaux de débogage  Lorsque l'exécution d'un programme est interrompue par une action de débogage, l'Interpréteur établit un niveau de débogage. A ce niveau, vous pouvez entrer des commandes et des instructions PL/SQL, qui peuvent à leur tour être interrompues, entraînant l'imbrication des niveaux de débogage. Le niveau de débogage en cours est indiqué par une nouvelle invite de la fenêtre Interpréteur, qui comporte un préfixe contenant le numéro de niveau de débogage en cours. Par exemple, l'invite de l'interpréteur au niveau de débogage 1 s'affiche de la manière suivante :

(debug 1)PL/SQL>

Menu instantané  La fenêtre Interpréteur affiche un menu instantané proposant les commandes suivantes (sous Windows, cliquez avec le bouton droit de la souris) :

Effacer	Annule tout le texte de la fenêtre Interpréteur et émet une nouvelle invite.
Nouvelle invite	Affiche une nouvelle invite dans la fenêtre Interpréteur. Aucune entrée après l'invite précédente n'est prise en compte.
Remarque : Les systèmes ne prennent pas tous en compte les menus instantanés.

Fenêtre Navigateur  La fenêtre Navigateur permet d'afficher la pile d'appels en cours et éventuellement de modifier les valeurs des paramètres et des variables locales à l'emplacement de travail en cours, pendant le débogage. Vous pouvez insérer cette fenêtre entre la fenêtre Source et la fenêtre Interpréteur pour travailler entièrement dans l'Interpréteur tout en déboguant vos unités de programme. Pour ce faire, choisissez Affichage [image] Fenêtre Navigateur dans le menu. Pour masquer la fenêtre Navigateur, choisissez à nouveau cette même commande. Vous pouvez également masquer toutes les autres fenêtres en sélectionnant la commande adéquate dans le menu Affichage.

Barre d'outils Navigateur  Lorsque la fenêtre Navigateur est affichée, la barre d'outils comporte également les boutons suivants :

Créer		Crée une nouvelle instance de l'objet ou du noeud sélectionné.
Supprimer		Supprime l'objet sélectionné après confirmation.
Développer		Développe le premier niveau de sous-noeud du noeud sélectionné.
Réduire		Réduit le niveau de sous-noeud sélectionné du noeud actuellement affiché.
Développer tout		Développe tous les niveaux de sous-noeuds du noeud sélectionné. Toutefois, cette commande ne développe pas de façon récurrente les noeuds de type de données et d'attributs Oracle8.
Réduire tout		Réduit tous les niveaux de sous-noeud du noeud sélectionné.
Rechercher (zone de texte)		Permet de rechercher un objet dans le Navigateur en saisissant tout ou partie de son nom.
Recherche avant		Recherche l'occurrence suivante du critère de recherche indiqué dans la zone de texte Rechercher.
Recherche arrière		Recherche l'occurrence précédente du critère de recherche indiqué dans la zone de texte Rechercher.


Reprend l'exécution de l'unité de programme interrompue à la prochaine instruction exécutable.


Reprend l'exécution de l'unité de programme interrompue à la prochaine instruction exécutable, en sautant tous les appels aux sous-programmes imbriqués.


Reprend l'exécution d'un sous-programme imbriqué, en suspendant l'exécution à la prochaine instruction exécutable dans l'unité de programme appelante.


Reprend l'exécution de l'unité de programme interrompue à la fin de l'unité de programme ou à la prochaine action de débogage.


Sort du niveau de débogage en cours. Au niveau 1, l'exécution interrompue est abandonnée.


Crée une nouvelle instance de l'objet ou du noeud sélectionné.


Supprime l'objet sélectionné après confirmation.


Développe le premier niveau de sous-noeud du noeud sélectionné.


Réduit le niveau de sous-noeud du noeud sélectionné.


Développe tous les niveaux de sous-noeud du noeud sélectionné. Le type de données Oracle8 et les noeuds d'attributs ne sont pas développés de façon récurrente.


Réduit tous les niveaux de sous-noeud du noeud sélectionné.


Entrez le nom de l'objet que vous voulez rechercher dans le Navigateur.


Indique le nom de l'unité de programme en cours et précise s'il est chargé sur le client ou le serveur.


Affiche en lecture seule une copie de l'unité de programme sélectionnée, avec les lignes source numérotées dans la seconde colonne.


 Les barres de partage permettent de modifier la place relative occupée par chaque fenêtre dans l'Interpréteur. Lorsque l'Interpréteur apparaît pour la première fois, une barre sépare la fenêtre Source de la fenêtre Interpréteur. Une seconde barre de partage apparaît si vous utilisez l'Interpréteur modal ou que vous ayez inséré la fenêtre Navigateur dans l'Interpréteur sans mode.


La fenêtre Navigateur d'objet permet d'afficher la pile d'appels en cours et éventuellement de modifier les valeurs des paramètres et des variables locales à l'emplacement de travail en cours, pendant le débogage.


La fenêtre Interpréteur constitue une interface de ligne de commande avec PL/SQL, Procedure Builder et SQL. Vous pouvez entrer des instructions ou des blocs PL/SQL, des commandes de l'Interpréteur de Procedure Builder ou des instructions SQL après l'invite PL/SQL>.


Interface de l'Editeur de déclencheur de base de données

  Rubriques connexes

L'Editeur de déclencheur de base de données permet de créer et de modifier les déclencheurs BEFORE/AFTER des tables, ainsi que les déclencheurs INSTEAD OF des vues et des vues d'objet (si vous êtes connecté à Oracle8).

Pour définir un nouveau déclencheur :

1	Sélectionnez un nom utilisateur (schéma) dans la liste déroulante Propriétaire de la table.

2	Sélectionnez un nom de table dans la liste déroulante Table.

Elle répertorie les noms des tables appartenant à l'utilisateur qui apparaît dans le champ Propriétaire de la table. Si vous sélectionnez un nom utilisateur différent du vôtre dans ce champ, la liste déroulante Table ne répertorie que les tables auxquelles vous avez accès parmi celles du propriétaire sélectionné.

(Concerne uniquement les vues.) Pour définir un déclencheur INSTEAD OF pour une vue d'objet, cliquez sur la flèche située à côté de la liste Table pour afficher la liste déroulante, puis sélectionnez Vue. Choisissez ensuite un nom de vue dans la liste déroulante Vue.

3	Cliquez sur Nouveau pour créer un déclencheur de base de données.

Un nom de déclencheur unique (par rapport aux autres déclencheurs appartenant au même schéma) est affecté automatiquement au nouveau déclencheur, dans la liste déroulante Nom. Vous pouvez modifier ce nom.

La liste déroulante Nom répertorie les noms des déclencheurs associés à la table (ou à la vue) affichée dans le champ Table (ou Vue). Elle ne répertorie que les noms des déclencheurs de base de données associés aux tables auxquelles vous avez accès.

4	Indiquez les options de déclenchement.

Les sections suivantes vous informent sur les différentes options que vous pouvez utiliser pour définir un déclencheur de base de données dans l'Editeur de déclencheur de base de données.

5	Une fois les options et l'action du déclencheur indiquées, cliquez sur Enregistrer pour compiler le déclencheur.

Options de déclenchement :

Avant/Après	(Concerne uniquement les tables.) Correspond à l'option BEFORE ou AFTER de la commande SQL CREATE TRIGGER. Permet d'indiquer l'instant d'activation du corps du déclencheur par rapport à l'instruction de déclenchement (par exemple, UPDATE, INSERT ou DELETE) exécutée. Les déclencheurs BEFORE sont activés avant l'exécution de l'instruction de déclenchement et les déclencheurs AFTER, après cette exécution. Les déclencheurs BEFORE et AFTER concernent les déclencheurs sur ligne et sur instruction.
Au lieu de	(Concerne uniquement les vues.) Correspond à l'option INSTEAD OF de la commande SQL CREATE TRIGGER. Oracle active le déclencheur au lieu d'exécuter l'instruction de déclenchement. Le déclencheur effectue les travaux d'insertion, de mise à jour ou de suppression directement dans les tables de base de la vue.

Cases à cocher Instruction :

UPDATE INSERT DELETE	Permet d'indiquer le type d'instruction SQL (instruction de déclenchement) qui active le corps du déclencheur. Les options possibles sont UPDATE, INSERT et DELETE.  Cochez une ou plusieurs cases pour inclure la ou les options correspondantes dans l'instruction de déclenchement. Si cette instruction indique UPDATE, une liste facultative de colonnes peut être incluse dans l'instruction de déclenchement. Reportez-vous à l'option Des colonnes ci-après. Si vous sélectionnez plusieurs options, vous pouvez utiliser les prédicats conditionnels UPDATING, INSERTING et DELETING pour exécuter des blocs de code précis dans le corps du déclencheur. Reportez-vous à l'option Corps de déclencheur ci-après.

Option Des colonnes :

Des colonnes	(Concerne uniquement les tables.) Correspond à la clause OF figurant dans l'instruction de déclenchement UPDATE de la commande SQL CREATE TRIGGER. Cette option affiche la liste des colonnes de la table sélectionnée dans le champ Table. Cette liste n'est active que si l'instruction de déclenchement indique UPDATE. Cliquez sur une ou plusieurs colonnes dans cette liste pour indiquer que le déclencheur est activé uniquement lorsque l'une des colonnes sélectionnées est mise à jour. Si vous voulez que le déclencheur soit activé lorsqu'une colonne quelconque de la table est mise à jour, ne cliquez sur aucun nom de colonne. Cette option n'est pas disponible avec les déclencheurs INSTEAD OF. Oracle active ce type de déclencheur chaque fois qu'une instruction UPDATE modifie une valeur dans une colonne quelconque de la vue. Objets Oracle8 : vous ne pouvez pas indiquer de colonnes de tables imbriquées ou de colonnes LOB dans la clause OF.

Option Pour chaque instruction :

Instruction	Correspond à l'option FOR EACH STATEMENT de la commande SQL CREATE TRIGGER. Indique que le déclencheur est un déclencheur sur instruction. Oracle n'exécute qu'une seule fois ce type de déclencheur, au moment de la génération de l'instruction de déclenchement (indépendamment du nombre de lignes concernées), si la contrainte du déclencheur facultatif définie dans la clause WHEN est remplie. Cette option n'est pas disponible avec les déclencheurs INSTEAD OF.

Options Pour chaque ligne :

Ligne	Correspond à l'option FOR EACH ROW de la commande SQL CREATE TRIGGER.  Indique que le déclencheur est un déclencheur sur ligne. Oracle n'exécute ce type de déclencheur qu'une seule fois pour chaque ligne affectée par l'instruction de déclenchement, et si cette ligne remplit la contrainte du déclencheur facultatif, telle qu'elle est définie dans la clause WHEN.
Création de références	Indique les noms de corrélation. Vous pouvez les utiliser dans le corps du déclencheur et dans la clause WHEN d'un déclencheur sur ligne pour faire référence de manière spécifique aux nouvelles et aux anciennes valeurs de la ligne en cours. Les noms de corrélation par défaut sont OLD et NEW. Si votre déclencheur sur ligne est associé à une table appelée OLD ou NEW, utilisez cette option pour indiquer des noms de corrélation différents, afin d'éviter toute confusion entre les noms de table et de corrélation. Concerne uniquement les déclencheurs sur ligne.
OLD comme	Permet d'indiquer un nom de corrélation pour éviter tout conflit de noms entre le nom de corrélation et le nom d'une table appelée OLD.
NEW comme	Permet d'indiquer un nom de corrélation pour éviter tout conflit de noms entre le nom de corrélation et le nom d'une table appelée NEW.
Lorsque	(Concerne uniquement les tables.) Correspond à l'expression booléenne SQL dans une clause WHEN de la commande SQL CREATE TRIGGER. Concerne uniquement les déclencheurs sur ligne. Indique une restriction de déclencheur facultatif.  Si elle est incluse, l'expression SQL est calculée pour chaque ligne concernée par le déclencheur. Si le résultat du calcul de l'expression est TRUE pour une ligne, le corps du déclencheur est activé. Si le résultat du calcul de l'expression est FALSE ou NOT TRUE pour une ligne (c'est-à-dire inconnue, comme avec des valeurs nulles), le corps du déclencheur n'est pas activé. Objets Oracle8 : vous pouvez référencer les colonnes d'objets ou leurs attributs, l'élément VARRAY, une table imbriquée ou les colonnes LOB. Vous ne pouvez appeler ni les fonctions PL/SQL, ni les méthodes de restriction de déclenchement.

Indiquez l'action du déclencheur dans :

Corps de déclencheur	Le bloc PL/SQL d'Oracle est exécuté pour activer le déclencheur. Il s'agit d'une zone de texte multiligne déroulante, dans laquelle vous pouvez entrer et éditer un corps de déclencheur de base de données PL/SQL. Les corps de déclencheur peuvent comporter des instructions SQL et PL/SQL. Les mots-clés BEGIN et END sont requis. Le corps des déclencheurs sur ligne peut contenir des noms de corrélation et l'option REFERENCING, ainsi que les prédicats conditionnels INSERTING, DELETING et UPDATING. Si plusieurs types d'instruction de déclenchement sont indiqués pour le déclencheur sur ligne (par exemple, INSERT et UPDATE), vous pouvez inclure les conditions suivantes afin d'exécuter des blocs de code précis dans le corps du déclencheur : IF INSERTING THEN…END IF; IF UPDATING THEN…END IF;

L'Editeur contient les boutons suivants :

Nouveau	Crée un nouveau déclencheur de base de données. Cliquez sur Nouveau pour lancer la définition d'un nouveau déclencheur.
Enregistrer	Permet d'enregistrer les options du déclencheur et de compiler la source qui figure dans le champ Corps de déclencheur. Les messages d'erreur générés par la compilation apparaissent dans un message distinct.
Rétablir	Permet de rendre au déclencheur de base de données l'état dans lequel il se trouvait lors de la dernière opération d'enregistrement ou de rétablissement.
Eliminer	Permet de supprimer de la base de données le déclencheur de base de données en cours, après confirmation.
Fermer	Permet de quitter l'Editeur de déclencheur de base de données.
Aide	Permet d'afficher cette rubrique d'aide.


A propos des déclencheurs de base de données

Les déclencheurs de base de données sont des procédures stockées dans la base de données et implicitement exécutées lorsqu'une instruction de déclenchement, telle qu'INSERT, UPDATE ou DELETE, est créée dans la table associée. Les déclencheurs ne peuvent être définis que sur les tables, et non sur les vues. Toutefois, les déclencheurs portant sur la table de base d'une vue sont activés si une instruction INSERT, UPDATE ou DELETE est créée dans une vue.

Un déclencheur peut contenir des instructions SQL et PL.SQL fonctionnant en tant qu'entité distincte, ou appeler d'autres procédures stockées. N'utilisez des déclencheurs qu'en cas de nécessité absolue. Leur utilisation excessive peut provoquer l'apparition de déclencheurs en cascade ou récursifs. Par exemple, lorsque vous activez un déclencheur, toute instruction SQL du corps de ce déclencheur peut activer d'autres déclencheurs.

L'utilisation des déclencheurs de base de données permet de mettre en place des règles complexes et d'assurer un comportement uniforme de toutes les applications. Pour créer des déclencheurs, suivez les directives ci-dessous :

•	Utilisez des déclencheurs pour assurer que la réalisation d'une opération donnée entraîne la réalisation des actions connexes.

•	N'utilisez des déclencheurs de base de données que pour les opérations centralisées ou globales, qui doivent être activées pour l'instruction de déclenchement quel que soit l'utilisateur ou l'application de base de données à l'origine de l'instruction.

•	Ne définissez aucun déclencheur reproduisant une fonctionnalité déjà intégrée à Oracle. Par exemple, ne définissez aucun déclencheur qui impose des règles d'intégrité des données, car ces règles sont facilement applicables à l'aide des contraintes d'intégrité déclaratives.

•	Limitez la taille des déclencheurs (un maximum de 60 lignes est une limite correcte). Si la logique de votre déclencheur nécessite bien plus de 60 lignes de code PL/SQL, incluez la majeure partie du code dans une procédure stockée, puis appelez cette dernière à partir du déclencheur.

•	Veillez à ne pas créer de déclencheurs récursifs. Par exemple, la création d'un déclencheur sur instruction AFTER UPDATE sur la table EMP, qui crée lui-même une instruction UPDATE sur cette table EMP, entraîne une activation récursive du déclencheur jusqu'à épuisement de la mémoire.

Pour plus d'informations sur l'utilisation des déclencheurs dans les applications, reportez-vous aux manuels Oracle7 Application Developer's Guide ou Oracle8 Application Developer's Guide. Pour plus d'informations sur les différents types de déclencheurs, reportez-vous aux manuels Oracle7 Concepts Manual ou Oracle8 Concepts.


Affiche l'ID utilisateur du propriétaire de la table de base de données en cours. Cliquez sur la flèche à droite de ce champ pour afficher une liste déroulante d'utilisateurs.


Affiche le nom de la table ou de la vue de base de données en cours. Cliquez sur la flèche à droite de ce champ pour afficher une liste déroulante des tables ou des vues appartenant à l'utilisateur indiqué dans le champ Propriétaire de table. Cliquez sur une table ou sur une vue de la liste pour la sélectionner. La liste n'affiche que les noms des tables ou des vues de base de données auxquelles vous avez accès. (Les vues ne concernent qu'Oracle8)


Affiche le nom du déclencheur de base de données en cours. Cliquez sur la flèche à droite de ce champ pour afficher une liste déroulante des noms de déclencheur pour la table ou la vue indiquée dans le champ Table/Vue. La liste Nom n'affiche que les noms des déclencheurs de base de données auxquels vous avez accès.


Permet d'indiquer si le corps du déclencheur est activé par l'exécution de l'instruction de déclenchement (par exemple, UPDATE, INSERT ou DELETE). Ce groupe de boutons d'option correspond aux options BEFORE, AFTER et INSTEAD OF de la commande SQL CREATE TRIGGER.


Permet d'indiquer que le déclencheur est activé avant l'instruction de déclenchement.


Permet d'indiquer que le déclencheur est activé après l'instruction de déclenchement.


Permet d'indiquer qu'Oracle active le déclencheur au lieu d'exécuter l'instruction de déclenchement. Concerne uniquement les vues.


Permet d'indiquer le type d'instruction SQL qui active le corps du déclencheur. Les options possibles sont UPDATE, INSERT et DELETE. Cliquez sur une ou plusieurs des cases à cocher pour activer l'option. Concerne uniquement les tables.


Permet d'indiquer que le déclencheur est activé sur un événement INSERT.


Permet d'indiquer que le déclencheur est activé sur un événement DELETE.


Permet d'indiquer que le déclencheur est activé sur un événement UPDATE.


Affiche la liste des colonnes de la table sélectionnée dans le champ Table. Cette liste n'est active que si l'option UPDATE est activée dans le champ Instruction. Concerne uniquement les tables.


Permet d'indiquer un déclencheur sur ligne. Correspond à l'option FOR EACH ROW de la commande CREATE TRIGGER.


Permet d'indiquer un déclencheur sur instruction. Correspond à l'option FOR EACH STATEMENT de la commande CREATE TRIGGER.


Permet d'indiquer un nom de corrélation pour éviter tout conflit de noms entre le nom de corrélation et le nom d'une table ou d'une vue appelée OLD.


Permet d'indiquer un nom de corrélation pour éviter tout conflit de noms entre le nom de corrélation et le nom d'une table ou d'une vue appelée NEW.


Permet d'indiquer une expression booléenne SQL dans une clause WHEN. Si elle est incluse, l'expression de la clause WHEN est calculée pour chaque ligne concernée par le déclencheur. Si le résultat du calcul de l'expression est TRUE pour une ligne, le corps du déclencheur est activé. Si le résultat du calcul de l'expression est FALSE ou NOT TRUE (c'est-à-dire inconnue, comme avec des valeurs nulles) pour une ligne, le corps du déclencheur n'est pas activé. Concerne uniquement les tables.


Est une boîte de texte multiligne défilante, dans laquelle vous pouvez entrer et éditer un corps de déclencheur de base de données PL/SQL. Les corps de déclencheur sont des blocs PL/SQL qui peuvent comporter des instructions SQL et PL/SQL.


Crée un nouveau déclencheur de base de données sans nom.


Permet d'enregistrer les options du déclencheur et de compiler la source qui figure dans le champ Corps de déclencheur. Les messages d'erreur générés par la compilation apparaissent dans d'un message séparé.


Permet de rendre au déclencheur de base de données l'état dans lequel il se trouvait lors de la dernière opération d'enregistrement ou de rétablissement. Si aucune opération d'enregistrement ou de rétablissement n'a été exécutée, le déclencheur reprend son état d'origine.


Permet de supprimer de la base de données le déclencheur de base de données en cours, après confirmation.


Interface de l'éditeur d'unité de programme
Interface de l'Editeur d'unité de programme

  Rubriques connexes

L'Editeur contient les boutons et la zone de liste déroulante suivants :

Compiler	Permet de compiler l'unité de programme en cours. Les messages d'erreur générés par la compilation apparaissent dans la fenêtre déroulante Messages de compilation.
Appliquer	Permet d'enregistrer les modifications apportées à l'unité de programme depuis sa première ouverture, ou la dernière opération d'application ou de rétablissement. L'unité de programme n'est pas recompilée. L'Editeur reste ouvert. La pile annuler/rétablir est supprimée.
Rétablir	Permet de rendre à l'unité de programme l'état dans lequel elle se trouvait lors de la dernière opération d'application ou de rétablissement. Si aucune opération d'application ou de rétablissement n'a été exécutée, l'unité de programme reprend son état d'origine.
Nouveau	Permet d'afficher la boîte de dialogue Nouvelle unité de programme, dans laquelle vous pouvez indiquer le type et le nom de l'unité de programme que vous voulez créer.
Supprimer	Permet de supprimer l'unité de programme affichée. Une zone de message vous invite à confirmer l'opération.
Fermer	Permet de fermer l'Editeur d'unité de programme.
Aide	Affiche cette rubrique d'aide.
Nom	Affiche le nom de l'unité de programme en cours. Cliquez sur la flèche à droite de la zone pour afficher la liste déroulante des unités de programme de la session en cours. Cliquez sur une unité de programme de la liste pour l'afficher dans la fenêtre Source.

L'Editeur comporte également les éléments suivants :

Fenêtre Source	Zone de saisie et de modification du texte source de l'unité de programme PL/SQL. Des barres de partage permettent de créer jusqu'à quatre vues différentes de l'unité de programme en cours. Vous pouvez faire défiler chaque vue indépendamment des autres. Pour créer des vues horizontales dans la fenêtre Source, positionnez le curseur sur la barre de partage située en haut de la barre de défilement vertical, puis cliquez deux fois. La fenêtre Source est divisée horizontalement en deux vues de tailles identiques. Vous pouvez également cliquer sur la barre de partage et la faire glisser vers le bas afin de modifier la taille des vues. Pour créer des vues verticales, positionnez le curseur sur la barre de partage située à l'extrémité gauche de la barre de défilement horizontal, puis cliquez deux fois. La fenêtre Source est divisée verticalement en deux vues de tailles identiques. Vous pouvez également cliquer sur la barre de partage et la faire glisser vers la droite pour modifier la taille des vues. Pour redimensionner les vues, cliquez sur la barre de partage qui les sépare et faites-la glisser. Pour supprimer une vue horizontale ou verticale, cliquez deux fois sur la barre de partage qui sépare les vues ou faites-la glisser vers le bord de la fenêtre. Pour supprimer en une seule fois les quatre vues, positionnez le curseur au point d'intersection des barres de partage et cliquez deux fois, ou faites-le glisser vers l'un des angles de la fenêtre. Pour sélectionner une ligne de code, positionnez le curseur sur la marge gauche et cliquez dessus.
Messages de compilation	Affiche les éventuels messages d'erreur générés par la compilation. Cliquer sur un message d'erreur le met en évidence, fait défiler la fenêtre Source vers l'instruction source à l'origine de l'erreur et positionne le curseur de texte à l'emplacement de l'erreur. Par défaut, la fenêtre Messages de compilation apparaît uniquement si des messages d'erreur sont générés au cours de la compilation. Pour afficher manuellement cette fenêtre au moment voulu, déplacez le curseur vers l'angle inférieur droit de la fenêtre de l'Editeur, jusqu'à ce qu'il prenne une forme de viseur. Cliquez ensuite dessus et faites-le glisser vers le haut. La barre de partage est déplacée vers le haut, et la fenêtre Messages de compilation située en-dessous apparaît.
Barre de partage (séparant les fenêtres)	Sépare les fenêtres Source et Messages de compilation. Elle permet de modifier la taille de ces fenêtres. Cliquez sur la barre de partage et faites-la glisser pour redimensionner les fenêtres. Si la fenêtre Messages de compilation n'apparaît pas, la barre de partage est située près du bas de la fenêtre de l'Editeur.
Barre d'état	Affiche, au bas de l'Editeur, des informations sur l'état de l'unité de programme.


Permet de compiler l'unité de programme affichée dans la fenêtre Source. Les messages d'erreur générés par la compilation s'affichent dans la fenêtre déroulante Messages de compilation.


Permet d'enregistrer les modifications apportées à l'unité de programme, dans l'Editeur, depuis la première ouverture ou la dernière opération d'application ou de rétablissement. L'unité de programme n'est pas recompilée. L'Editeur reste ouvert.


Permet de rendre à l'unité de programme l'état dans lequel elle se trouvait lors de la dernière opération d'application ou de rétablissement. Si aucune opération d'application ou de rétablissement n'a été exécutée, l'unité de programme reprend son état d'origine.


Permet d'afficher la boîte de dialogue Nouvelle unité de programme, dans laquelle vous pouvez indiquer le type et le nom de l'unité de programme que vous voulez créer.


Permet de supprimer l'unité de programme affichée, après avoir demandé confirmation.


Vous avez tenté de fermer l'Editeur. Si des modifications ont été effectuées, sans être enregistrées, une zone de message apparaît, vous demandant d'enregistrer ou d'annuler les modifications, ou encore d'annuler l'opération. Après l'enregistrement de toutes les modifications, l'Editeur d'unité de programme disparaît.


Indique le type de l'unité de programme (déclencheur, procédure, etc.) affichée dans l'Editeur.


Indique l'objet auquel le programme est associé.


Affiche le nom de l'unité de programme en cours. Utilisez la flèche à droite du champ pour afficher la liste déroulante des autres unités de programme. Cliquez sur une unité de programme de la liste pour l'afficher dans l'Editeur.


Permet d'entrer et d'éditer le texte source d'une unité de programme PL/SQL.


Affiche les erreurs de syntaxe générées par la compilation. Cliquez sur une erreur pour passer à sa source dans l'unité de programme.


Permet de modifier l'espace relatif occupé par les deux fenêtres (Source et Messages de compilation) dans l'Editeur d'unité de programme. Notez que, par défaut, la fenêtre Messages de compilation ne s'affiche qu'en cas de génération de messages d'erreur de compilation.


La partie gauche de la barre d'état affiche les messages suivants :

Non modifiée	Aucune modification n'a été apportée à l'unité de programme depuis qu'elle a été affichée pour la première fois ou appliquée pour la dernière fois.
Modifiée	Une ou plusieurs modification ont été apportées à l'unité de programme depuis qu'elle a été affichée pour la première fois ou appliquée pour la dernière fois.

La partie droite de la barre d'état affiche les messages suivants :

Non compilé	Le texte source de l'unité de programme, affiché actuellement, n'a pas été compilé.
Compilé avec succès	Le texte source de l'unité de programme, affiché actuellement, a été compilé sans erreur.
Compilé avec erreurs	Le texte source de l'unité de programme, affiché actuellement, a été compilé avec erreurs. Les erreurs s'affichent dans la fenêtre Messages de compilation.


 Interface de l'Editeur d'unité de programme stockée

  Rubriques connexes

Cette interface propose les boutons et zones de liste suivants :

Nouveau	Permet d'afficher la boîte de dialogue Nouvelle unité de programme, dans laquelle vous pouvez indiquer le type et le nom de l'unité de programme stockée que vous voulez créer.
Enregistrer	Permet de compiler l'unité de programme stockée affichée dans la fenêtre Source. Les messages d'erreur générés par la compilation s'affichent dans la fenêtre déroulante Messages de compilation. La pile Annuler/Annuler annulation est effacée.
Rétablir	Permet de rendre à l'unité de programme l'état dans lequel elle se trouvait lors de la dernière opération d'enregistrement ou de rétablissement. Si aucune opération d'enregistrement ou de rétablissement n'a été exécutée, l'unité de programme reprend son état d'origine.
Eliminer	Permet de supprimer de la base de données l'unité de programme stockée. Une zone de message apparaît et vous invite à confirmer la suppression.
Fermer	Permet de fermer l'Editeur d'unité de programme stockée.
Aide	Affiche cette rubrique d'aide.
Propriétaire	Affiche l'ID utilisateur de base de données du propriétaire de l'unité de programme en cours. Cliquez sur la flèche à droite de cette zone pour afficher la liste déroulante des noms utilisateur. Cette liste ne répertorie que les noms des utilisateurs dont vous avez accès aux unités de programme stockées.
Nom	Affiche le nom de l'unité de programme stockée en cours. Cliquez sur la flèche à droite de la zone pour afficher la liste déroulante des autres unités de programme stockées appartenant à l'utilisateur dont l'ID est indiqué dans le champ Propriétaire. La liste n'affiche que les noms des unités de programme stockées auxquelles vous avez accès.

L'Editeur comporte également les éléments suivants :

Fenêtre source	Entrez et modifiez le texte du source de l'unité de programme PL/SQL. Les barres de partage vous permettent de créer jusqu'à quatre vues distinctes de l'unité de programme en cours. Vous pouvez faire défiler chaque vue de façon indépendante. Pour créer des vues horizontales dans la fenêtre Source, positionnez le curseur sur la barre de partage située en haut de la barre de défilement verticale, puis cliquez deux fois : la fenêtre Source est fractionnée horizontalement en deux vues de taille égale. Sinon, vous pouvez cliquer sur la barre de partage et la faire glisser vers le bas pour modifier la taille des vues. Pour créer des vues verticales, positionnez le curseur sur la barre de partage située à l'extrémité gauche de la barre de défilement horizontale, puis cliquez deux fois : la fenêtre Source est fractionnée verticalement en deux vues de taille égale. Sinon, vous pouvez cliquer sur la barre de partage et la faire glisser vers la droite pour modifier la taille des vues. Pour redimensionner les vues, cliquez sur la barre de partage et faites-la glisser. Pour supprimer une vue horizontale ou verticale, cliquez deux fois sur la barre de partage, ou faites-la glisser hors de la fenêtre. Pour supprimer les quatre vues d'un coup, positionnez le curseur sur l'intersection des barres de partage et cliquez deux fois, ou faites-la glisser vers un angle de la fenêtre. Pour sélectionner une ligne de code, positionnez le curseur sur la marge gauche et cliquez.
Fenêtre Messages de compilation	Affiche les messages d'erreur, le cas échéant, générés par la compilation. Cliquer sur un message d'erreur le met en évidence, fait défiler la fenêtre Source jusqu'à l'instruction source posant problème et positionne le curseur de texte à l'emplacement de l'erreur. Par défaut, la fenêtre Message de compilation ne s'affiche qu'en cas de génération de messages d'erreur de compilation. Pour afficher manuellement la fenêtre Messages de compilation à n'importe quel moment, déplacez le curseur vers l'angle inférieur droit de la fenêtre de l'Editeur jusqu'à ce qu'il se transforme en viseur. Cliquez et faites glisser le curseur vers le haut : la barre de partage est déplacée vers le haut, ce qui fait apparaître la fenêtre Messages de compilation qui se trouvait en dessous.
Barre de partage	Sépare la fenêtre Source et la fenêtre Message de compilation. Permet de modifier la taille de ces fenêtres. Cliquez sur la barre de partage et faites-la glisser pour redimensionner les fenêtres. Si la fenêtre Messages de compilation n'est pas affichée, la barre de partage se situe en fait au bas de la fenêtre de l'Editeur.
Barre d'état	Affiche, au bas de l'Editeur, des informations sur l'état de l'unité de programme stockée.


Permet d'afficher la boîte de dialogue Nouvelle unité de programme, dans laquelle vous pouvez indiquer le type et le nom de l'unité de programme que vous voulez créer.


Permet de compiler l'unité de programme stockée affichée dans la fenêtre Source. Les messages d'erreur générés par la compilation s'affichent dans la fenêtre déroulante Messages de compilation.


Permet de rendre à l'unité de programme stockée l'état dans lequel elle se trouvait lors de la dernière opération d'enregistrement ou de rétablissement. Si aucune opération d'enregistrement ou de rétablissement n'a été exécutée, l'unité de programme reprend son état d'origine.


Permet de supprimer de la base de données l'unité de programme stockée, après avoir demandé confirmation.


Affiche l'ID utilisateur de base de données du propriétaire de l'unité de programme en cours. Cliquez sur la flèche à droite de ce champ pour afficher la liste déroulante des noms utilisateur dont vous avez accès aux unités de programme stockées.


Affiche le nom de l'unité de programme stockée en cours. Cliquez sur la flèche à droite du champ pour afficher la liste déroulante des autres unités de programme stockées appartenant à l'utilisateur dont l'ID est indiqué dans le champ Propriétaire. La liste n'affiche que les noms des unités de programme stockées auxquelles vous avez accès.


Permet d'entrer et d'éditer le texte source d'une unité de programme PL/SQL stockée.


Affiche les erreurs de syntaxe survenues pendant la compilation. Cliquez sur une erreur pour passer à son emplacement source dans l'unité de programme.


Permet de modifier l'espace relatif occupé par les deux fenêtres dans l'Editeur d'unité de programme stockée. Notez que, par défaut, la fenêtre Messages de compilation ne s'affiche qu'en cas de génération de messages d'erreur pendant la compilation.


Boîte de dialogue Bibliothèques de base de données

Cette boîte de dialogue affiche la liste des bibliothèques stockées dans la base de données.

Bibliothèque	Liste des bibliothèques disponibles dans la base de données à laquelle vous êtes connecté. Seules les bibliothèques auxquelles vous avez l'autorisation d'accéder sont affichées. Cliquez sur le nom d'une bibliothèque pour la sélectionner.


Liste des bibliothèques disponibles dans la base de données à laquelle vous êtes connecté. Seules les bibliothèques auxquelles vous avez l'autorisation d'accéder sont affichées. Cliquez sur le nom d'une bibliothèque pour la sélectionner.


Boîte de dialogue Nouvelle unité de programme

Cette boîte de dialogue permet d'indiquer le nom et le type de l'unité de programme à créer.

Nom	Nom de l'unité de programme.
Types	Indique le type d'unité de programme que vous créez. Vous pouvez choisir entre les types suivants :
Procédure	Sous-programme PL/SQL qui exécute une série d'opérations indiquées.
Fonction	Sous-programme PL/SQL qui exécute une série d'opérations indiquées et renvoie une valeur.
Spéc. de package	Types de données et sous-programmes qui peuvent être désignés par d'autre unités de programme.
Corps de package	Met en oeuvre le package. Cette unité de programme peut être dotée de sous-programmes et de types de données privés. Elle est facultative si ce package est constitué uniquement de déclarations.
Spécification du type	Indique le nom, les variables (attributs) et les sous-programmes membres (méthodes) d'un type d'objet ou d'ensemble.
Corps du type	Met en oeuvre les méthodes membres (fonctions et procédures) définies dans la spécification du type d'un objet. Chaque spécification de méthode doit être associée à un corps de méthode.
Remarque : Spécification du type et Corps du type ne sont activées que si vous êtes connecté à Oracle8.


Entrez le nom de l'unité de programme.


Type de l'unité de programme que vous voulez créer.


Boîte de dialogue Ouverture de bibliothèque

Cette boîte de dialogue permet d'ouvrir les bibliothèques existantes, dans le système de fichiers ou dans la base de données; elle constitue une interface graphique pour la commande OPEN de l'Interpréteur.

Bibliothèque	Nom (et emplacement) de la bibliothèque à ouvrir.
Sélectionner	Si vous avez sélectionné Système de fichiers ou Les deux dans le champ Dans, permet d'afficher la boîte de dialogue de sélection de fichiers de votre système d'exploitation. Si vous avez sélectionné Base de données dans le champ Dans, permet d'afficher la boîte de dialogue Bibliothèques de base de données.
Dans	Permet d'indiquer si la bibliothèque est stockée dans le système de fichiers ou dans la base de données.


Nom (et emplacement) de la bibliothèque à ouvrir.


Si vous avez sélectionné Système de fichiers ou Les deux dans le champ Dans, permet d'afficher la boîte de dialogue de fichiers de votre système d'exploitation. Si vous avez sélectionné Base de données dans le champ Dans, permet d'afficher la boîte de dialogue Bibliothèques de bases de données.


Permet d'indiquer si la bibliothèque est stockée dans le système de fichiers ou dans la base de données.


Boîte de dialogue Attachement de bibliothèque

Cette boîte de dialogue permet d'attacher des bibliothèques à votre session en cours; elle constitue une interface graphique pour la commande ATTACH de l'Interpréteur.

Bibliothèque	Nom (et emplacement) de la bibliothèque à attacher.
Rechercher	Si vous avez sélectionné Système de fichiers ou Les deux dans le champ Dans, permet d'afficher la boîte de dialogue de sélection de fichiers de votre système d'exploitation. Si vous avez sélectionné Base de données dans le champ Dans, permet d'afficher la boîte de dialogue Bibliothèques de base de données.
Dans	Permet d'indiquer si la bibliothèque est stockée dans le système de fichiers ou dans la base de données.
Attacher	Permet de confirmer vos sélections, d'attacher la bibliothèque et de fermer la boîte de dialogue.


Nom (et emplacement) de la bibliothèque à attacher.


Si vous avez sélectionné Système de fichiers ou Les deux dans le champ Dans, permet d'afficher la boîte de dialogue de fichiers de votre système d'exploitation. Si vous avez sélectionné Base de données dans le champ Dans, permet d'afficher la boîte de dialogue Bibliothèques de base de données.


Permet d'indiquer si la bibliothèque est stockée dans le système de fichiers ou dans la base de données.


Permet de confirmer vos sélections, d'attacher la bibliothèque et de fermer la boîte de dialogue.


Boîte de dialogue Journalisation d'interpréteur

Cette boîte de dialogue permet de gérer les activités de journalisation ; elle constitue une interface graphique pour la commande LOG de l'Interpréteur.

Fichier	Nom du fichier dans lequel la session de journalisation doit être enregistrée.
Rechercher	Permet d'afficher la boîte de dialogue de fichiers de votre système d'exploitation, que vous pouvez explorer pour sélectionner un emplacement ou un nom de fichier existant.
Annexer	Permet d'activer cette option : la session de journalisation en cours est ajoutée à la fin du fichier de journalisation existant que vous avez indiqué dans la boîte de texte Fichiers. Si cette option n'est pas sélectionnée, les informations sur la journalisation en cours, dans le fichier indiqué, seront recouvertes par la nouvelle session de journalisation.
Désactivé	Permet d'activer cette option : la journalisation dans le fichier indiqué est momentanément suspendue jusqu'à ce qu'elle soit de nouveau activée.
Afficher le journal	Permet d'afficher l'explorateur de journal de l'interpréteur lorsque la boîte de dialogue Journalisation d'interpréteur est validée. Vous pouvez également afficher l'explorateur de journal d'interpréteur en choisissant Affichage [image] Journal interpréteur dans l'Interpréteur.


Nom du fichier dans lequel la session de journalisation doit être enregistrée.


Permet d'afficher la boîte de dialogue de fichiers de votre système d'exploitation que vous pouvez explorer pour sélectionner un emplacement ou un nom de fichier existant.


Permet d'activer cette option : la session de journalisation en cours est ajoutée à la fin du fichier de journalisation existant que vous avez indiqué dans la boîte de texte Fichier. Si cette option n'est pas sélectionnée, les informations sur la journalisation en cours, dans le fichier indiqué, seront recouvertes par la nouvelle session de journalisation.


Permet d'activer cette option : la journalisation dans le fichier indiqué est momentanément suspendue jusqu'à ce qu'elle soit de nouveau activée.


Permet d'afficher l'explorateur de journal d'interpréteur lorsque la boîte de dialogue Journalisation d'interpréteur est validée. Vous pouvez également afficher l'explorateur de journal d'interpréteur en choisissant Affichage --> Journal interpréteur dans l'interpréteur.


Explorateur de journal interpréteur

Cette boîte de dialogue affiche les messages enregistrés, provenant de la dernière session de journalisation.

Activer/Désactiver	Permet de sélectionner l'état Activé/Désactivé de la session de journalisation en cours.
Désactivé	Permet de mettre fin à la session de journalisation en cours et de fermer l'explorateur.
Boîte de liste de messages	Zone défilante, en lecture seule, qui affiche un enregistrement de l'entrée et de la sortie dans la fenêtre Interpréteur. Vous pouvez sélectionner, copier et rechercher le texte affiché dans la boîte de liste.


Permet de sélectionner l'état Activé/Désactivé de la session de journalisation en cours.


Permet de mettre fin à la session de journalisation en cours et de fermer l'explorateur.


Zone défilante, en lecture seule, qui affiche un enregistrement de l'entrée et de la sortie dans la fenêtre Interpréteur. Vous pouvez sélectionner, copier et rechercher le texte affiché dans la boîte de liste.


Boîte de dialogue Connexion

Cette boîte de dialogue vous permet de vous connecter à une instance de base de données ; elle constitue une interface graphique pour la commande CONNECT de l'Interpréteur.

Nom utilisateur	Votre ID utilisateur de base de données. Vous pouvez entrer votre chaîne de connexion complète, mais votre mot de passe sera renvoyé en écho.
Mot de passe	Votre mot de passe d'accès à la base de données. Pour garantir la confidentialité, le mot de passe que vous entrez n'est pas renvoyé en écho.
Base de données	Chaîne de connexion à la base de données à laquelle vous voulez vous connecter, généralement sous la forme :
	protocole_réseau:noeud_réseau[:nom_base de données]
	Chacun des champs est séparé par un signe deux-points (:). Pour connaître la chaîne de connexion correspondant à votre base de données, interrogez votre administrateur de bases de données. Notez que si vous vous connectez à une source de données ODBC, la syntaxe est la suivante :
	nom_utilisateur/mot_passe@ODBC:source_données[:nombd] Si nombd n'est pas indiqué, la base de données en cours est utilisée pour la connexion ODBC
Connecter	Permet de valider les informations que vous avez fournies et de tenter d'établir une connexion. Si la connexion réussit, la boîte de dialogue se ferme. Si elle échoue, un message d'erreur est généré.


Votre ID utilisateur de base de données. Vous pouvez entrer votre chaîne de connexion complète, mais votre mot de passe sera renvoyé en écho.


Votre mot de passe d'accès à la base de données. Pour garantir la confidentialité, le mot de passe que vous entrez n'est pas renvoyé en écho.


Chaîne de connexion à la base de données à laquelle vous voulez vous connecter, généralement sous la forme :


Permet de valider les informations que vous avez fournies et de tenter d'établir une connexion. Si la connexion réussit, la boîte de dialogue se ferme. Si elle échoue, un message d'erreur est généré.


Boîte de dialogue Autorisation à liste d'accès

Cette boîte de dialogue permet d'afficher et de modifier les autorisations d'accès à la bibliothèque sélectionnée ou à l'unité de programme stockée sur le serveur de base de données ; elle constitue une interface graphique pour les commandes GRANT et REVOKE de l'Interpréteur. Pour pouvoir accorder ou retirer des autorisations d'accès à d'autres utilisateurs, vous devez avoir une Autorisation d'accès à la bibliothèque.

Boîte de liste d'utilisateurs	Permet d'afficher la liste des utilisateurs qui ont accès à la bibliothèque sélectionnée ou à l'unité de programme stockée. Cliquez sur un nom pour l'entrer dans la boîte de texte Utilisateur.
Utilisateur	Entrez le nom de l'utilisateur auquel vous voulez accorder ou retirer une autorisation d'accès à la bibliothèque sélectionnée ou à l'unité de programme stockée. Ce nom doit être un nom valide pour la base de données en cours. Si le nom utilisateur figure déjà dans la boîte de liste d'utilisateurs, cliquez simplement sur son nom.
Ajouter	Permet d'ajouter le nom utilisateur à la liste de ceux qui sont autorisés à accéder à la bibliothèque ou à l'unité de programme stockée.
Supprimer	Permet de supprimer le nom utilisateur de la liste de ceux qui sont autorisés à accéder à la bibliothèque à l'unité de programme stockée.


Permet d'afficher la liste des utilisateurs qui ont accès à la bibliothèque sélectionnée. Cliquez sur un nom pour l'entrer dans la boîte de texte Utilisateur.


Entrez le nom de l'utilisateur auquel vous voulez accorder ou retirer une autorisation d'accès à la bibliothèque sélectionnée. Ce nom doit être un nom valide pour la base de données en cours. Si le nom de l'utilisateur figure déjà dans la boîte de liste d'utilisateurs, cliquez simplement sur son nom.


Permet d'ajouter le nom utilisateur à la liste de ceux qui sont autorisés à accéder à la bibliothèque.


Permet de supprimer le nom utilisateur de la liste de ceux qui sont autorisés à accéder à la bibliothèque.


Boîte de dialogue Enregistrement de bibliothèque

Cette boîte de dialogue permet d'enregistrer une bibliothèque dans le système de fichiers ou dans la base de données ; elle constitue une interface graphique pour la commande SAVE de l'Interpréteur.

Bibliothèque	Entrez le nom (et l'emplacement) de la bibliothèque que vous voulez enregistrer.
Rechercher	Si vous avez sélectionné Système de fichiers dans le champ Dans, permet d'afficher la boîte de dialogue de fichiers de votre système d'exploitation. Si vous avez sélectionné Base de données dans le champ Dans, permet d'afficher la boîte de dialogue Bibliothèques de base de données.
Dans	Permet d'indiquer si la bibliothèque sera sauvegardée dans le système de fichiers ou dans la base de données.


Entrez le nom (et l'emplacement) de la bibliothèque que vous voulez enregistrer.


Si vous avez sélectionné Système de fichiers dans le champ Dans, permet d'afficher la boîte de dialogue de fichiers de votre système d'exploitation. Si vous avez sélectionné Base de données dans le champ Dans, permet d'afficher la boîte de dialogue Bibliothèques de base de données.


Permet d'indiquer si la bibliothèque sera sauvegardée dans le système de fichiers ou dans la base de données.


Boîte de dialogue Recherche/remplacement

Cette boîte de dialogue vous permet de rechercher et éventuellement de remplacer des chaînes ou des expressions régulières dans la source d'unité de programme affichée dans l'Editeur d'unité de programme ou d'unité de programme stockée.

Rechercher	Entrez la chaîne que vous recherchez. Si vous voulez que la chaîne soit considérée comme une expression régulière, cliquez sur la case à cocher Expression régulière pour l'activer.
Remplacer par	Entrez la chaîne devant remplacer les correspondances trouvées.
Expression régulière	Permet d'indiquer si la chaîne de recherche doit être considérée comme une chaîne ou une expression régulière. Si cette case n'est pas cochée, le contenu de la boîte de texte Rechercher est considéré comme une chaîne.
Distinction maj/min	Permet d'indiquer si l'opération doit faire la différence entre les majuscules et les minuscules dans la chaîne de recherche. Si cette case n'est pas cochée, la recherche trouvera toutes les correspondances des chaînes de recherche, qu'elles soient en majuscules ou en minuscules.
Rechercher	Permet de rechercher la prochaine correspondance de la chaîne de recherche, à partir de la position du curseur.
Remplacer	Permet de remplacer la dernière chaîne trouvée par la chaîne spécifiée dans la boîte de texte Remplacer. Si aucune correspondance n'est sélectionnée, recherche la prochaine occurrence de la chaîne de recherche et la remplace.
Remplacer tt	Permet de remplacer toutes les correspondances par la chaîne de remplacement (à partir de la position du curseur jusqu'à la fin de la zone sur laquelle porte la recherche).


Entrez la chaîne que vous recherchez. Si vous voulez que la chaîne soit considérée comme une expression régulière, cliquez sur la case à cocher Expression régulière pour la sélectionner.


Entrez la chaîne devant remplacer les correspondances trouvées.


Permet d'indiquer si la chaîne de recherche doit être considérée comme une chaîne ou une expression régulière. Si cette case n'est pas cochée, le contenu de la boîte de texte Rechercher est considéré comme une chaîne.


Permet d'indiquer si l'opération doit faire la différence entre les majuscules et les minuscules dans la chaîne de recherche. Si cette case n'est pas cochée, la recherche trouvera toutes les correspondances des chaînes de recherche, qu'elles soient en majuscules ou en minuscules.


Permet de rechercher la prochaine correspondance de la chaîne de recherche, à partir de la position du curseur.


Permet de remplacer la dernière chaîne trouvée par la chaîne spécifiée dans la boîte de texte Remplacer. Si aucune correspondance n'est sélectionnée, recherche la prochaine occurrence de la chaîne de recherche et la remplace.


Permet de remplacer toutes les correspondances par la chaîne de remplacement (à partir de la position du curseur jusqu'à la fin de la zone sur laquelle porte la recherche).


Boîte de dialogue Point d'interruption PL/SQL

Cette boîte de dialogue permet de créer un point d'interruption ; elle constitue une interface graphique pour la commande BREAK. Elle vous permet de créer ou de modifier des points d'interruption et les déclencheurs correspondants.

Point d'interruption	Permet d'identifier le point d'interruption qui se présente sous la forme Point d'interruption:  New ou Point d'interruption:  number. Le libellé est " New " lors de l'indication d'un nouveau point d'interruption, ou une valeur numérique lors de la modification d'un point d'interruption existant.
Activé	Permet d'indiquer si le point d'interruption est activé ou désactivé.
Unité de programme	Permet d'identifier l'unité de programme cible, ou l'emplacement du point d'interruption existant ou du nouveau.
Ligne	Permet d'identifier l'emplacement source du point d'interruption dans l'unité de programme.
Déclencheur	Si nécessaire, entrez les instructions PL/SQL qui seront activées lorsque le point d'interruption sera atteint. Les mots-clés BEGIN et END ne sont pas obligatoires dans le déclencheur. Par exemple, vous pouvez utiliser DEBUG.INTERPRET pour exécuter une commande de l'Interpréteur. DEBUG.INTERPRET('.SHOW LOCALS');


Permet d'identifier le point d'interruption et se présente sous la forme Point d'interruption:  New ou Point d'interruption:  number. Le libellé est " New " lors de l'indication d'un nouveau point d'interruption, ou une valeur numérique lors de la modification d'un point d'interruption existant.


Permet d'indiquer si le point d'interruption est activé ou désactivé.


Permet d'identifier l'unité de programme cible du point d'interruption existant ou du nouveau.


Permet d'identifier l'emplacement source du point d'interruption dans l'unité de programme.


Entrez les instructions PL/SQL de point d'interruption qui seront activées lorsque le point d'interruption sera atteint. Les mots-clés BEGIN et END ne sont pas obligatoires.


Boîte de dialogue Déclencheur PL/SQL

Cette boîte de dialogue permet de créer un déclencheur de débogage ; elle constitue une interface graphique pour la commande TRIGGER.

Déclencheur	Permet d'identifier le déclencheur de débogage et se présente sous la forme Déclencheur:  New ou Déclencheur:  number. Le libellé est "New" lors de l'indication d'un nouveau déclencheur de débogage, ou une valeur numérique lors de la modification d'un déclencheur de débogage existant.
Activé	Permet d'indiquer si le déclencheur de débogage est activé ou désactivé.
Emplacement	Permet d'indiquer l'emplacement source du déclencheur de débogage.
	L'option Unité de programme (par défaut) indique que le déclencheur de débogage se trouve à un emplacement source spécifique dans l'unité de programme.
	L'option Entrée débogage indique que le déclencheur est activé dès que l'exécution de l'unité de programme est suspendue.
	L'option Chaque instruction indique que le déclencheur de débogage est activé immédiatement avant chaque instruction exécutable de l'unité de programme.
Unité de programme	Permet d'identifier l'unité de programme cible.
Ligne	Permet d'identifier l'emplacement source du déclencheur de débogage dans l'unité de programme.
Corps du déclencheur	Entrez les instructions PL/SQL à utiliser comme corps du déclencheur de débogage. Les mots-clés BEGIN et END ne sont pas obligatoires. Un déclencheur de débogage fonctionne comme celui de point d'interruption conditionnel. Si vous indiquez les conditions de date/heure d'une action de débogage, le déclencheur n'est activé que si elles sont vraies. Par exemple, vous pouvez activer DEBUG.BREAK si une variable est égale à une valeur donnée, telle que 100. IF DEBUG.GETC('vnumber') = 100 THEN   RAISE DEBUG.BREAK; END IF;


Permet d'identifier le déclencheur de débogage et se présente sous la forme Déclencheur:  New ou Déclencheur:  number. Le libellé est "New" lors de l'indication d'un nouveau déclencheur de débogage, ou une valeur numérique lors de la modification d'un déclencheur de débogage existant.


Permet d'indiquer si le déclencheur de débogage est activé ou désactivé.


Permet d'indiquer l'emplacement source du déclencheur de débogage.


Permet d'identifier l'unité de programme cible.


Permet d'identifier l'emplacement source du déclencheur de débogage dans l'unité de programme.


Entrez les instructions PL/SQL qui devront être utilisées comme corps du déclencheur de débogage.


Boîte de dialogue Etape de débogage PL/SQL
Boite de dialogue Etape de débogage PL/SQL

Cette boîte de dialogue permet de définir des options permettant de progresser pas à pas dans le code d'une unité de programme interrompue pendant le débogage ; elle constitue l'interface graphique pour la commande STEP de l'Interpréteur.

Mode	Permet d'indiquer l'option Step à utiliser.
	INTO reprend l'exécution jusqu'à la prochaine instruction exécutable.
	OVER reprend l'exécution jusqu'à la prochaine instruction exécutable dans l'unité de programme en cours, en sautant les appels de sous-programmes.
	OUT reprend l'exécution d'un sous-programme imbriqué et s'arrête après l'instruction exécutable de l'unité de programme appelante.
	TO (vers) reprend l'exécution jusqu'à ce que l'emplacement indiqué soit atteint.
Unité programme	Permet d'identifier le corps de l'unité de programme cible de l'option de commande STEP TO.
Ligne	Permet d'identifier l'emplacement, dans le corps de l'unité de programme cible, de l'option de commande STEP TO.
Décompte	Permet d'indiquer le nombre de fois où la commande STEP est répétée. Par valeur par défaut : 1.
Appliquer	Permet d'accepter les options indiquées et reprend l'exécution de l'unité de programme en conséquence. Comme les opérations pas à pas s'exécutent généralement les unes après les autres, la boîte de dialogue STEP reste affichée jusqu'à ce que vous la fermiez explicitement, ou tant qu'il y a un niveau de débogage actif.


Permet d'indiquer l'option Step à utiliser.


Permet d'identifier le corps de l'unité de programme cible de l'option de commande STEP TO.


Permet d'identifier l'emplacement, dans le corps de l'unité de programme cible, de l'option de commande STEP TO.


Permet d'indiquer le nombre de fois où la commande STEP est répétée. Valeur par défaut : 1.


Permet d'accepter les options indiquées et de reprendre l'exécution de l'unité de programme en conséquence. Comme les opérations pas à pas s'exécutent généralement les unes après les autres, la boîte de dialogue STEP reste affichée jusqu'à ce que vous la fermiez explicitement, ou tant qu'il y a un niveau de débogage actif.


Boîte de dialogue Chargement d'unité de programme

Cette boîte de dialogue permet d'importer et de compiler une unité de programme stockée dans le système de fichiers ; elle constitue une interface graphique pour la commande LOAD de l'Interpréteur.

Fichier	Entrez le nom (et l'emplacement) du fichier contenant le texte source de l'unité de programme.
Rechercher	Permet d'afficher la boîte de dialogue de fichiers de votre système d'exploitation.
Supprimer les confirmations	Permet de supprimer tous les messages de confirmation pendant le chargement et la compilation, par exemple lors de l'écrasement d'une unité de programme existante. Lorsque cette option est désactivée (par défaut), les confirmations ne sont pas supprimées.
Charger	Permet de valider vos sélections, de charger l'unité de programme et de fermer la boîte de dialogue.


Entrez le nom (et l'emplacement) du fichier contenant le texte source de l'unité de programme.


Permet d'afficher la boîte de dialogue de fichiers de votre système d'exploitation.


Permet de supprimer tous les messages de confirmation pendant le chargement et la compilation, par exemple lors de l'écrasement d'une unité de programme existante. Lorsque cette option est désactivée (par défaut), les confirmations ne sont pas supprimées.


Permet de valider vos sélections, de charger l'unité de programme et de fermer la boîte de dialogue.


Boîte de dialogue Interpréteur de script de débogage

Cette boîte de dialogue permet d'importer et d'exécuter un script contenant toute combinaison de commandes de l'Interpréteur, de source PL/SQL ou d'instructions SQL ; elle constitue une interface graphique pour la commande INTERPRET.

Fichier	Entrez le nom (et l'emplacement) du fichier contenant le script de débogage à interpréter.
Rechercher	Permet d'afficher la boîte de dialogue de fichiers de votre système d'exploitation.
Echo	Permet d'activer ou de désactiver le mode Echo. Lorsque cette option est désactivée (par défaut), chaque ligne de script n'est pas renvoyée en écho dans la ligne de commande de l'Interpréteur, au fur et à mesure du chargement du script.
Silencieux	Permet d'activer ou de désactiver le mode Silencieux. Lorsque cette option est désactivée (par défaut), les messages d'état sont affichés pendant le chargement du script.
Supprimer les confirmations	Permet de supprimer toutes les confirmations pendant l'opération, par exemple, lors de l'écrasement d'une unité de programme existante. Lorsque cette option est désactivée (par défaut), les confirmations ne sont pas supprimées.
Interpréter	Permet de valider vos sélections, d'exécuter le script et de fermer la boîte de dialogue.


Entrez le nom (et l'emplacement) du fichier contenant le script de débogage à interpréter.


Permet d'afficher la boîte de dialogue de fichiers de votre système d'exploitation.


Permet d'activer ou de désactiver le mode Echo. Lorsque cette option est désactivée (par défaut), chaque ligne de script n'est pas renvoyée en écho dans la ligne de commande de l'Interpréteur, au fur et à mesure du chargement du script.


Permet d'activer ou de désactiver le mode Silencieux. Lorsque cette option est désactivée (par défaut), les messages d'état sont affichés pendant le chargement du script.


Permet de supprimer toutes les confirmations pendant l'opération, par exemple, lors de l'écrasement d'une unité de programme existante. Lorsque cette option est désactivée (par défaut), les confirmations ne sont pas supprimées.


Permet de valider vos sélections, d'exécuter le script et de fermer la boîte de dialogue.


Boîte de dialogue Compilation

Cette boîte de dialogue affiche les messages d'erreur de compilation pendant la compilation par lots et vous permet de suspendre et de reprendre la compilation, ainsi que de passer à une source d'erreur.

Ligne d'état	Pendant la compilation des unités de programme, indique les informations suivantes :
	nom et type de l'unité de programme en cours de compilation
	[INTERROMPU] lorsque vous cliquez sur Interrompre
	pourcentage d'unités de programme qui ont été compilées.
Liste des erreurs de compilation	Zone que l'utilisateur peut faire défiler à l'aide de la souris ; elle répertorie les erreurs détectées lors de la compilation des unités de programme sélectionnées. Dans cette zone de liste, cliquez sur une erreur de façon à ce que l'Editeur d'unité de programme apparaisse et que cette erreur soit localisée. Si vous cliquez sur ce bouton et que vous avez interrompu la compilation après avoir attendu de cliquer, une zone d'avertissement apparaît ; elle vous informe que l'accès à la source d'une erreur provoque l'abandon de la compilation par lots.
Interrompre	Permet d'arrêter momentanément la compilation, par exemple lorsque le nombre d'erreurs générées est trop important.
Reprendre	Permet de reprendre la compilation après une interruption.
Atteindre l'erreur	Permet d'afficher l'Editeur d'unité de programme contenant la source de l'unité de programme à l'emplacement de la première erreur. Si vous cliquez sur ce bouton et que vous avez interrompu la compilation après avoir attendu de cliquer, une zone d'avertissement apparaît ; elle vous informe que l'accès à la source d'une erreur provoque l'abandon de la compilation par lots. Cette option permet également d'appeler la boîte de dialogue des messages de compilation PL/SQL, zone de liste que l'utilisateur peut faire défiler à l'aide de la souris pour consulter toutes les erreurs détectées lors de la compilation des unités de programme sélectionnées. Dans cette zone de liste, cliquez sur une erreur pour afficher l'Editeur d'unité de programme et l'unité de programme contenant cette erreur.

Si la compilation se termine sans qu'aucune erreur n'ait été détectée, le message Compilation réussie s'affiche dans la ligne d'état. Si des erreurs ont été détectées pendant la compilation, le message Compilation avec erreurs s'affiche.

La boîte de dialogue des messages d'erreur de compilation PL/SQL est une zone de liste que vous pouvez faire défiler à l'aide de la souris pour consulter toutes les erreurs détectées lors de la compilation des unités de programme sélectionnées. Dans cette zone de liste, cliquez sur une erreur pour afficher l'Editeur d'unité de programme et l'unité de programme dans laquelle se trouve l'erreur.


Pendant la compilation des unités de programme, indique les informations suivantes : le nom et le type de l'unité de programme en cours de compilation, ainsi que le pourcentage d'unités de programme ayant été compilées.


Permet d'arrêter momentanément la compilation, par exemple lorsque le nombre d'erreurs générées est trop important. Le fait de cliquer sur Interrompre affiche [INTERROMPU] dans la ligne d'état.


Permet de reprendre la compilation après une interruption.


Permet d'afficher l'explorateur de messages de compilation PL/SQL et l'Editeur d'unité de programme contenant la source de l'unité de programme à l'emplacement de la première erreur.


Expressions régulières

Les expressions régulières sont des chaînes qui peuvent contenir les caractères génériques spéciaux suivants :

.	Equivaut à n'importe quel caractère. Par exemple, .oc équivaut à la fois à toc et roc.
( )	Utilisé pour imposer la priorité des opérateurs (par exemple, +) lorsque la priorité par défaut ne doit pas être utilisée. Par exemple, la concaténation de caractères (par exemple le) a priorité sur les autres opérateurs comme +, de sorte que le+A équivaut à (le)+A. Si vous voulez que la correspondance soit leeeeeeA, vous pouvez imposer que + précède la concaténation en utilisant des parenthèses : l(e+)A.
[ ]	Equivaut à n'importe quel caractère entre crochets. Les crochets équivalent à un opérateur OR logique. Par exemple, b[roi]s correspondra à bris et à bois.
|	Utilisé entre deux expressions régulières. Il y a correspondance si l'une ou l'autre des expressions régulières correspond.
\	Equivaut au caractère spécial qui suit la barre oblique inversée. Par exemple, \* équivaut à *. La barre oblique inversée est le caractère dit " d'échappement ". Tout caractère spécial qui le suit n'est pas considéré comme un caractère spécial. Exemples d'utilisation du caractère d'échappement :
	\n équivaut à un caractère de changement de ligne ;
	\t correspond à un caractère de tabulation ;
	\b correspond à un caractère blanc ;
	\w correspond à \n, \t, \b ou \0.
*	Correspond à 0 ou à plusieurs instances de l'expression régulière. Par exemple, (le)*A correspond à A, leA et leleA.
+	Correspond à une ou plusieurs instances de l'expression régulière. Par exemple,(le)+A correspond à la fois à leA et à leleA, mais ne correspond pas à le tout seul, contrairement à (le)*A.

Les caractères suivants ont une signification particulière lorsqu'ils sont utilisés entre crochets :

~	Utilisé comme premier caractère, correspond à tout caractère qui ne figure pas dans les caractères ou les séries de caractères entre crochets. Par exemple, b[~ro]is correspond à bais, mais pas à bris.
-	Entre deux paires de caractères, correspond à n'importe quel caractère de la série. Par exemple, A-E correspondra aux lettres A, B, C, D et E. Les paires de séries de caractères peuvent être :
	• des caractères alphabétiques en majuscules ou en minuscules, dans lesquels le premier caractère précède (ou est au même niveau que) le deuxième caractère de l'alphabet ;
	• des chiffres, dans lesquels le premier est inférieur ou égal au second (par exemple,  [4-9] ou [0-3]).
	Vous pouvez également utiliser le caractère d'échappement entre crochets.
Règles : L'ordre de priorité des caractères spéciaux d'une expression régulière est le suivant : ( ), [ ], caractères concaténés (par exemple abc), *, +, ~,  , |, .

Exemples d'implication de l'ordre de priorité :

•	Début|Fin équivaut à (Début)|(Fin)

•	Début* équivaut à (Début)*

•	Début|Fin* équivaut à (Début)|((Fin)*)


Boîte de dialogue Sélection de lignes de table PL/SQL

Cette boîte de dialogue contient des index de lignes d'une table sélectionnée et permet de sélectionner les lignes que vous voulez consulter, totalement développées, dans le Navigateur d'objet.

Boîte de liste d'index d'enregistrements	Zone que vous pouvez faire défiler à l'aide de la souris, contenant une liste des index de toutes les lignes de la table sélectionnée.
Sélectionner tout	Permet de sélectionner tous les éléments de la table sélectionnée.
Désélectionner tout	Permet d'annuler la sélection de tous les éléments de la table sélectionnée.
Par défaut, tous les index sont sélectionnés. Pour désélectionner chaque index de la liste, cliquez dessus tout en appuyant sur la touche Ctrl.


Boîte de dialogue de recherche et de remplacement dans les unités de programme

Cette boîte de dialogue vous permet d'effectuer une recherche globale et des remplacements dans plusieurs unités de programme.

Rechercher	Entrez la chaîne à rechercher. Ou Cliquez sur la flèche située à droite afin de choisir une chaîne dans la zone de liste déroulante, qui peut contenir jusqu'aux 16 dernières chaînes de recherche utilisées. Pour que cette chaîne soit considérée comme une expression régulière, cochez la case Utiliser les expressions.
Expression	Permet d'afficher la liste des expressions régulières que vous pouvez utiliser dans vos critères de recherche. Cliquez sur l'une d'elles pour l'insérer dans la zone de liste déroulante Rechercher.
Remplacer par	Entrez la chaîne devant remplacer celle recherchée. Ou Cliquez sur la flèche située à droite afin de choisir une chaîne dans la zone de liste déroulante, qui peut contenir jusqu'aux 16 dernières chaînes de remplacement utilisées.
Utiliser les expressions	Cochez cette case si vous utilisez des expressions régulières dans vos critères de recherche. Désélectionnez-la si vous n'en employez pas.
Respecter la casse	Cochez cette case pour indiquer que la recherche doit distinguer les majuscules et les minuscules. Désélectionnez-la pour rechercher toutes les instances correspondantes de la chaîne de recherche, qu'elles soient en majuscules ou en minuscules.
Rechercher sur	Indiquez l'endroit où vous voulez effectuer la recherche ou une recherche/remplacement. Dans une session Procedure Builder autonome,  / représente le niveau supérieur du noeud Unités de programme du Navigateur d'objet. Toutes les librairies PL/SQL ouvertes dans la session en cours sont répertoriées sous le signe /. Tous les noeuds sont sélectionnés par défaut. Pour effectuer la recherche uniquement dans l'un des noeuds, cliquez dessus.
Chercher tout	Permet de rechercher toutes les instances correspondantes de la chaîne de recherche que vous avez indiquée. Aucun remplacement n'est effectué.
Remplacer par	Permet de remplacer toutes les instances correspondantes de la chaîne de recherche par celle que vous avez indiquée. Une zone de message apparaît ; elle vous invite à confirmer le remplacement par lots avant sa réalisation.
Fermer	Permet de fermer la boîte de dialogue.
Aide	Permet d'afficher cette rubrique d'aide.
Zone de résultats	Permet d'afficher les instances de la chaîne trouvées. L'emplacement de chacune d'elles est indiqué par le nom du noeud et de l'unité de programme concernés, ainsi que par le numéro de ligne et de colonne de la ligne source. Le nombre total d'instances apparaît dans la barre d'état située au-dessus de cette zone de liste. Cliquez sur l'une de ces instances pour la sélectionner. Vous pouvez en choisir plusieurs.
Remplacer	Permet de remplacer la chaîne de recherche par celle indiquée dans les instances correspondantes sélectionnées dans la zone de résultats uniquement.
Modifier	Permet d'ouvrir la source de l'instance correspondante sélectionnée dans l'Editeur d'unité de programme.


Boîte de dialogue Options de conversion PL/SQL V1

Cette boîte de dialogue vous permet de définir le comportement de l'utilitaire pour tous les types de syntaxe V1 ou V2 pris en charge par PL/SQL. Vos préférences sont enregistrées dans la base de registres de Windows pour Microsoft Windows 95/NT ou dans un profil UNIX.

Type de problème	Répertorie les types de syntaxe PL/SQL V1 ou V2 pris en charge par l'utilitaire de conversion : CHAR remplacé par VARCHAR2 Longueur de chaîne requise par VARCHAR2 Expressions OUT et IN OUT par défaut supprimées Valeur NULL ajoutée à RETURN dans les fonctions Procédure interne obsolète La fonction LENGTH renvoie la valeur NULL pour une chaîne de longueur zéro Le transfert de la valeur NULL au sous-programme surchargé est incorrect Absence d'une instruction RETURN dans la fonction
Convertir	Toutes les instances du type de problème sélectionné sont converties automatiquement sans demande de confirmation.
Convertir tout	Raccourci pour définir tous les types de problème à Convertir. L'utilitaire convertit automatiquement tous les problèmes PL/SQL V1 ou V2 sans demande de confirmation.
Ignorer	Aucune instance du type de problème sélectionné n'est prise en compte. Pour éviter des erreurs du compilateur, vous devez modifier manuellement le code V1 ou V2.
Ignorer tout	Raccourci pour définir tous les types de problème à Ignorer. L'utilitaire ne prend en compte aucun de ces types de problème et n'effectue aucune conversion. Pour éviter des erreurs du compilateur, vous devez modifier manuellement le code V1 ou V2.
Me consulter	Chaque instance du type de problème sélectionné est affichée individuellement dans la boîte de dialogue Conversion. Vous pouvez alors choisir Convertir ou Ignorer.
Me consulter pour tout	Raccourci pour définir tous les types de problème pour lesquels le système doit vous consulter. L'utilitaire vous demande de confirmer (dans la boîte de dialogue Conversion) avant de procéder à la conversion d'une chaîne PL/SQL V1 ou V2.
OK	Permet de confirmer vos sélections et de fermer la boîte de dialogue.
Annuler	Permet d'annuler toute modification apportée au module et de fermer la boîte de dialogue.


Boîte de dialogue Conversion

Cette boîte de dialogue vous permet de contrôler de façon interactive le processus de conversion de PL/SQL V1 ou V2. Pour définir des options pour des  conversions ultérieures, cliquez sur Options.

Fenêtre Source	Affiche le source de l'unité de programme où la condition de conversion est détectée. La syntaxe à convertir est mise en évidence. Vous pouvez faire défiler cette fenêtre vers le haut ou vers le bas pour analyser les conversions réalisées.
Condition:	Instruction PL/SQL V1 ou V2 nécessitant une conversion.
Action :	Opération effectuée par l'utilitaire si vous cliquez sur Convertir
Expliquer. . .	Permet d'afficher plus de détails sur le problème et le s conséquences si vous décidez de passer outreà la conversion.
Convertir	Permet d'accepter l'action recommandée par défaut et de passer à l'instruction suivante.
Convertir tout	Permet de convertir tous les problèmes de syntaxe PL/SQL V1 ou V2 dans tout le module, pouvant contenir plusieurs unités de programme. Toutes les actions par défaut sont acceptées.
Ignorer	Permet de ne pas convertir l'instruction PL/SQL V1 ou V2 décrite dans le champ Problème et de passer à l'instruction suivante.
Ignorer tout	Permet de passer outre le processus de conversion pour tout le module, pouvant contenir plusieurs unités de programme.
Options. . .	Permet d'afficher la boîte de dialogue Options de conversion PL/SQL V1 dans laquelle vous pouvez indiquer les options de contrôle du processus de conversion.


Boîte de dialogue Sommaire de conversion PL/SQL V1

Cette boîte de dialogue fournit les informations suivantes :

•	lignes source converties

•	lignes source non prises en compte

•	lignes source ayant généré des erreurs du compilateur PL/SQL

Boutons de la barre d'outils :

Icône X	Permet de fermer la boîte de dialogue.
Icône ?	Permet d'afficher l'aide de la boîte de dialogue.
Fenêtre Sommaire :

Rechercher	Permet d'afficher les fonctions de recherche standard pour les noeuds développés et réduits.
Noeud	Un noeud par unité de programme dans le module. Si le noeud contient un signe plus, cliquez sur celui-ci pour afficher un sommaire de la conversion (et la façon dont la conversion a été réalisée) et sur ce qui n'a pas été pris en compte. Si un noeud est vide (sans signe plus ni signe moins), l'unité de programme ne nécessite aucune conversion. Pour adresser les erreurs du compilateur - ou analyser le source converti - ou encore les éléments non pris en compte, cliquez deux fois sur une ligne dans le noeud développé. (Ou choisissez la ligne et sélectionnez Programme [image] Editeur d'unité de programme.) L'Editeur s'ouvre, le curseur étant positionné sur la ligne sélectionnée. Remarque : Après avoir modifié le source à l'aide de l'Editeur d'unité de programme, il se peut que la prochaine fois que vous cliquiez deux fois sur une ligne ou que vous utilisiez le bouton Editer le curseur ne soit pas correctement positionné.
Options de menu :

Le menu Programme offre deux options :

Editeur d'unité de programme	Permet d'ouvrir le source dans l'Editeur d'unité de programme. Le curseur se positionne sur la ligne sélectionnée.
Options de conversion	Permet d'afficher la boîte de dialogue Options de conversion afin de visualiser ou de modifier les options indiquées.
Menu instantané :

Cliquez sur le bouton droit de la souris pour afficher un menu instantané.

Editer	Permet d'ouvrir le source dans l'Editeur d'unité de programme. Le curseur se positionne sur la ligne sélectionnée.
Expliquer	Permet d'afficher l'aide en ligne sur le type de conversion pour la ligne sélectionnée.


Fonctions d'édition

  Rubriques connexes

Les fonctions d'éditions suivantes sont prises en charge uniquement dans l'Editeur d'unité de programme et dans l'Editeur d'unité de programme stockée :

Retrait/retrait négatif automatique	Lorsque vous entrez du code dans les éditeurs, les lignes sont automatiquement mises en retrait ou en retrait négatif en fonction des règles de syntaxe PL/SQL.
Mise en évidence de la syntaxe à l'aide de couleurs	Les mots-clés, les commentaires, les chaînes et les symboles tels que : = et || sont identifiés à l'aide de couleurs différentes.
Sélection de colonnes et de lignes	Vous pouvez sélectionner des colonnes de texte, ainsi que des lignes de code source. Pour sélectionner une colonne, appuyez sur la touche ALT, puis cliquez sur cette colonne et faites glisser le curseur horizontalement. Pour sélectionner une ligne, cliquez sur la marge à l'extrême gauche de cette ligne dans la fenêtre Source.
Manipulation de texte par glisser-déplacer	Vous pouvez copier ou déplacer le texte sélectionné en le faisant glisser. Pour copier le texte sélectionné, appuyez sur la touche CTRL et faites-le glisser. Pour déplacer le texte sélectionné, il vous suffit de le faire glisser.
Lignes mises en retrait ou en retrait négatif	Les commandes de mise en retrait ou en retrait négatif du menu Edition vous permettent de mettre en retrait ou en retrait négatif les lignes source sélectionnées. Vous pouvez également utiliser les touches TAB et Maj-TAB pour mettre les lignes sélectionnées en retrait ou en retrait négatif.
Vues multiples	Vous pouvez créer jusqu'à quatre vues distinctes de l'unité de programme en cours. Pour créer des vues horizontales, placez le curseur sur la barre de partage en haut de la barre de défilement verticale. Puis cliquez sur la barre de partage et faites-la glisser vers le bas. Pour créer des vues verticales, placez le curseur sur la barre de partage à l'extrême gauche de la barre de défilement horizontale. Puis cliquez sur la barre de partage et faites-la glisser vers la droite. Pour supprimer une vue horizontale ou verticale, cliquez deux fois sur la barre de partage qui sépare les vues.
Impression	Choisissez Fichier [image] Imprimer pour imprimer l'unité de programme en cours.
Annulation et annulation d'annulation illimitées	Les commandes Annuler et Annuler annulation du menu Edition vous permettent d'annuler des modifications ou des annulations pour toutes les opérations effectuées depuis le dernier enregistrement du fichier.

Remarque : Ces fonctions sont disponibles uniquement sous Microsoft Windows. Sous UNIX, vous pouvez uniquement effectuer les opérations suivantes :

•	imprimer l'unité de programme en cours

•	utiliser les touches TAB et Maj-TAB pour mettre en retrait ou en retrait négatif les lignes sélectionnées

•	déplacer le texte sélectionné en le faisant glisser


Utilisation de la souris dans l'éditeur

  Rubriques connexes

Les opérations décrites ci-après sont prises en charge lorsque vous utilisez l'éditeur d'unité de programme (et l'éditeur d'unité de programme stockée) sous Microsoft Windows :

Pour :	Opération à l'aide de la souris :
Sélectionner des caractères dans une plage	Cliquez et faites glisser le curseur du premier au dernier caractère de la plage à sélectionner (cette opération est aussi prise en charge sous UNIX). Ou, Cliquez sur le premier caractère, appuyez sur la touche Maj et cliquez sur le dernier caractère de la plage à sélectionner.
Sélectionner le mot situé sous le curseur	Cliquez deux fois sur ce mot (cette opération est aussi prise en charge sous UNIX). Ou, Appuyez sur la touche Ctrl, puis cliquez sur le mot à sélectionner.
Sélectionner des mots dans une plage	Appuyez sur la touche Ctrl, puis cliquez et faites glisser le curseur du premier au dernier mot de la plage à sélectionner.
Sélectionner une ligne	Positionnez le curseur sur la marge de gauche de la ligne à sélectionner. Cliquez lorsque le curseur prend la forme d'une flèche.
Sélectionner plusieurs lignes	Positionnez le curseur sur la marge de gauche de la première ligne à sélectionner. Lorsque le curseur prend la forme d'une flèche, cliquez et faites-le glisser jusqu'à la dernière ligne à sélectionner.
Sélectionner des colonnes de texte	Appuyez sur la touche Alt, puis cliquez et faites glisser le curseur de la première à la dernière colonne de la plage à sélectionner.
Déplacer le texte sélectionné	Tout d'abord, sélectionnez le texte. Puis cliquez et faites-le glisser vers son nouvel emplacement (cette opération est aussi prise en charge sous UNIX).
Copier le texte sélectionné	Tout d'abord, sélectionnez le texte. Puis appuyez sur la touche Ctrl, faites-le glisser vers l'emplacement où vous souhaitez le copier et relâchez le bouton de la souris.
Séparer une fenêtre en deux vues horizontales	Cliquez deux fois sur la barre de partage située en haut de la barre de défilement verticale. Ou, Cliquez sur la barre de partage située en haut de la barre de défilement verticale et faites-la glisser.
Séparer une fenêtre en deux vues verticales	Cliquez deux fois sur la barre de partage située à l'extrême gauche de la barre de défilement horizontale. Ou, Cliquez sur la barre de partage située à l'extrême gauche de la barre de défilement horizontale et faites-la glisser.
Ajuster la taille relative des vues	Cliquez sur la barre de partage qui sépare les vues et faites-la glisser.
Supprimer des vues dans un affichage de vues multiples	Cliquez deux fois sur la barre de partage qui sépare les vues. Ou, Cliquez sur la barre de partage et faites-la glisser vers le bord de la fenêtre. Pour supprimer les quatre vues à la fois, cliquez deux fois sur le point de rencontre des barres de partage ou faites-le glisser vers n'importe quel angle de la fenêtre.


Utilisation du clavier dans l'éditeur

  Rubriques connexes

Les opérations au clavier décrites ci-après sont prises en charge lorsque vous utilisez l'éditeur d'unité de programme (et l'éditeur d'unité de programme stockée) sous Microsoft Windows et sous UNIX :

Pour :	Séquence de touches :
Déplacer le curseur d'un caractère vers la gauche	Touche Gauche
Sélectionner un caractère en déplaçant le curseur vers la gauche	Maj + Gauche
Déplacer le curseur d'un caractère vers la droite	Touche Droite
Sélectionner un caractère en déplaçant le curseur vers la droite	Maj + Droite
Copier les caractères ou les mots sélectionnés	Ctrl + C
Couper les caractères ou les mots sélectionnés	Ctrl + X
Coller le contenu du presse-papiers	Ctrl + V
Supprimer le caractère à droite du curseur, ou supprimer les caractères ou les mots sélectionnés	Suppr
Supprimer le caractère à gauche du curseur	Retour Arrière
Placer le curseur à la fin de l'unité de programme	Ctrl + Fin	(Windows seulement)
Placer le curseur au début de l'unité de programme	Ctrl + Origine	(Windows seulement)
Sélectionner les lignes source à partir de la position actuelle du curseur jusqu'à la fin de l'unité de programme	Ctrl + Maj + Fin	(Windows seulement)
Sélectionner les lignes source à partir de la position actuelle du curseur jusqu'au début de l'unité de programme	Ctrl + Maj + Origine	(Windows seulement)
Placer le curseur à la fin de la ligne en cours	Fin	(Windows seulement)
Placer le curseur au début de la ligne en cours	Origine	(Windows seulement)
Sélectionner les caractères à partir de la position actuelle du curseur jusqu'à la fin de la ligne en cours	Maj + Fin	(Windows seulement)
Sélectionner les caractères à partir de la position actuelle du curseur jusqu'au début de la ligne en cours	Maj + Origine	(Windows seulement)
Mettre en retrait la ligne sélectionnée ou les caractères à droite du curseur	Touche Tab
Mettre en retrait négatif la ligne sélectionnée	Maj + touche Tab
Faire descendre le curseur d'une ligne	Touche Bas
Sélectionner la ligne en déplaçant le curseur vers le bas	Maj + Bas
Faire monter le curseur d'une ligne	Touche Haut
Sélectionner la ligne en déplaçant le curseur vers le haut	Maj + Haut
Faire défiler vers le bas l'unité de programme du nombre de lignes affichées dans la fenêtre Source	Pg.Suiv
Faire défiler vers le bas l'unité de programme du nombre de lignes affichées dans la fenêtre Source et les sélectionner en même temps	Maj + Pg.Suiv
Faire défiler vers le haut l'unité de programme du nombre de lignes affichées dans la fenêtre Source	Touche Pg.Préc
Faire défiler vers le haut l'unité de programme du nombre de lignes affichées dans la fenêtre Source et les sélectionner en même temps	Maj + Pg.Préc
Annuler l'opération la plus récente	Ctrl + Z	(Windows seulement)
Annuler l'opération d'annulation la plus récente	Ctrl + Y	(Windows seulement)


Exécutables DET60 et DEBLD60

Description  Ces programmes vous permettent d'exécuter un script de l'Interpréteur en mode de traitement par lots.

Syntax

Sous Microsoft Windows :

det60 [FILE=NomScript.pld]

Sous UNIX :

debld60 [MODE = {batch | line} FILE=NomScript.pld]

Notes d'utilisation :

•	Sous Microsoft Windows, l'exécution de scripts en mode de traitement par lots à partir d'une invite DOS n'est pas prise en charge. Par ailleurs, l'utilisation de l'exécutable sans option de fichier lance Procedure Builder dans un environnement 32 bits.

•	Pour exécuter Procedure Builder en mode ligne sous Windows, sélectionnez Démarrer [image] Programmes [image] Forms Developer6i [image] Procedure Builder - Line Mode dans la barre des tâches Windows.


MODE

Mode dans lequel le script de l'Interpréteur sera exécuté. Cette option doit être utilisée avec le mot-clé FILE.

Options

•	Choisissez batch pour exécuter le script de l'Interpréteur en arrière-plan.

•	Choisissez line pour exécuter le script de l'Interpréteur en utilisant une sortie standard pour afficher le script pendant son exécution.

Notes d'utilisation  L'option MODE n'est pas valide sous Microsoft Windows.


FILE

Nom du script de l'Interpréteur à exécuter.

Vous devez fournir le chemin d'accès relatif ou absolu au fichier de script. Les scripts de l'Interpréteur utilisent par défaut le suffixe de fichier .pld.


Conventions d'appellation de fichier

Les documents externes sont référencés par un type de document qui indique leur contenu. Dans le cas de documents qui résident dans le système de fichiers, les suffixes par défaut utilisés sont les suivants :

Suffixe	Type de contenu
log	Fichier journal de l'Interpréteur de Procedure Builder.
pld	Script de l'Interpréteur de Procedure Builder contenant toute combinaison d'instructions SQL, de commandes de l'Interpréteur et de sources PL/SQL.
pll	Bibliothèque PL/SQL compilée pouvant être utilisée pour rattachement ou édition.
pls	Texte source PL/SQL d'une seule unité de programme.
plx	Bibliothèque PL/SQL compilée lors de l'exécution et contenant uniquement du code exécutable.


Entrée de base de registres de l'éditeur (Windows 95 uniquement)

Par défaut, la taille d'un bloc de code PL/SQL n'est pas limitée. Pour restaurer la taille limite de 50 Ko dans l'éditeur, paramétrez l'entrée DE60_PLAIN_EDIT sur « 1 » dans la section ORACLE de la base de registres Windows 95.


wLocalisation des erreurs de syntaxe pendant la compilation
Localisation des erreurs de syntaxe pendant la compilation

Pendant la compilation, l'Editeur d'unité de programme offre une fenêtre interactive de messages d'erreur. S'il se produit une erreur de syntaxe PL/SQL pendant la compilation, la cause de l'erreur apparaît dans la fenêtre de messages.

Cliquez deux fois sur l'erreur affichée dans la fenêtre pour passer à l'emplacement de l'erreur dans le code source de l'unité de programme, c'est-à-dire à l'endroit où le compilateur PL/SQL détecte l'erreur de syntaxe. Il se peut que la cause réelle de l'erreur soit différente.

Par exemple, si vous avez oublié de terminer une instruction exécutable par un point-virgule, le compilateur considère que l'erreur de syntaxe se trouve au début de la prochaine instruction, et non à la fin de l'instruction incorrecte.


Différence entre CHARGER et INTERPRETER

  Rubriques connexes

Utilisez CHARGER pour importer et compiler un fichier contenant une définition d'unité de programme. Ce fichier peut contenir uniquement des instructions PL/SQL.

Utilisez INTERPRETER pour importer et exécuter un fichier contenant toute combinaison d'instructions PL/SQL, de commandes de l'Interpréteur et d'instructions SQL.


Différence entre attacher une bibliothèque et l'ouvrir

  Rubriques connexes

Si vous voulez exécuter une unité de programme de bibliothèque, vous devez attacher la bibliothèque. Les bibliothèques attachées apparaissent sous le noeud Bibliothèques attachées, dans le Navigateur d'objet.

Vous ne pouvez pas éditer une bibliothèque attachée. Pour éditer une unité de programme de bibliothèque ou modifier le contenu d'une bibliothèque attachée, vous devez d'abord la détacher, puis l'ouvrir. Les bibliothèques ouvertes apparaissent sous le noeud Bibliothèques PL/SQL dans le Navigateur d'objet.

Si vous ouvrez une bibliothèque à laquelle d'autres bibliothèques sont attachées, Procedure Builder vérifie l'horodatage des bibliothèques attachées. Si une ou plusieurs de ces bibliothèques sont plus récentes que la bibliothèque ouverte, toutes les unités de programme de la bibliothèque ouverte perdent leur état compilé.


Collage de sous-programmes intégrés

  Rubriques connexes

Pou éviter les fautes de frappe lors de la référence à des noms de sous-programme intégré, utilisez les commandes Coller nom ou Coller argument du menu instantané du Navigateur.

La commande Coller argument colle le nom du sous-programme et les paramètres obligatoires. Remplacez les paramètres du modèle par les valeurs appropriées.


Recherche rapide de sous-programmes intégrés

Le champ Rechercher, dans l'angle supérieur droit du Navigateur d'objet, permet de localiser rapidement un sous-programme intégré. Lorsque vous tapez le nom du sous-programme dans ce champ, le Navigateur d'objet développe les noeuds pour trouver les correspondances incrémentielles.

Ce qui permet de gagner du temps lors de la création d'unités de programme.


Transfert de virgules flottantes par ORA_FFI sous Microsoft Windows 3.1

Si les fonctions C que vous voulez appeler en utilisant ORA_FFI ont été compilées par un compilateur ANSI C, tous les types de virgule flottante doivent être déclarés " double ". Les virgules flottantes et les " doubles " peuvent être utilisés avec un compilateur K&R C.


Transfert de données de type caractère à une fonction C par ORA_FFI

Si vous voulez transmettre des données de type caractère à une fonction C, vous devez les initialiser avec au moins autant de caractères que la fonction C lui en transmettra. Par exemple, au lieu de :

  ma_chaîne VARCHAR2(20);

utilisez :

  ma_chaîne VARCHAR2(20) := 'ici 20 caractères  ';


Terminaison de nom de répertoire dans les appels aux fonctions LOAD_LIBRARY

Lorsque vous indiquez un emplacement de bibliothèque en utilisant le sous-programme intégré ORA_FFI.LOAD_LIBRARY, n'oubliez pas de le terminer par une barre oblique inversée (sous Microsoft Windows). Sur les plates-formes UNIX, vous devez terminer le chemin d'accès au répertoire par une barre oblique normale.

Par exemple, sous Windows :

  libhandle := ORA_FFI.LOAD_LIBRARY('c:\biblio.\', 'mabibl.dll');


Centralisation de votre espace de travail de débogage

Insérez une fenêtre Navigateur dans l'Interpréteur pour créer un espace de débogage central. Cette fenêtre est insérée au milieu de l'Interpréteur, entre la fenêtre Source et la fenêtre Interpréteur. Vous pouvez redimensionner les fenêtres en conséquence, en utilisant les barres de partage.

Ce qui vous permet de visualiser dans une seule fenêtre le code source de l'unité de programme, les valeurs des variables locales et la sortie de l'Interpréteur pendant le débogage.


Utilisation d'autres options STEP

  Rubriques connexes

Si vous déboguez une grosse unité de programme contenant plusieurs références à d'autres unités de programme, utilisez les commandes Step Over et Step Out pour éviter de naviguer vers des sous-programmes imbriqués.

Vous pouvez également utiliser la commande Step To pour reprendre l'exécution de l'unité de programme jusqu'à ce qu'un point particulier soit atteint.

L'utilisation de Step Into pour le débogage d'unités de programme complexes et volumineuses peut prendre un temps considérable, car cette commande suspend l'exécution du programme à chaque ligne de code exécutable.


Utilisation des déclencheurs de débogage pour mettre en oeuvre des points d'interruption conditionnels

Vous pouvez créer un point d'interruption généré uniquement dans des cas particuliers. Dans la ligne exécutable du code source de l'unité de programme, créez un déclencheur de débogage et, dans le bloc PL/SQL, utilisez les sous-programmes du package DEBUG pour créer une condition de type :

IF Debug.Getn ('mon_sal') > 5000 THEN

  RAISE Debug.Break;

END IF;

L'exemple ci-dessus utilise la fonction Debug.Getn pour extraire une valeur de la variable locale 'mon_sal'. L'exception Debug.Break n'est générée que lorsque la valeur retournée est supérieure à 5000, et crée alors un point d'interruption.

Les points d'interruption conditionnels permettent de gagner du temps de débogage, car l'exécution de l'unité de programme n'est suspendue que dans le cas spécifique que vous indiquez.


Enregistrement de l'activité de l'Interpréteur dans un fichier journal

Utilisez un fichier journal pour enregistrer toute l'activité de l'Interpréteur pendant une session. Les fichiers journal peuvent être extrêmement utiles pour analyser rétrospectivement vos actions. En outre, vous pouvez copier et coller des informations du fichier journal de l'Interpréteur directement dans l'Editeur d'unité de programme ou dans l'Interpréteur, pour éviter de retaper des commandes complexes ou des interrogations, ou de recréer des unités de programme ou des déclencheurs de débogage.


Enregistrement d'actions de débogage

Les actions de débogage de type déclencheur ne sont pas enregistrées d'une session de débogage à l'autre. Pour éviter de retaper des actions de débogage complexes, enregistrez-les dans un fichier journal de l'Interpréteur.

Avant le débogage, lancez une session de journalisation. Pour enregistrer vos actions de débogage, entrez-les à l'invite PL/SQL> de l'Interpréteur en utilisant les commandes BREAK et TRIGGER. Le fichier journal de l'Interpréteur n'enregistre que les activités entrées directement dans l'Interpréteur.


Utilisation du package intégré TEXT_IO

Les déclencheurs de débogage peuvent s'exécuter en arrière-plan pour vous permettre de localiser la cause de l'erreur à l'exécution sans devoir passer en revue les différentes étapes de l'exécution de l'unité de programme. Utilisez le package intégré TEXT_IO pour transmettre les valeurs des variables dans un fichier au lieu de définir un point d'interruption et de vérifier de manière répétitive les valeurs des variables de la pile d'appels du Navigateur d'objet.

Par exemple, dans le bloc PL/SQL d'un déclencheur de débogage :

print1 := Debug.Getc ('nom_emp');

print2 := Debug.Getn 'sal');

Text_IO.Putf ('%s Salaire : %d', print1, print2);


Utilisation d'un script de démarrage

 Rubriques connexe

Utilisez l'option de ligne de commande FILE=nomdescript pour exécuter automatiquement un script de l'Interpréteur lorsque vous lancez une session de Procedure Builder. Le script peut contenir toute combinaison de commandes de l'Interpréteur, d'instructions SQL et de code source PL/SQL.

Les scripts de démarrage peuvent exécuter des activités de routine (connexion à une base de donnée et chargement de plusieurs unités de programme, par exemple).


Emplacement de stockage des unités de programme permettant d'optimiser les performances

  Rubriques connexes

Stockez les petites unités de programme propres à une application dans l'application elle-même. Cette règle s'applique aux unités de programme qui ne seront pas partagées par plusieurs applications. Ces unités de programme sont chargées en mémoire au moment du chargement de l'application.

Stockez dans des bibliothèques les unités de programme plus volumineuses ou celles qui seront utilisées par plusieurs applications. Les bibliothèques peuvent être rattachées à plusieurs applications pour que vous puissiez utiliser un code commun. Les unités de programme stockées dans des bibliothèques ne sont chargées en mémoire que lorsqu'elles sont appelées par l'application.

Stockez les unités de programme dans la base de données si elles font référence à des objets de la base de données (des tables, par exemple). Cette solution diminue le trafic du réseau entre l'application et le serveur. Les unités de programme stockées dans la base de données ne peuvent pas contenir de références aux sous-programmes intégrés côté client, comme TEXT_IO, ORA_FFI, etc.


Réduction de la taille d'une bibliothèque

Lors de la conception : Si le facteur le plus important est l'espace, utilisez la commande SAVE avec le mot-clé NODIANA pour n'enregistrer que le PCODE et le code source de la bibliothèque. Si le facteur le plus important est le temps, utilisez la commande SAVE sans mot-clé pour enregistrer tous les composants de la bibliothèque compilée.

Lors de l'exécution : Si le facteur le plus important est l'espace, utilisez la commande SAVE avec les mots-clés NODIANA et NOSOURCE pour créer une bibliothèque d'exécution seulement. Vous pouvez également faire appel à la commande GENERATE. Ces deux options créent un fichier ayant l'extension .plx pour indiquer qu'il s'agit d'un fichier d'exécution seulement. Pendant l'exécution, le système recherche les fichiers .plx avant les fichiers .pll.


Stockage de packages dans des bibliothèques

Une unité de programme stockée dans une bibliothèque est chargée en mémoire par une application lorsqu'elle est appelée par l'application. N'oubliez pas qu'un package est un type d'unité de programme. Lorsqu'une application appelle un sous-programme en package, stocké dans une bibliothèque attachée, TOUT le package est chargé en mémoire, et non uniquement le sous-programme qui a été appelé. L'application appelle en réalité le package.


Division de packages volumineux dépassant la taille maximale d'unité de programme

Sous Microsoft Windows, la taille totale d'une unité de programme compilée (source, PCODE et DIANA inclus) ne peut pas dépasser 64 K, ce qui peut gêner la mise en oeuvre de gros packages PL/SQL. Pour éviter ce problème, structurez vos gros packages en plusieurs plus petits packages.

Pour éviter d'avoir à gérer les différences de noms de package à partir du site appelant, découpez les gros packages selon l'exemple ci-dessous. Supposons que vous ayez un package appelé " volumineux " qui a été créé et compilé sur une système d'exploitation différent :

/* spécification du package */
package reallybig is
  procedure bp1;
. . .
  procedure bpN;
end reallybig;

/* corps du package */
package body reallybig is
  procedure bp1 is
    begin
      /* éléments bp1 */
    end;
...
  procedure bpN is
    begin
      /* éléments bpN */
    end;
end reallybig;

Supposons maintenant que vous vouliez utiliser le package volumineux "reallybig" sous Windows, mais qu'il dépasse la limite de 64 Ko. Vous pouvez diviser une partie ou la totalité du corps du package en un ou plusieurs packages séparés sans modifier la spécification du package d'origine, et donc sans modifier les applications qui appellent les sous-programmes dans le package d'origine. Votre package secondaire se présenterait de la manière suivante :

/* corps du package secondaire*/
package body helper1 is
  procedure bp1 is
    begin
      /* éléments bp1 */
    end;
. . .
  procedure bp2 is
    begin
      /* éléments bp2 */
    end;
. . .
end helper1;

La seule modification que vous apportez au package " volumineux " d'origine est la modification du corps, qui fait référence aux unités de programme que vous avez transmises au package secondaire de la manière suivante :

/* corps du package */
package body reallybig is
  procedure bp1 is
    begin
      helper1.bp1;
    end;
. . .
  procedure bp2 is
    begin
      helper1.bp2;
    end;
. . .
end reallybig;


Exécution d'unités de programme à partir d'une bibliothèque ouverte

Problème : J'essaie d'exécuter une unité de programme de bibliothèque, mais je reçois le message d'erreur « Procédure non définie ».

Solution : Assurez-vous que la bibliothèque à partir de laquelle vous appelez l'unité de programme n'est pas ouverte dans le Navigateur d'objet. Pour appeler une unité de programme de bibliothèque, vous devez attacher la bibliothèque, puis appeler l'unité de programme. Si la bibliothèque est sous le noeud Bibliothèques dans le Navigateur, enregistrez-la et fermez-la, puis utilisez Fichier [image] Attacher bibliothèque afin de l'attacher.


Recompilation d'unités de programme sur le serveur

Problème : J'ai déplacé une unité de programme vers le serveur, mais elle ne se compile pas.

Solution : Assurez-vous que l'unité de programme ne contient pas de références à des sous-programmes intégrés côté client, notamment des unités de programme figurant dans le noeud Packages intégrés du Navigateur d'objet. Comme ces sous-programmes ne sont pas définis sur le serveur, le compilateur ne peut pas résoudre les références. Toute unité de programme faisant référence à des sous-programmes intégrés côté client doit rester côté client.


Rétablissement de la validation d'unités de programme

Problème : Je reçois le message d'erreur « Corps de procédure nom invalidé ».

Solution : Si l'une de vos unités de programme fait référence à des objets d'une base de données, mais se trouve côté client, la déconnexion de cette instance de base de données invalide les unités de programme, car elles ne peuvent plus résoudre les références aux objets de la base de données. Assurez-vous que vous êtes connecté à la base de données dans laquelle les objets référencés sont stockés.


Compilation d'unités de programme faisant référence à des " procédures non définies "

Problème : Un message d'erreur de compilation m'indique que le nom n'est pas une procédure ou n'est pas défini alors qu'il l'est.

Solution : Vérifiez le noeud Unités de programme du Navigateur d'objet. Si l'unité de programme en question est une fonction, assurez-vous que vous l'avez appelée correctement. Les fonctions retournent une valeur et doivent être attribuées à une variable locale, ou utilisées comme argument d'un autre sous-programme dont le type d'argument correspond au type de retour de la fonction. Si vous appelez une fonction sans indiquer son type de retour, le compilateur estime que vous avez appelé une procédure à la place. Lorsqu'il détermine qu'une procédure de ce nom n'existe pas, il renvoie un message d'erreur.

Si l'unité de programme est une procédure ou une fonction que vous avez appelée correctement, vérifiez si la spécification de l'unité de programme a changé. Par exemple, si l'ancienne spécification demandait un argument de type NUMBER et qu'elle ait été redéfinie pour accepter un argument de type CHAR, les appels à l'ancienne spécification ne seront pas résolus.


Compilation d'unités de programme faisant référence à des objets de base de données

Problème : Beaucoup d'erreurs de compilation se sont produites lorsque j'ai tenté de compiler des unités de programme faisant référence à des objets de base de données.

Solution : Assurez-vous que vous êtes connecté à une base de données contenant les objets référencés dans votre ou vos unités de programme. Vous devez en outre avoir sur la base de données les autorisations appropriées pour les objets référencés. Lorsque vous êtes connecté, essayez de recompiler la ou les unités de programme.


Changement de variables locales pendant le débogage

Problème : J'ai changé la valeur d'une variable locale, mais quand j'ai repris l'exécution de l'unité de programme, la variable locale avait toujours son ancienne valeur.

Solution : Lorsque vous éditez la valeur d'une variable locale dans le Navigateur d'objet, vous devez cliquer dans une zone vierge du Navigateur pour sortir du mode Edition et définir la nouvelle valeur.


Effacement de l'invite secondaire de l'Interpréteur

Problème : J'ai commencé la saisie dans la ligne de commande de l'Interpréteur, mais lorsque j'ai appuyé sur Entrée, j'ai vu s'afficher le signe "+>".

Solution : Ce message est l'invite secondaire de l'Interpréteur. Si vous appuyez accidentellement sur la touche Entrée avant la fin d'une instruction (par exemple, avant d'entrer le point-virgule final d'une instruction PL/SQL), l'invite secondaire apparaît. L'Interpréteur affiche une deuxième invite pour vous permettre d'entrer plusieurs lignes avant d'exécuter une commande, une instruction SQL ou PL/SQL.

Vous pouvez reprendre la saisie (c'est-à-dire taper le point-virgule final pour exécuter l'instruction) ou effacer l'invite à l'aide de la commande de menu local Nouvelle invite dans la fenêtre Interpréteur.


Accès aux variables à partir de packages à distance

Problème : J'ai créé un package sur le serveur. Il contient une variable définie dans la spécification du package. Mon unité de programme côté client, qui accède à cette variable, ne se compile pas correctement. Je reçois le message d'erreur suivant : « Restriction de mise en oeuvre : '<nom_package.nom_variable>' : Impossible d'accéder directement à la variable ou au curseur du package distant. ».

Solution : Créez une fonction qui renvoie la valeur de la variable.


Gestion des exceptions PL/SQL

Les exceptions sont générées lors de l'exécution sur détection d'une erreur dans un sous-programme PL/SQL. Outre les exceptions fournies par PL/SQL, Oracle offre ses propres exceptions prédéfinies ou intégrées.

Pour détecter les exceptions lorsqu'elles sont générées, vous devez écrire des gestionnaires d'exceptions dans vos sous-programmes PL/SQL de la manière suivante :

...

EXCEPTION

  WHEN nom_d'exception THEN

    instructions

END;

où nom_d'exception est le nom de l'exception générée et instructions est un ensemble d'instructions PL/SQL destinées à exécuter une action spécifique.

Vous pouvez gérer chaque exception par son nom, ou générer toutes les exceptions de manière générique en utilisant le format suivant :

...

EXCEPTION

  WHEN OTHERS THEN

    instructions

END;

Vous pouvez également utiliser une combinaison de plusieurs gestionnaires spécifiques et d'un seul gestionnaire générique. Dans ce cas, le gestionnaire générique WHEN OTHERS doit être le dernier.

L'utilisation du gestionnaire générique WHEN OTHERS garantit que toutes les exceptions seront gérées lors de l'exécution.

Pour plus d'informations sur les exceptions PL/SQL, reportez-vous à PL/SQL User's Guide and Reference.


Traitement d'erreurs dans les API PL/SQL

Lorsque vous créez un système intégré à PL/SQL, vous devez souvent construire des API PL/SQL pour des fonctionnalités mises en oeuvre en C. (Ces API sont également appelées « définitions C d'interface », « ICD » ou « liens PL/SQL à C ».) La zone de traitement des erreurs constitue l'un des problèmes que les programmeurs doivent résoudre lorsqu'ils créent des ICD. En général, les approches du traitement des erreurs sont relativement différentes en C et en PL/SQL. La stratégie C typique implique le retour et la vérification des codes d'erreur. Par contre, la pratique PL/SQL courante consiste à générer des exceptions et à mettre en oeuvre des identificateurs qui détectent les exceptions, le cas échéant.

Comment la condition d'erreur C doit-elle être transmise au côté PL/SQL ? L'une des solutions idéales consisterait à générer une exception côté PL/SQL et à transmettre à l'exception la condition d'erreur C sous la forme de paramètres.Malheureusement, comme PL/SQL n'accepte pas les exceptions paramétrées, cette solution n'est pas viable. Les options restantes sont les suivantes :

1.  Ne pas tenir compte de la condition d'erreur C et ne pas signaler l'existence d'un problème à PL/SQL.

2.  Ne pas tenir compte de la condition d'erreur C et générer une exception.

3.  Conserver la condition d'erreur C intacte, générer une exception et fournir une API PL/SQL permettant d'accéder à la condition d'erreur C.

L'approche 1 n'est pas intéressante, car elle implique une perte maximum d'informations. L'approche 2 pourrait être utilisée avec une perte d'informations légèrement inférieure, si une exception était définie pour chaque code d'erreur possible côté C ; cependant, cette solution n'est pas pratique et ne peut être étendue à l'infini (au fur et à mesure que des codes d'erreur sont ajoutés, la spécification de package PL/SQL correspondante doit être modifiée pour définir les exceptions supplémentaires, ce qui invalide tout code PL/SQL qui dépend de la spécification modifiée et impose donc la recompilation de toutes les spécifications dépendantes). Il ne reste donc plus que l'option 3.

Le package TOOL_ERR définit et applique l'API PL/SQL à la condition d'erreur gérée par les services Tool mis en oeuvre en C. Cette API définit l'abstraction « pile d'erreurs » (qui correspond à la pile d'erreurs « système » définie dans la zone Tools Common Area). Chaque élément de la pile d'erreurs se compose d'un code et d'un message associé mis en forme. Les erreurs de la pile sont indexées à partir de zéro (erreur la plus ancienne) à N-1 (erreur la plus récente), où N représente le nombre d'erreurs figurant actuellement dans la pile. Par défaut, la plupart des services agissent sur la dernière erreur entrée.


Définition de la variable d'environnement NLS_DATE_FORMAT (Windows uniquement)

Pour éviter d'utiliser les fonctions TO_CHAR et TO_DATE quand vous manipulez des variables de date, vous pouvez modifier la valeur par défaut de la variable d'environnement NLS_DATE_FORMAT en procédant comme suit :

•	créez une entrée NLS_DATE_FORMAT dans la base de registres et affectez-lui un masque de format de date valide. Par exemple : NLS_DATE_FORMAT = "MM/JJ/AAAA".

•	modifiez la valeur de NLS_DATE_FORMAT au cours de la session, en utilisant la commande ALTER SESSION SET NLS_DATE_FORMAT.


Création d'un objet

Pour créer un objet :

1	Sélectionnez le noeud correspondant au type d'objet que vous voulez créer (par exemple, Unités de programme ou Bibliothèques).

2	Cliquez sur [image] dans la barre d'outils ou choisissez Navigateur [image] Créer dans le menu.

Si le noeud est vide, cliquez deux fois pour créer un nouvel objet de ce type.


Sélection d'un objet

Pour sélectionner un objet :

Cliquez une fois sur l'icône ou sur le nom de l'objet.

Appuyez sur Maj tout en cliquant avec la souris pour étendre la sélection de plusieurs objets d'une série continue, ou appuyez sur Ctrl tout en cliquant avec la souris pour étendre la sélection de plusieurs objets ne faisant pas partie d'un groupe continu.


Réorganisation d'un objet

Pour réorganiser un objet :

Cliquez sur l'objet et faites-le glisser à sa nouvelle position dans la hiérarchie des objets.

Les noeuds ne permettent pas toujours de déplacer les objets. Par exemple, les objets du noeud Unités de programme sont classés en ordre alphabétique.


Recherche d'un objet

Pour rechercher un objet :

1	Tapez le nom (complet ou partiel) de l'objet à rechercher dans la boîte de texte Rechercher.

Dès que vous commencez à taper, Procedure Builder lance une recherche avant incrémentielle à partir du début du Navigateur d'objet et développe les noeuds nécessaires pour révéler sa position en cours. La recherche incrémentielle se poursuit jusqu'à ce que vous ayez fini votre frappe.

2	Cliquez sur [image] ou sur [image] pour rechercher l'occurrence suivante ou précédente des critères de recherche dans le Navigateur d'objet.

Remarque : A l'heure actuelle, les caractères génériques ne sont pas pris en charge.


Suppression d'un objet

Pour supprimer un objet :

1	Sélectionnez le noeud d'objet à supprimer.

2	Cliquez sur [image] dans la barre d'outils ou choisissez Navigateur [image] Supprimer dans le menu.

Un message d'alerte peut vous demander de confirmer la suppression.


Développement d'un noeud

Pour développer un noeud et afficher sa première couche de sous-noeuds :

Cliquez sur le signe plus (+) en regard du noeud.

Pour développer un noeud et afficher tous ses sous-objets :

1	Sélectionnez un noeud réduit.

2	Cliquez sur [image] dans la barre d'outils ou choisissez Navigateur [image] Développer tout dans le menu.

Remarque : La fonction Développer tout ne développe pas les nœuds des types de données et des attributs Oracle8 de manière récurrente. Par exemple, si un attribut manager de type emp_typ est un descendant d'un autre type emp_typ, l'attribut manager n'est pas développé par la fonction Développer tout.


Réduction d'un noeud

Pour réduire un noeud et masquer sa première couche de sous-noeuds :

Cliquez sur le signe moins (-) en regard du noeud.

Pour réduire un noeud et masquer tous ses sous-objets :

1	Sélectionnez un noeud développé.

2	Cliquez sur [image] dans la barre d'outils ou choisissez Navigateur [image] Réduire tout dans le menu.


Pose d'un signet

Pour poser un signet :

1	Sélectionnez le noeud sur lequel vous souhaitez poser un signet.

2	Choisissez Navigateur [image] Signet dans le menu.

Remarque : Vous ne pouvez définir qu'un signet dans le Navigateur d'objet. Au-delà, chaque signet que vous créez remplace le précédent.


Accès à un signet

Pour atteindre un signet :

Choisissez Navigateur [image] Atteindre signet dans le menu.


Ouverture de l'Interpréteur

Pour ouvrir l'Interpréteur :

Choisissez Programme [image] Interpréteur PL/SQL.


Exécution d'une unité de programme dans l'Interpréteur

  Exemple

Pour exécuter une unité de programme dans l'Interpréteur :

Entrez le nom de l'unité de programme à l'invite PL/SQL>, suivi d'un point-virgule (;).

Si l'unité de programme demande des arguments, entrez-les entre parenthèses. Appuyez sur la touche Entrée ou Retour.

Si une invite secondaire (+>) apparaît, vous avez probablement oublié d'entrer le point-virgule de fin. Entrez-le et appuyez à nouveau sur Entrée ou Retour.


Exemple : exécution d'une unité de programme dans l'Interpréteur

Pour exécuter une procédure appelée bonjour_à_tous :

PL/SQL> bonjour_à_tous;

Pour exécuter une sortie imprimée de procédure demandant un argument numérique :

PL/SQL> printout(5);


Masquage ou affichage de la fenêtre Navigateur

Pour masquer ou afficher la fenêtre Navigateur :

1	Assurez-vous que l'Interpréteur est la fenêtre active.

2	Choisissez Affichage [image] Fenêtre Navigateur.

Cette opération n'est valide que pour l'Interpréteur sans mode.


Redimensionnement d'une fenêtre dans l'Interpréteur

Pour redimensionner une fenêtre dans l'Interpréteur :

1	Faites passer votre curseur sur la barre de partage pour que le curseur apparaisse sous forme de réticule (+).

Vous pouvez sélectionner cette barre dans la sous-fenêtre de la fenêtre, ou dans la barre de défilement du côté droit de la fenêtre.

2	Cliquez et faites glisser le curseur vers le haut ou vers le bas jusqu'à la position voulue.

3	Relâchez le bouton de la souris pour définir la nouvelle taille de la fenêtre.


Messages d'erreur de Procedure Builder

La présente section décrit les messages d'erreur de Procedure Builder. Ceux-ci sont classés en ordre numérique.

PDE-ABP002 :	Point d'interruption non installé en raison d'erreurs de compilation dans le corps du déclencheur.

 Cause :	Le corps du déclencheur contient un élément PL/SQL non valide.

 Action :	Corrigez l'erreur dans l'élément PL/SQL avant de fermer l'éditeur.

PDE-ACX003 :	Tentative de suspension d'exécution dans le déclencheur de débogage désactivé.

 Cause :	Vous avez appelé DEBUGSUSPEND avec le corps d'un déclencheur de débogage, ce qui n'est pas autorisé.

 Action :	Supprimez l'appel à DEBUGSUSPEND du corps du déclencheur de débogage.

PDE-AST001	Echec opération STEP - pas d'exécution de code PL/SQL en cours.

 Cause :	Vous avez tenté de faire progresser l'exécution de PL/SQL en utilisant la commande STEP, mais il n'y avait pas d'unité de programme PL/SQL dont l'exécution était suspendue.

 Action :	Si vous voulez utiliser la commande STEP, vous devez exécuter une unité de programme PL/SQL et interrompre son exécution en utilisant une action de débogage. Pour plus d'informations, reportez-vous à A propos des actions de débogage.

PDE-ATR003	Déclencheur non installé en raison d'erreurs de compilation dans le corps du déclencheur.

 Cause :	Le corps du déclencheur contient un élément PL/SQL non valide.

 Action :	Corrigez l'erreur dans l'élément PL/SQL avant de fermer l'éditeur.

PDE-CAT001	Pas de bibliothèque spécifiée dans la commande ATTACH.

 Cause :	Vous avez entré la commande ATTACH pour attacher une bibliothèque, mais sans indiquer de nom de bibliothèque.

 Action :	Vérifiez la syntaxe de la commande ATTACH. Pour plus d'informations, reportez-vous à ATTACH. Entrez à nouveau la commande en indiquant le nom de la bibliothèque que vous voulez attacher.

PDE-CAT002	Impossible de trouver <nom du fichier> dans le système de fichiers.

 Cause :	Vous avez entré la commande ATTACH pour attacher une bibliothèque résidant dans le système de fichiers, mais le nom du fichier indiqué n'a pas pu être trouvé.

 Action :	Vérifiez l'orthographe du nom du fichier indiqué et entrez à nouveau la commande.

PDE-CAT003	Pas d'espace de nom indiqué dans la commande ATTACH.

 Cause :	Vous avez entré la commande ATTACH avec le mot-clé NAMESPACE pour attacher une bibliothèque à un espace de nom, mais vous n'avez pas indiqué d'espace de nom existant.

 Action :	Entrez à nouveau la commande ATTACH en indiquant un espace nom existant.

PDE-CAT004	Trop d'options d'emplacement spécifiées dans la commande ATTACH.

 Cause :	Vous avez entré la commande ATTACH avec trop d'options d'emplacement (BEFORE, AFTER, START, END).

 Action :	Entrez à nouveau la commande ATTACHen indiquant une seule option d'emplacement.

PDE-CAT005	Impossible de trouver <nom de la bibliothèque>.

 Cause :	Vous avez entré la commande ATTACH pour attacher une bibliothèque résidant dans la base de données, mais le nom indiqué n'a pas pu être trouvé, ou il n'y avait pas de connexion à la base de données en cours.

 Action :	Vérifiez l'orthographe du nom de bibliothèque indiqué, ainsi que la connexion à la base de données et entrez à nouveau la commande.

PDE-CAT006	Impossible de trouver <nom de la bibliothèque> dans la base de données ou dans le système de fichiers.

 Cause :	Vous avez entré la commande ATTACH pour attacher une bibliothèque sans indiquer d'emplacement, mais le nom indiqué n'a pas pu être trouvé ni dans le système de fichiers, ni dans la base de données.

 Action :	Vérifiez l'orthographe du nom de bibliothèque indiqué et entrez à nouveau la commande.

PDE-CAT007	Espace nom <nom> introuvable.

 Cause :	Vous avez entré la commande ATTACH avec le mot-clé NAMESPACE pour attacher une bibliothèque à un espace de nom, mais l'espace de nom indiqué n'a pas pu être trouvé.

 Action :	Vérifiez l'orthographe de l'espace de nom indiqué. Entrez à nouveau la commande ATTACH en indiquant un espace de nom existant.

PDE-CBR001	Point d'installation non installé en raison d'erreurs de compilation dans le corps du déclencheur.

 Cause :	Vous avez entré un élément PL/SQL erroné dans le corps du déclencheur.

 Action :	Corrigez l'élément PL/SQL avant de fermer l'éditeur.

PDE-CCL001	Une bibliothèque à détacher doit être spécifiée pour la fermeture.

 Cause :	Vous avez entré la commande CLOSE pour fermer une bibliothèque, mais sans indiquer de nom de bibliothèque.

 Action :	Vérifiez la syntaxe de la commande CLOSE. Pour plus d'informations, reportez-vous à CLOSE. Entrez à nouveau la commande en indiquant le nom de la bibliothèque que vous voulez fermer.

PDE-CCL002	<nom de la bibliothèque> n'est pas une bibliothèque ouverte.

 Cause :	Vous avez entré la commande CLOSE pour fermer une bibliothèque, mais sans indiquer de bibliothèque ouverte.

 Action :	Entrez à nouveau la commande CLOSE en indiquant une bibliothèque ouverte.

PDE-CCM001	Arguments de la commande COMPILE insuffisants.

 Cause :	Vous avez entré la commande COMPILE pour compiler une ou plusieurs unités de programme, ou compiler toutes les unités de programme se trouvant dans une ou plusieurs bibliothèques. Cependant, vous n'avez pas fourni de mot-clé et/ou de valeurs dans la chaîne de commandes.

 Action :	Entrez à nouveau la commande COMPILE en indiquant le mot-clé et les valeurs appropriées. Pour plus d'informations, reportez-vous à COMPILE (Bibliothèques), ou à COMPILE (Unités de programme).

PDE-CCM002	<nom de la bibliothèque> n'est pas une bibliothèque ouverte.

 Cause :	Vous avez entré la commande COMPILE pour compiler une bibliothèque qui n'est pas ouverte, ce qui n'est pas possible.

 Action :	Si vous voulez compiler une bibliothèque qui n'est pas ouverte, ouvrez-la en utilisant OPEN, puis entrez à nouveau la commande COMPILE pour compiler la bibliothèque ouverte. Pour plus d'informations, reportez-vous à OPEN. Sinon, entrez à nouveau COMPILE en indiquant une bibliothèque déjà ouverte. Pour plus d'informations, reportez-vous à COMPILE (Bibliothèques).

PDE-CCO001	Erreur d'analyse de la chaîne de connexion.

 Cause :	Vous avez entré la commande CONNECT pour vous connecter à une base de données, mais vous avez indiqué une chaîne de connexion invalide.

 Action :	Vérifiez l'orthographe de la chaîne de connexion ou indiquez-en une autre et entrez à nouveau la commande.

PDE-CCR001	Arguments de la commande CREATE insuffisants.

 Cause :	Vous avez entré la commande CREATE pour créer une nouvelle bibliothèque, mais sans indiquer de mot-clé et/ou de valeurs dans la chaîne de commandes.

 Action :	Entrez à nouveau la commande CREATE en indiquant les mots-clés et les valeurs appropriés. Pour plus d'informations, reportez-vous à CREATE (Bibliothèques).

PDE-CCR003	La bibliothèque <nom de la bibliothèque> est actuellement utilisée.

 Cause :	Vous avez entré la commande CREATE pour créer une nouvelle bibliothèque, mais il y a déjà une bibliothèque, ouverte ou attachée, portant le même nom.

 Action :	Fermez ou détachez la bibliothèque, ou vérifiez l'orthographe de son nom et entrez à nouveau la commande CREATE.

PDE-CCR004	L'espace de nom <nom> n'existe pas.

 Cause :	Vous avez tenté d'ouvrir une bibliothèque dont l'espace de nom n'existe pas.

 Action :	Créez l'espace de nom ou indiquez-en un autre.

PDE-CCR005	Pas d'espace de nom indiqué.

 Cause :	Vous avez entré la commande CREATE avec le mot-clé namespace (espace de nom) sans en fournir un.

 Action :	Vérifiez la syntaxe de la commande CREATE. Pour plus d'informations, reportez-vous à CREATE. Entrez à nouveau la commande en indiquant un nom d'espace de nom.

PDE-CCR006	Aucun fichier spécifié.

 Cause :	Vous avez entré la commande CREATE LIBRARY avec le mot-clé SOURCE pour créer une bibliothèque en utilisant le fichier indiqué, mais vous n'avez pas fourni de nom de fichier.

 Action :	Vérifiez la syntaxe de la commande CREATE LIBRARY. Pour plus d'informations, reportez-vous à CREATE (Bibliothèques). Entrez à nouveau la commande en indiquant un nom de fichier.

PDE-CCR007	Opération abandonnée par l'utilisateur.

 Cause :	Vous avez interrompu une opération de création (CREATE) ou d'enregistrement (SAVE) de bibliothèque parce qu'un emplacement externe était déjà utilisé.

 Action :	Sélectionnez un nouveau nom pour l'opération de création (CREATE) ou d'enregistrement (SAVE) de bibliothèque ou remplacez l'objet existant.

PDE-CCR008	Le fichier <nom du fichier> n'est pas un fichier source PL/SQL valide.

 Cause :	Vous avez entré la commande CREATE LIBRARY avec le mot-clé SOURCE pour créer une bibliothèque à partir du fichier indiqué, mais le fichier ne se trouve pas dans un fichier source PL/SQL valide.

 Action :	Entrez à nouveau la commande en fournissant un fichier source valide.

PDE-CDE001	La bibliothèque <nom de la bibliothèque> n'est pas attachée.

 Cause :	Vous avez entré la commande DESCRIBE pour afficher des informations sur une bibliothèque qui n'est pas attachée, ce qui n'est pas possible.

 Action :	Si vous voulez afficher des informations sur une bibliothèque qui n'est pas attachée, commencez par attacher la bibliothèque en utilisant ATTACH, puis entrez à nouveau la commande DESCRIBE précédente pour afficher les informations. Sinon, entrez à nouveau DESCRIBE, en indiquant une bibliothèque déjà attachée.

PDE-CDE002	<ID de l'action> n'est pas une action de débogage définie.

 Cause :	Vous avez entré la commande DESCRIBE pour afficher des informations sur un point d'interruption ou un déclencheur de débogage, mais sans indiquer l'ID d'une action de débogage existante.

 Action :	Entrez à nouveau la commande DESCRIBE, en indiquant un ID d'action de débogage.

PDE-CDE003	Pas d'objet spécifié pour la description.

 Cause :	Vous avez entré la commande DESCRIBE pour afficher des informations détaillées sur une unité de programme, une action de débogage, une bibliothèque, une variable locale ou un paramètre, ou le chemin de chargement. Cependant, vous n'avez pas fourni de mots-clés et/ou de valeurs dans la chaîne de commande.

 Action :	Entrez à nouveau la commande DESCRIBE en indiquant les mots-clés et les valeurs appropriés au type d'information que vous voulez afficher. Pour plus d'informations, reportez-vous aux sections suivantes :

DESCRIBE (Actions de débogage)

DESCRIBE (Bibliothèques)

DESCRIBE (Chemin de chargement)

DESCRIBE (Variables locales)

DESCRIBE (Unités de programme)

PDE-CDE004	<locale> n'est pas définie pour l'emplacement du travail courant.

 Cause :	Vous avez entré la commande DESCRIBE pour afficher des informations sur un paramètre ou une variable locale, mais la variable que vous avez indiquée n'existe pas dans l'emplacement de travail en cours.

 Action :	Entrez à nouveau la commande DESCRIBE en indiquant un paramètre ou une variable locale existant à l'emplacement de travail en cours. Pour plus d'informations, reportez-vous à DESCRIBE (Variables locales).

PDE-CDE005	Il n'y a pas de <type de l'unité de programme> nommé <nom de l'unité de programme>.

 Cause :	Vous avez entré la commande DESCRIBE pour afficher des informations sur une unité de programme, mais l'unité de programme que vous avez indiquée n'est pas définie dans l'environnement en cours.

 Action :	Entrez à nouveau la commande DESCRIBE en indiquant une unité de programme définie dans l'environnement en cours. Pour plus d'informations, reportez-vous à DESCRIBE (Unités de programme).

PDE-CDE006	Il n'y a pas de table nommée <nom de la table>.

 Cause :	Vous avez entré la commande DESCRIBE pour afficher des informations relatives à une table qui n'existe pas dans la base de données.

 Action :	Entrez à nouveau la commande DESCRIBE en indiquant une table existante dans la base de données. Pour plus d'informations, reportez-vous à DESCRIBE (Tables et vues).

PDE-CDE007	Il n'y a pas de vue nommée <nom de la vue>.

 Cause :	Vous avez entré la commande DESCRIBE pour afficher des informations relatives à une vue qui n'existe pas dans la base de données.

 Action :	Entrez à nouveau la commande DESCRIBE en indiquant une vue présente dans la base données. Pour plus d'informations, reportez-vous à DESCRIBE (Tables et vues).

PDE-CDL001	<ID de l'action> n'est pas un ID d'action valide.

 Cause :	Vous avez entré la commande DELETE pour supprimer un point d'interruption ou un déclencheur de débogage, mais vous n'avez pas indiqué d'ID d'action de débogage valide.

 Action :	Entrez à nouveau DELETE en indiquant un ID d'action de débogage valide. Pour plus d'informations, reportez-vous à DELETE (Actions de débogage).

PDE-CDL002	<variable de lien> n'est pas un nom de variable de lien connu.

 Cause :	Vous avez entré la commande DELETE pour supprimer une variable de lien, mais vous n'avez pas indiqué de nom de variable de lien.

 Action :	Entrez à nouveau DELETE en indiquant un nom de variable de lien valide. Pour plus d'informations, reportez-vous à DELETE (Variables de lien).

PDE-CDL005	<nom de la bibliothèque> n'est pas une bibliothèque ouverte.

 Cause :	Vous avez tenté de supprimer une ou plusieurs unités de programme d'une bibliothèque qui n'est pas ouverte, ce qui n'est pas possible.

 Action :	Si vous voulez supprimer une ou plusieurs unités de programme d'une bibliothèque qui n'est pas ouverte, commencez par ouvrir la bibliothèque en utilisant OPEN, puis entrez à nouveau la précédente commande DELETE pour supprimer de la bibliothèque la ou les unités de programme. Sinon, entrez à nouveau DELETE en indiquant une bibliothèque déjà ouverte. Pour plus d'informations, reportez-vous aux sections suivantes :

DELETE (Unités de programme de bibliothèque)

OPEN

PDE-CDL006	Impossible de supprimer <type de l'unité de programme> <nom de l'unité de programme> parce qu'il s'agit d'une unité de programme intégrée.

 Cause :	Vous avez entré la commande DELETE pour supprimer une unité de programme, mais l'unité de programme que vous avez indiquée est une procédure interne. Les procédures internes ne peuvent pas être supprimées de Procedure Builder.

 Action :	Vous ne pouvez supprimer que des unités de programme créées ou chargées dans Procedure Builder

PDE-CDL007	Impossible de supprimer cet espace de nom : il s'agit de l'espace de nom actuel.

 Cause :	Vous avez entré la commande DELETE pour supprimer un espace nom, mais l'espace nom indiqué correspond à l'espace nom en cours.

 Action :	Vous ne pouvez pas supprimer un espace de nom s'il correspond à l'espace de nom en cours, à l'un de ses parents ou à l'espace de nom global. Utilisez la commande CHANGE pour sélectionner un autre espace de nom comme espace de nom en cours, puis entrez à nouveau la commande DELETE.

PDE-CDL008	Impossible de supprimer l'espace de nom parce qu'il s'agit de l'espace de nom global.

 Cause :	Vous avez entré la commande DELETE pour supprimer un espace de nom, mais l'espace de nom indiqué correspond à l'espace de nom global.

 Action :	Vous ne pouvez pas supprimer un espace de nom s'il correspond à l'espace de nom en cours, à l'un de ses parents ou à l'espace de nom global.

PDE-CDL009	Impossible de supprimer l'espace de nom parce qu'il n'existe pas.

 Cause :	Vous avez entré la commande DELETE pour supprimer un espace de nom, mais l'espace de nom indiqué n'existe pas.

 Action :	Vérifiez l'orthographe de l'espace de nom et tentez à nouveau d'exécuter la commande.

PDE-CDL010	Pas de bibliothèque spécifiée dans la commande DELETE.

 Cause :	Vous avez entré la commande DELETE pour supprimer une ou plusieurs bibliothèques, mais vous n'avez pas indiqué de nom de bibliothèque.

 Action :	Vérifiez la syntaxe de la commande DELETE. Pour plus d'informations, reportez-vous à DELETE (Bibliothèques). Entrez à nouveau la commande en indiquant le ou les noms de la ou des bibliothèques à supprimer.

PDE-CDL011	Pas d'unité de programme spécifiée pour la commande DELETE.

 Cause :	Vous avez entré la commande DELETE pour supprimer une ou plusieurs unités de programme, mais vous n'avez pas indiqué de nom de l'unité de programme.

 Action :	Vérifiez la syntaxe de la commande DELETE. Pour plus d'informations, reportez-vous à DELETE (Unités de programme). Entrez à nouveau la commande en indiquant le ou les noms de la ou des unités de programme que vous voulez supprimer.

PDE-CDL012	Pas de bibliothèque spécifiée dans la commande DELETE.

 Cause :	Vous avez entré la commande DELETE pour supprimer une ou plusieurs unités de programme d'une bibliothèque ouverte, mais vous n'avez pas indiqué de nom de bibliothèque.

 Action :	Vérifiez la syntaxe de la commande DELETE. Pour plus d'informations, reportez-vous à DELETE (Unités de programme de bibliothèque). Entrez à nouveau la commande en indiquant le nom de la bibliothèque de laquelle vous voulez supprimer une ou plusieurs unités de programme.

PDE-CDL013	Pas de variable de lien spécifiée dans la commande DELETE.

 Cause :	Vous avez entré la commande DELETE pour supprimer une ou plusieurs variables de lien, mais vous n'avez pas indiqué de nom de variable de lien.

 Action :	Vérifiez la syntaxe de la commande DELETE. Pour plus d'informations, reportez-vous à DELETE (Variables de lien). Entrez à nouveau la commande en indiquant le ou les noms de la ou des variables de lien que vous voulez supprimer.

PDE-CDL014	Impossible de supprimer l'espace de nom car il est parent de l'espace de nom courant.

 Cause :	Vous avez entré la commande DELETE pour supprimer un espace de nom, mais l'espace de nom indiqué contient l'espace de nom en cours.

 Action :	Vous ne pouvez pas supprimer un espace de nom s'il correspond à l'espace de nom en cours, à l'un de ses parents ou à l'espace de nom global. Utilisez la commande CHANGE pour sélectionner un autre espace de nom comme espace de nom en cours, puis entrez à nouveau la commande DELETE.

PDE-CDS001	<ID de l'action> n'est pas un ID d'action valide.

 Cause :	Vous avez entré la commande DISABLE pour désactiver un point d'interruption ou un déclencheur de débogage, mais vous n'avez pas indiqué d'ID d'action de débogage valide.

 Action :	Entrez à nouveau DISABLE en indiquant une ID d'action de débogage valide. Pour plus d'informations, reportez-vous à DISABLE (Actions de débogage).

PDE-CDS002	Pas de cible définie pour la commande DISABLE.

 Cause :	Vous avez entré la commande DISABLE pour supprimer momentanément une ou plusieurs actions de débogage, ou suspendre leur consignation dans le fichier journal en cours. Cependant, vous n'avez pas fourni de mots-clés et/ou de valeurs dans la chaîne de commande.

 Action :	Entrez à nouveau la commande DISABLE en indiquant les mots-clés et valeurs appropriés à l'élément ou aux éléments que vous voulez désactiver. Pour plus d'informations, reportez-vous aux sections suivantes :

DISABLE (Actions de débogage)

DISABLE (Actions de débogage)

PDE-CDT001	Une bibliothèque à détacher doit être spécifiée.

 Cause :	Vous avez entré la commande DETACH pour détacher une bibliothèque, mais vous n'avez pas indiqué de nom de bibliothèque.

 Action :	Vérifiez la syntaxe de la commande DETACH. Pour plus d'informations, reportez-vous à DETACH. Entrez à nouveau la commande en indiquant le nom de la bibliothèque que vous voulez détacher.

PDE-CDT002	<nom de la bibliothèque> n'est pas une bibliothèque attachée.

 Cause :	Vous avez entré la commande DETACH pour détacher une bibliothèque, mais la bibliothèque que vous avez indiquée n'est pas attachée.

 Action :	Vérifiez l'orthographe du nom que vous avez indiqué, et entrez à nouveau la commande DETACH.

PDE-CEN001	<ID de l'action> n'est pas un ID d'action valide.

 Cause :	Vous avez entré la commande ENABLE pour activer un point d'interruption ou un déclencheur de débogage, mais vous n'avez pas indiqué d'ID d'action de débogage valide.

 Action :	Entrez à nouveau ENABLE en indiquant un ID d'action de débogage valide. Pour plus d'informations, reportez-vous à ENABLE (Actions de débogage).

PDE-CEN002	Pas de cible définie pour la commande ENABLE.

 Cause :	Vous avez entré la commande ENABLE pour réactiver une ou plusieurs actions de débogage désactivées, ou reprendre la consignation dans le fichier journal en cours. Cependant, vous n'avez pas fourni de mots-clés et/ou de valeurs dans la chaîne de commande.

 Action :	Entrez à nouveau la commande ENABLE en indiquant les mots-clés et valeurs appropriés à l'élément ou aux éléments que vous voulez activer. Pour plus d'informations, reportez-vous aux sections suivantes :

ENABLE (Actions de débogage)

ENABLE (Journalisation)

PDE-CET001	Arguments de la commande SET insuffisants.

 Cause :	Vous avez entré la commande SET pour définir l'espace de nom en cours ou pour modifier l'emplacement de travail en cours, mais vous n'avez pas indiqué de mots-clés et/ou de valeurs dans la chaîne de commande.

 Action :	Entrez à nouveau la commande SET en indiquant les mots-clés et les valeurs appropriés. Pour plus d'informations, reportez-vous à SET (Portée).

PDE-CET002	L'espace de nom spécifié n'existe pas.

 Cause :	Vous avez entré la commande SET NAMESPACE pour modifier l'espace de nom en cours sans indiquer d'espace de nom existant.

 Action :	Entrez à nouveau la commande SET NAMESPACE en indiquant un espace de nom existant.

PDE-CET003	Aucune pile d'exécution PL/SQL courante.

 Cause :	Vous avez tenté de modifier l'emplacement de travail en cours en utilisant la commande SET SCOPE, mais cet emplacement n'a pas pu être défini car il n'y avait pas d'unité de programme PL/SQL dont l'exécution était suspendue.

 Action :	Pour utiliser la commande SET SCOPE, vous devez exécuter une unité de programme PL/SQL et interrompre son exécution par une action de débogage. Pour plus d'informations, reportez-vous à A propos des actions de débogage.

PDE-CET004	Aucune unité de programme spécifiée.

 Cause :	Vous avez tenté de modifier l'emplacement de travail en cours en utilisant la commande SET SCOPE, mais cet emplacement n'a pas pu être défini, car vous n'avez pas indiqué d'unité de programme PL/SQL.

 Action :	Entrez à nouveau la commande SET SCOPE en indiquant une unité de programme. Pour plus d'informations, reportez-vous à SET (Emplacement de travail).

PDE-CEX001	Pas de fichier cible spécifié pour la commande EXPORT.

 Cause :	Vous avez entré la commande EXPORT pour écrire la source d'une ou de plusieurs unités de programme dans un fichier, mais vous n'avez pas indiqué de nom de fichier.

 Action :	Vérifiez la syntaxe de la commande EXPORT. Pour plus d'informations, reportez-vous à EXPORT. Entrez à nouveau la commande en indiquant le nom du fichier dans lequel vous voulez écrire la source de l'unité de programme.

PDE-CEX002	Pas d'unité de programme spécifiée pour la commande EXPORT.

 Cause :	Vous avez entré la commande EXPORT pour écrire la source d'une ou de plusieurs unités de programme dans un fichier, mais vous n'avez pas indiqué de nom de l'unité de programme.

 Action :	Vérifiez la syntaxe de la commande EXPORT. Pour plus d'informations, reportez-vous à EXPORT. Entrez à nouveau la commande en indiquant la ou les unités de programme dont vous voulez exporter la source.

PDE-CEX003	Impossible d'ouvrir le fichier <nom du fichier> pour exporter.

 Cause :	Vous avez entré la commande EXPORT pour écrire la source d'une ou de plusieurs unités de programme dans un fichier, mais vous n'aviez pas les autorisations nécessaires pour écrire dans le fichier indiqué.

 Action :	Modifiez vos autorisations de sorte que vous puissiez écrire dans le fichier, ou indiquez un autre fichier dans lequel vous pouvez écrire.

PDE-CEX004	La bibliothèque <nom de la bibliothèque> n'est pas attachée.

 Cause :	Vous avez entré la commande EXPORT pour exporter le contenu d'une bibliothèque qui n'est pas attachée, ce qui n'est pas possible.

 Action :	Pour exporter une bibliothèque qui n'est pas attachée, commencez par l'attacher en utilisant la commande ATTACH, puis entrez à nouveau la commande EXPORT précédente. Pour plus d'informations, reportez-vous à ATTACH. Sinon, entrez à nouveau la commande EXPORT en indiquant une bibliothèque déjà attachée.

PDE-CEX005	Pas de bibliothèque spécifiée dans la commande EXPORT.

 Cause :	Vous avez entré la commande EXPORT pour exporter le contenu d'une bibliothèque, mais vous n'avez pas indiqué de nom de bibliothèque.

 Action :	Vérifiez la syntaxe de la commande EXPORT. Pour plus d'informations, reportez-vous à EXPORT. Entrez à nouveau la commande en indiquant le nom de la bibliothèque dont vous voulez exporter la source.

PDE-CEX006	Aucune connexion courante à la base de données.

 Cause :	Vous avez entré la commande EXPORT avec le mot-clé STORED pour exporter des unités de programme, mais vous n'êtes pas connecté à une base de données.

 Action :	Connectez-vous à une base de données et entrez à nouveau la commande EXPORT. Pour plus d'informations, reportez-vous à EXPORT.

PDE-CEX007	Les unités de programme stockées <nom1, nom2...> n'existent pas dans la base de données.

 Cause :	Vous avez entré la commande EXPORT pour exporter une ou plusieurs unités de programme stockées, mais les unités de programmes stockées que vous avez indiquées n'existent pas dans la base de données.

 Action :	Entrez à nouveau la commande EXPORT en indiquant les noms corrects des unités de programme stockées.

PDE-CEX008	Le type indiqué n'existe pas dans le langage de programmation actuel.

 Cause :	Vous avez saisi un mot-clé de type qui ne correspond pas à celui du langage.

 Action :	Entrez à nouveau la commande EXPORT en indiquant le type et le langage appropriés.

PDE-CGE001	Pas de fichier spécifié pour GENERATE.

 Cause :	Vous avez entré la commande GENERATE pour créer un fichier « .c » à partir d'une unité de programme sans indiquer le nom du fichier à générer.

 Action :	Entrez à nouveau la commande GENERATE en utilisant le mot-clé FILE et un argument.

PDE-CGE002	Compilation de l'unité de programme spécifiée non réussie.

 Cause :	Vous avez entré la commande GENERATE pour créer un fichier « .c » à partir d'une unité de programme sans la compiler au préalable.

 Action :	Compilez l'unité de programme, puis entrez à nouveau la commande GENERATE.

PDE-CGE003	SPEC et BODY ont été spécifiés simultanément pour GENERATE.

 Cause :	Vous avez entré la commande GENERATE pour créer un fichier « .c » à partir d'une unité de programme en indiquant les mots-clés SPEC et BODY. Un fichier « .c » ne peut contenir qu'un seul de ces mots-clés à la fois.

 Action :	Utilisez deux commandes GENERATE en indiquant SPEC et BODY indépendamment.

PDE-CGE004	Commande GENERATE : unité de programme introuvable.

 Cause :	Vous avez entré la commande GENERATE pour créer un fichier « .c » à partir d'une unité de programme sans indiquer d'unité. Si vous avez indiqué une unité de programme, son type est inapproprié au mot-clé SPEC ou BODY.

 Action :	Entrez à nouveau la commande GENERATE en utilisant un mot-clé d'unité de programme valide et un argument.

PDE-CGE005	Erreur d'ouverture du fichier GENERATE.

 Cause :	Une erreur de système d'exploitation s'est produite lors de la tentative d'ouverture du fichier « .c » dans une commande GENERATE.

 Action :	Entrez à nouveau la commande GENERATE en utilisant un mot-clé FILE valide et un argument.

PDE-CGE006	Mot-clé LIBRARY absent.

 Cause :	Une commande GENERATE a été émise sans le mot-clé LIBRARY.

 Action :	Entrez à nouveau la commande GENERATE en indiquant le mot-clé LIBRARY. Pour plus d'informations, reportez-vous à GENERATE.

PDE-CGE007	Pas de symbole spécifié pour GENERATE.

 Cause :	Vous avez entré la commande GENERATE pour créer un fichier « .c » à partir d'une unité de programme sans indiquer de nom de symbole.

 Action :	Entrez à nouveau la commande GENERATE en indiquant le nom de symbole.

PDE-CGE008	<nom de la bibliothèque> n'est pas une bibliothèque ouverte.

 Cause :	Vous avez tenté de générer une bibliothèque d'exécution pour une bibliothèque qui n'est pas ouverte, ce qui n'est pas possible.

 Action :	Assurez-vous que la bibliothèque à générer est ouverte, ou vérifiez l'orthographe de son nom et entrez à nouveau la commande. Pour plus d'informations, reportez-vous à :

OPEN

GENERATE

PDE-CGE009	GENERATE : aucune bibliothèque indiquée.

 Cause :	Vous avez entré la commande GENERATE pour produire une bibliothèque d'exécution sans indiquer le nom de la bibliothèque source.

 Action :	Entrez à nouveau la commande GENERATE en utilisant le mot-clé LIBRARY et un argument. Pour plus d'informations, reportez-vous à GENERATE.

PDE-CGR001	Une bibliothèque doit être spécifiée au préalable avant d'accorder un droit d'accès.

 Cause :	 Vous avez entré la commande GRANT pour autoriser un utilisateur à accéder à une bibliothèque stockée dans la base de données, mais vous n'avez pas indiqué de nom de bibliothèque.

 Action :	Vérifiez la syntaxe de la commande GRANT. Pour plus d'informations, reportez-vous à GRANT. Entrez à nouveau la commande en indiquant la bibliothèque à laquelle vous voulez autoriser l'accès.

PDE-CGR002	Un utilisateur doit être spécifié pour accorder un droit d'accès.

 Cause :	 Vous avez entré la commande GRANT pour autoriser un utilisateur à accéder à une bibliothèque stockée dans la base de données, mais vous n'avez pas indiqué de nom utilisateur.

 Action :	 Vérifiez la syntaxe de la commande GRANT. Pour plus d'informations, reportez-vous à GRANT. Entrez à nouveau la commande en indiquant le nom de l'utilisateur auquel vous voulez accorder un droit d'accès.

PDE-CHE001	Impossible de trouver l'aide pour la commande <commande>.

 Cause :	Vous avez entré la commande HELP pour afficher des informations sur une commande de Procedure Builder, mais vous n'avez pas indiqué de commande valide.

 Action :	Entrez à nouveau la commande HELP en indiquant la commande de Procedure Builder pour laquelle vous voulez des informations d'aide. Pour plus d'informations, reportez-vous à HELP.

PDE-CIN001	Pas de cible définie pour la commande INTERPRET.

 Cause :	Vous avez entré la commande INTERPRET pour exécuter un ou plusieurs scripts de Procedure Builder, mais vous n'avez pas fourni de mots-clés et/ou de valeurs dans la chaîne de commande.

 Action :	Entrez à nouveau la commande INTERPRET en indiquant les mots-clés et les valeurs appropriés. Pour plus d'informations, reportez-vous à INTERPRET.

PDE-CIN002	Fin de fichier imprévue au cours de l'interprétation du fichier.

 Cause :	Vous avez entré la commande INTERPRET pour interpréter le contenu d'un fichier, mais le dernier bloc PL/SQL du fichier n'était pas complet.

 Action :	Vérifiez le contenu du fichier. Remédiez aux erreurs éventuelles et tentez à nouveau d'exécuter l'opération.

PDE-CIN003	Le fichier <nom du fichier> n'est pas un fichier source PL/SQL valide.

 Cause :	Vous avez entré la commande INTERPRET avec le mot clé FILE, mais le fichier n'était pas un fichier source PL/SQL valide.

 Action :	Entrez à nouveau la commande en fournissant un fichier source valide.

PDE-CIS001	Arguments de la commande INSERT insuffisants.

 Cause :	Vous avez entré la commande INSERT, mais vous n'avez pas fourni suffisamment d'arguments dans la chaîne de commande.

 Action :	Vérifiez la syntaxe de la commande INSERT. Pour plus d'informations, reportez-vous aux sections suivantes :

INSERT (Unités de programme de bibliothèque)

INSERT (Chemin de chargement)

PDE-CIS002	L'insertion dans la bibliothèque implique une ou plusieurs unités de programme.

 Cause :	Vous avez entré la commande INSERT pour insérer une ou plusieurs unités de programme dans une bibliothèque ouverte, mais vous n'avez pas fourni de liste d'unités de programme dans la chaîne de commande.

 Action :	Vérifiez la syntaxe de la commande INSERT. Pour plus d'informations, reportez-vous à INSERT (Unités de programme de bibliothèque). Entrez à nouveau la commande en indiquant la ou les unités de programme que vous voulez ajouter à la bibliothèque.

PDE-CIS003	<nom de la bibliothèque> n'est pas une bibliothèque ouverte.

 Cause :	Vous avez entré la commande INSERT pour insérer une ou plusieurs unités de programme dans une bibliothèque qui n'est pas ouverte, ce qui n'est pas possible.

 Action :	Pour ajouter une ou plusieurs unités de programme à une bibliothèque qui n'est pas ouverte, commencez par ouvrir la bibliothèque en utilisant OPEN, puis entrez à nouveau la précédente commande INSERT pour ajouter la ou les unités de programme à la bibliothèque. Sinon, entrez à nouveau INSERT en indiquant une bibliothèque déjà ouverte. Pour plus d'informations, reportez-vous à OPEN.

PDE-CIS004	Un ou plusieurs répertoires doivent être spécifiés pour être insérés dans le chemin de chargement.

 Cause :	Vous avez entré la commande INSERT pour modifier le chemin de chargement, mais vous n'avez pas indiqué de mot-clé et/ou de chemin de répertoire à insérer.

 Action :	Vérifiez la syntaxe de la commande INSERT. Pour plus d'informations, reportez-vous à INSERT (Chemin de chargement). Entrez à nouveau la commande en indiquant les mots-clés et/ou les chemins de répertoire que vous souhaitez insérer dans le chemin de chargement.

PDE-CIS005	L'espace de nom <nom> n'existe pas.

 Cause :	Vous avez entré la commande INSERT pour insérer une ou plusieurs unités de programme dans un espace de nom inexistant.

 Action :	Vérifiez l'orthographe de l'espace de nom indiqué, ou créez un nouvel espace de nom à l'aide de la commande CREATE et entrez à nouveau la commande INSERT.

PDE-CIS006	Pas d'espace de nom spécifié.

 Cause :	Vous avez entré la commande INSERT avec le mot-clé namespace (espace nom) pour insérer une ou plusieurs unités de programme dans un espace nom, mais vous n'avez pas indiqué d'espace nom.

 Action :	Entrez à nouveau la commande INSERT en indiquant un espace nom existant.

PDE-CLG001	Arguments insuffisants dans la commande LOG.

 Cause :	Vous avez entré la commande LOG sans fournir de mots-clés et/ou de valeurs dans la chaîne de commande.

 Action :	Entrez la commande LOG à nouveau en indiquant les valeurs et les mots-clés appropriés. Pour plus d'informations, reportez-vous à LOG.

PDE-CLG002	Echec de l'opération ouverte sur le fichier <nom du fichier>.

 Cause :	Vous avez entré la commande LOG pour commencer l'enregistrement d'une transcription des entrées et des sorties de l'Interpréteur dans un fichier journal, mais vous ne disposez pas des autorisations d'accès nécessaires pour écrire dans le fichier indiqué.

 Action :	Modifiez vos autorisations de sorte que vous puissiez écrire dans le fichier, ou indiquez un autre fichier dans lequel vous pouvez écrire.

PDE-CLG003	Aucun fichier indiqué avec la commande LOG.

 Cause :	Vous avez entré la commande LOG avec le mot-clé FILE, mais vous n'avez pas indiqué de nom de fichier.

 Action :	Entrez la commande LOG à nouveau en indiquant un nom de fichier. Pour plus d'informations, reportez-vous à LOG.

PDE-CLO001	La bibliothèque spécifiée n'est pas attachée.

 Cause :	Vous avez entré la commande LOAD pour charger une ou plusieurs unités de programme stockées dans une bibliothèque qui n'est pas attachée, ce qui n'est pas possible.

 Action :	Pour charger des unités de programme stockées dans une bibliothèque, attachez la bibliothèque en utilisant ATTACH, puis entrez la commande LOAD pour charger les unités de programme. Pour plus d'informations, reportez-vous aux sections suivantes :

ATTACH

LOAD (Unités de programme bibliothèque)

PDE-CLO002	Commande LOAD : aucune cible définie.

 Cause :	Vous avez entré la commande LOAD sans fournir de mots-clés et/ou de valeurs dans la chaîne de commande.

 Action :	Entrez à nouveau la commande LOAD en indiquant les mots-clés et les valeurs appropriés. Vous pouvez utiliser LOAD pour charger une ou plusieurs unités de programme à partir d'une bibliothèque attachée, d'un fichier ou de la base de données. Pour plus d'informations, reportez-vous aux sections suivantes :

LOAD (Unités de programme bibliothèque)

LOAD (Unités de programme)

LOAD (Unités de programme stockées)

PDE-CLO003	Pas d'unités de programme spécifiées pour le chargement.

 Cause :	Vous avez entré la commande LOAD mais vous n'avez pas indiqué d'unités de programme à charger.

 Action :	Entrez à nouveau la commande LOAD en indiquant le ou les noms de la ou des unités de programme que vous voulez charger. Pour plus d'informations, reportez-vous aux sections suivantes :

LOAD (Unités de programme bibliothèque)

LOAD (Unités de programme)

LOAD (Unités de programme stockées)

PDE-CLO004	L'unité de programme stockée spécifiée n'existe pas dans la base de données.

 Cause :	Vous avez entré la commande LOAD pour charger une ou plusieurs unités de programme stockées dans la base de données, mais l'unité de programme stockée que vous avez indiquée n'existe pas.

 Action :	Entrez à nouveau la commande LOAD en indiquant le ou les noms de la ou des unités de programme stockées. Pour plus d'informations, reportez-vous à LOAD (Unités de programme stockées).

PDE-CLO005	Aucune connexion courante à la base de données.

 Cause :	Vous avez entré la commande LOAD avec le mot-clé STORED pour charger une ou plusieurs unités de programme stockées dans la base de données, mais n'êtes pas connecté à une base de données.

 Action :	Connectez-vous à une base de données et entrez à nouveau la commande LOAD.

PDE-CLO006	L'espace de nom spécifié n'existe pas.

 Cause :	Vous avez entré la commande LOAD avec le mot-clé NAMESPACE pour charger une unité de programme dans un espace de nom, mais l'espace de nom indiqué n'existe pas.

 Action :	Entrez à nouveau la commande LOAD en indiquant un espace de nom existant.

PDE-CLO007	Pas d'espace de nom cible spécifié dans lequel charger.

 Cause :	Vous avez entré la commande LOAD avec le mot-clé NAMESPACE, mais vous n'avez pas indiqué d'espace de nom dans lequel effectuer le chargement.

 Action :	Entrez à nouveau la commande LOAD en fournissant les mots-clés et les valeurs appropriés pour indiquer les unités de programme stockées à charger. Pour plus d'informations, reportez-vous à LOAD (unités de programme stockées).

PDE-CLO008	Pas de fichier spécifié.

 Cause :	Vous avez entré la commande LOAD avec le mot-clé FILE mais vous n'avez pas indiqué de fichier à partir duquel effectuer le chargement.

 Action :	Entrez à nouveau la commande LOAD en indiquant le nom du fichier à partir duquel vous voulez effectuer le chargement de la ou des unités de programme. Pour plus d'informations, reportez-vous à LOAD (Unités de programme).

PDE-CLO009	Le fichier <nom du fichier> n'est pas un fichier source PL/SQL valide.

 Cause :	Vous avez entré la commande LOAD avec le mot-clé FILE, mais le fichier n'est pas un fichier source PL/SQL valide.

 Action :	Entrez à nouveau la commande en fournissant un fichier source valide.

PDE-COP001	Commande OPEN : aucune bibliothèque spécifiée.

 Cause :	Vous avez entré la commande OPEN pour ouvrir une bibliothèque, mais vous n'avez pas indiqué de nom de bibliothèque.

 Action :	Vérifiez la syntaxe de la commande OPEN. Pour plus d'informations, reportez-vous à OPEN. Entrez à nouveau la commande en indiquant le nom de la bibliothèque que vous voulez ouvrir.

PDE-COP002	Impossible de trouver <nom du fichier> dans le système de fichiers.

 Cause :	Vous avez entré la commande OPEN pour ouvrir une bibliothèque résidant dans le système de fichiers, mais le nom du fichier indiqué était introuvable.

 Action :	Vérifiez l'orthographe du nom du fichier indiqué et entrez à nouveau la commande.

PDE-COP003	L'espace de nom <nom> n'existe pas.

 Cause :	Vous avez tenté d'ouvrir une bibliothèque dont l'espace de nom n'existe pas.

 Action :	Créez l'espace de nom ou indiquez-en un autre.

PDE-COP004	Commande OPEN : aucun espace de nom spécifié.

 Cause :	Vous avez entré la commande OPEN pour ouvrir une bibliothèque sous un espace de nom, mais vous n'avez pas indiqué d'espace de nom.

 Action :	Vérifiez la syntaxe de la commande OPEN. Pour plus d'informations, reportez-vous à OPEN. Entrez à nouveau la commande en indiquant un espace de nom.

PDE-CPL001	Aucune connexion courante à la base de données.

 Cause :	Vous avez tenté d'émettre une instruction SQL DDL, mais n'êtes pas connecté à une base de données.

 Action :	Connectez-vous à une base de données et tentez à nouveau d'émettre l'instruction SQL DDL.

PDE-CRK001	Une bibliothèque doit être spécifiée pour révoquer un droit d'accès.

 Cause :	Vous avez entré la commande REVOKE pour révoquer l'accès d'un utilisateur à une bibliothèque stockée dans la base de données, mais vous n'avez pas indiqué de nom de bibliothèque.

 Action :	Vérifiez la syntaxe de la commande REVOKE. Pour plus d'informations, reportez-vous à REVOK. Entrez à nouveau la commande en indiquant la bibliothèque pour laquelle vous voulez révoquer le droit d'accès.

PDE-CRK002	Un utilisateur doit être spécifié pour révoquer un droit d'accès.

 Cause :	Vous avez entré la commande REVOKE pour révoquer l'accès d'un utilisateur à une bibliothèque stockée dans la base de données, mais vous n'avez pas indiqué de nom utilisateur.

 Action :	Vérifiez la syntaxe de la commande REVOQUE. Pour plus d'informations, reportez-vous à REVOKE. Entrez à nouveau la commande en indiquant le nom de l'utilisateur dont vous voulez révoquer le droit d'accès.

PDE-CRN001	Pas d'ancien nom spécifié.

 Cause :	Vous avez entré la commande RENAME pour changer le nom d'une bibliothèque qui réside dans la base de données en cours, mais vous n'avez pas indiqué l'ancien nom de la bibliothèque.

 Action :	Vérifiez la syntaxe de la commande RENAME. Pour plus d'informations, reportez-vous à RENAME (Bibliothèques). Entrez à nouveau la commande en indiquant l'ancien nom.

PDE-CRN002	Pas de nouveau nom spécifié.

 Cause :	Vous avez entré la commande RENAME pour changer le nom d'une bibliothèque qui réside dans la base de données en cours, mais vous n'avez pas indiqué le nouveau nom de la bibliothèque.

 Action :	Vérifiez la syntaxe de la commande RENAME. Pour plus d'informations, reportez-vous à RENAME (Bibliothèques). Entrez à nouveau la commande en indiquant un nouveau nom.

PDE-CRN003	Aucune bibliothèque de base de données du nom de <nom de la bibliothèque> n'est accessible actuellement.

 Cause :	Vous avez entré la commande RENAME pour changer le nom d'une bibliothèque, mais la commande n'a pas pu être exécutée pour l'une des raisons suivantes :

A : La bibliothèque indiquée n'existe pas dans la base de données en cours.

B : Vous n'avez pas l'autorisation de renommer la bibliothèque indiquée.

 Action :	Pour remédier à cette erreur, vous pouvez effectuer les opérations suivantes :

Cas 1 :	Entrez à nouveau la commande RENAME en indiquant un nom de bibliothèque correct.

Cas 2 :	Procurez-vous les autorisations nécessaires pour renommer la bibliothèque et entrez à nouveau la commande RENAME.

PDE-CRN004	Impossible de renommer une bibliothèque sans connexion à la base de données.

 Cause :	Vous avez entré la commande RENAME pour changer le nom d'une bibliothèque, mais vous n'étiez pas connecté à une base de données.

 Action :	Connectez-vous à la base de données dans laquelle est stockée la bibliothèque et renommez la bibliothèque.

PDE-CRN007	Impossible de renommer <ancien nom de bibliothèque> par <nouveau nom de bibliothèque> puisque <nouveau nom de bibliothèque> est actuellement attachée.

 Cause :	Vous avez entré la commande RENAME pour changer le nom d'une bibliothèque stockée dans la base de données en cours, mais la bibliothèque indiquée par le nouveau nom est attachée. Vous ne pouvez pas renommer une bibliothèque en lui donnant le nom d'une bibliothèque déjà attachée.

 Action :	Utilisez la commande DETACH pour détacher la bibliothèque indiquée par le nouveau nom ou utilisez un nom différent, puis entrez à nouveau la commande RENAME. Pour plus d'informations, reportez-vous à DETACH.

PDE-CRN008	Impossible de renommer <ancien nom de bibliothèque> en <nouveau nom de bibliothèque> puisque <nouveau nom de bibliothèque> est actuellement ouverte.

 Cause :	Vous avez entré la commande RENAME pour changer le nom d'une bibliothèque stockée dans la base de données en cours, mais la bibliothèque indiquée par le nouveau nom est ouverte.

 Action :	Utilisez la commande CLOSE pour fermer la bibliothèque indiquée par le nouveau nom ou utilisez un nouveau nom différent, puis entrez à nouveau la commande RENAME. Pour plus d'informations, reportez-vous à CLOSE.

PDE-CRS001	Niveau de débogage inexistant.

 Cause :	Vous avez entré la commande RESET pour revenir à un niveau de débogage indiqué explicitement, mais ce niveau de débogage n'existe pas.

 Action :	Vérifiez la syntaxe du mot-clé LEVEL de la commande RESET. Pour plus d'informations, reportez-vous à RESET. Entrez à nouveau la commande en indiquant un niveau de débogage valide.

PDE-CRS002	Aucune procédure en cours d'exécution.

 Cause :	Vous avez entré la commande RESET pour interrompre l'exécution d'une unité de programme PL/SQL, mais il n'y avait pas d'unité de programme PL/SQL dont l'exécution était suspendue.

 Action :	Pour utiliser la commande RESET, vous devez exécuter une unité de programme PL/SQL et interrompre son exécution en utilisant une action de débogage. Pour plus d'informations, reportez-vous à A propos des actions de débogage.

PDE-CRV001	Une bibliothèque à rétablir doit être spécifiée.

 Cause :	Vous avez entré la commande REVERT pour rétablir une bibliothèque, mais vous n'avez pas indiqué de nom de bibliothèque.

 Action :	Vérifiez la syntaxe de la commande REVERT. Pour plus d'informations, reportez-vous à REVERT. Entrez à nouveau la commande en indiquant le nom de la bibliothèque à rétablir.

PDE-CRV002	<nom de la bibliothèque> n'est pas une bibliothèque ouverte.

 Cause :	Vous avez tenté de rétablir une bibliothèque qui n'est pas ouverte, ce qui n'est pas possible.

 Action :	Assurez-vous que vous tentez de rétablir une bibliothèque ouverte. Vérifiez l'orthographe de la bibliothèque indiquée et entrez à nouveau la commande.

PDE-CSA001	Indiquer une bibliothèque à enregistrer.

 Cause :	Vous avez entré la commande SAVE pour enregistrer une bibliothèque, mais vous n'avez pas indiqué de nom de bibliothèque.

 Action :	Vérifiez la syntaxe de la commande SAVE. Pour plus d'informations, reportez-vous à SAVE. Entrez à nouveau la commande en indiquant le nom de la bibliothèque que vous voulez enregistrer.

PDE-CSA002	<nom de la bibliothèque> n'est pas une bibliothèque ouverte.

 Cause :	Vous avez tenté d'enregistrer une bibliothèque qui n'est pas ouverte, ce qui n'est pas possible.

 Action :	Assurez-vous que vous tentez d'enregistrer une bibliothèque ouverte. Vérifiez l'orthographe de la bibliothèque indiquée et entrez à nouveau la commande.

PDE-CSA003	Une destination d'enregistrement doit être spécifiée.

 Cause :	Vous avez entré la commande SAVE avec l'option AS pour enregistrer une bibliothèque dans un fichier indiqué, mais vous n'avez pas indiqué de nom de fichier.

 Action :	Vérifiez la syntaxe de la commande SAVE. Pour plus d'informations, reportez-vous à SAVE. Entrez à nouveau la commande en indiquant le nom du fichier dans lequel vous voulez enregistrer la bibliothèque.

PDE-CSE001	Aucune connexion en cours à la base de données.

 Cause :	Vous avez entré une instruction SQL SELECT, mais n'êtes pas connecté à une base de données.

 Action :	Connectez-vous à une base de données et entrez à nouveau l'instruction. Pour plus d'informations sur la connexion à une base de données, reportez-vous à la documentation de votre produit Oracle.

PDE-CSH001	Aucune pile d'exécution PL/SQL courante.

 Cause :	Vous avez tenté de répertorier les trames dans la pile d'appels en utilisant la commande SHOW, mais il n'y avait pas de pile d'appels car aucune exécution d 'unité de programme n'a été suspendue.

 Action :	Si vous voulez utiliser la commande SHOW pour répertorier des trames dans la pile d'appels, vous devez exécuter une unité de programme PL/SQL et interrompre son exécution par une action de débogage. Pour plus d'informations, reportez-vous à A propos des actions de débogage.

PDE-CSH002	Le type indiqué n'existe pas dans le langage de programmation actuel.

 Cause :	Vous avez saisi un mot-clé de type qui ne correspond pas à celui du langage.

 Action :	Entrez à nouveau la commande SHOW en indiquant le type et le langage appropriés.

PDE-CSR001	Pas d'unité de programme spécifiée pour l'enregistrement dans la base de données.

 Cause :	Vous avez entré la commande STORE, mais vous n'avez pas indiqué d'unités de programme à stocker.

 Action :	Entrez à nouveau la commande STORE en fournissant les mots-clés et les valeurs appropriés pour indiquer les unités de programme à stocker. Pour plus d'informations, reportez-vous à STORE.

PDE-CSR002	L'unité de programme spécifiée n'existe pas.

 Cause :	Vous avez entré la commande STORE pour stocker une ou plusieurs unités de programme dans la base de données, mais l'unité de programme que vous avez indiquée n'existe pas.

 Action :	Entrez à nouveau la commande STORE en indiquant un nom de l'unité de programme correct. Pour plus d'informations, reportez-vous à STORE.

PDE-CSR003	Aucune connexion en cours à la base de données.

 Cause :	Vous avez entré la commande STORE pour stocker une unité de programme dans la base de données, mais vous n'êtes pas connecté à une base de données.

 Action :	Connectez-vous à une base de données et entrez à nouveau la commande STORE.

PDE-CSR004	Enregistrement de <type de l'unité de programme> <nom de l'unité de programme> impossible parce qu'il s'agit d'une unité de programme enregistrée.

 Cause :	Vous avez entré la commande STORE pour stocker une unité de programme dans la base de données, mais l'unité de programme que vous avez indiquée est une procédure interne.

 Action :	Vous ne pouvez stocker que des unités de programme créées ou chargées dans Procedure Builder.

PDE-CSR005	Le source de l'unité de programme est incomplet.

 Cause :	Vous avez entré la commande STORE pour stocker une unité de programme dans la base de données, mais le code source de l'unité de programme n'est pas un élément PL/SQL complet.

 Action :	Entrez un élément PL/SQL complet comme code source de l'unité de programme, puis Entrez à nouveau la commande STORE.

PDE-CSR006	Pas de propriétaire spécifié.

 Cause :	Vous avez entré la commande STORE avec le mot-clé OWNER, mais vous n'avez pas indiqué de nom de propriétaire.

 Action :	Entrez à nouveau la commande STORE en fournissant le nom du propriétaire. Pour plus d'informations, reportez-vous à STORE.

PDE-CSR007	Impossible de stocker les spécifications de procédure ou de fonction.

 Cause :	Vous avez entré la commande STORE pour stocker une spécification de fonction de procédure dans la base de données, alors que seules les spécifications de package peuvent être stockées.

 Action :	Assurez-vous qu'il existe un corps pour la fonction ou la procédure que vous tentez de stocker. Entrez à nouveau la commande STORE sans le mot-clé SPECIFICATION. Pour plus d'informations, reportez-vous à STORE.

PDE-CTR001	Pas de corps de déclencheur spécifié.

 Cause :	Vous avez entré la commande TRIGGER pour créer un déclencheur de débogage, mais vous n'avez pas indiqué d'instruction PL/SQL ou de bloc comme corps du déclencheur.

 Action :	Vérifiez la syntaxe de la commande TRIGGER. Pour plus d'informations, reportez-vous à TRIGGER. Entrez à nouveau la commande en indiquant un corps de déclencheur valide.

PDE-CTR002	Déclencheur non installé en raison d'erreurs de compilation dans le corps du déclencheur.

 Cause :	Vous avez entré un élément PL/SQL erroné dans le corps du déclencheur.

 Action :	Corrigez l'élément PL/SQL avant de fermer l'éditeur.

PDE-CXC001	Commande EXECUTE : aucune unité de programme spécifiée.

 Cause :	Vous avez entré la commande EXECUTE pour exécuter une procédure sans paramètre, mais vous n'avez pas indiqué de nom de procédure.

 Action :	Vérifiez la syntaxe de la commande EXECUTE. Pour plus d'informations, reportez-vous à EXECUTE. Entrez à nouveau la commande en indiquant le nom de la procédure sans paramètre que vous voulez exécuter.

PDE-CXC002	La compilation de l'unité de programme spécifiée n'est pas réussie.

 Cause :	Vous avez entré la commande EXECUTE pour exécuter une procédure sans paramètre, mais sans avoir au préalable compilé la procédure.

 Action :	 Compilez la procédure (en utilisant la commande COMPILE), puis entrez à nouveau la commande EXECUTE. Pour plus d'informations, reportez-vous aux sections suivantes :

COMPILE (Unités de programme)

EXECUTE

PDE-DDB001	<locale> n'est pas définie pour l'emplacement du travail courant.

 Cause :	Vous avez appelé une fonction DEBUG.GETx ou une procédure DEBUG.SETx pour accéder à la valeur d'un paramètre ou d'une variable locale, mais le paramètre ou la variable locale ne sont pas définis à l'emplacement de travail en cours.

 Action :	Utilisez la commande SHOW LOCALS pour afficher la liste des variables et des paramètres locaux à l'emplacement de travail en cours, puis modifiez l'appel DEBUG.GETx ou DEBUG.SETx pour passer un nom de variable ou de procédure locale valide. Pour plus d'informations, reportez-vous aux sections suivantes :

SHOW (Variables locales)

Le package DEBUG

PDE-DDB002	<locale> n'est pas du type spécifié.

 Cause :	Vous avez appelé une fonction DEBUG.GETx ou une procédure DEBUG.SETx pour accéder à la valeur d'une variable ou d'un paramètre local, mais le type de base du paramètre ou de la variable locale ne correspond pas à x. Par exemple, ce message apparaît si vous tentez de lire la valeur d'une variable CHAR locale en utilisant la fonction locale DEBUG.GETN de type NUMBER.

 Action :	Vérifiez le type de base du paramètre ou de la variable locale et appelez le sous-programme DEBUG.GETx ou DEBUG.SETx approprié à ce type. Pour plus d'informations, reportez-vous à Package DEBUG.

PDE-DDB004	Impossible de définir la valeur. Aucune information de débogage.

 Cause :	Vous avez tenté de définir la valeur d'une variable pour laquelle aucune information de débogage n'est disponible.

 Action :	Recompilez le package ou la procédure avec les informations de débogage.

PDE-DDB005	Erreur (valeur incorrecte) lors de la modification de la valeur d'une variable.

 Cause :	Vous avez tenté de définir la valeur d'une variable avec des éléments inappropriés, trop longs ou hors plage.

 Action :	Vérifiez la définition de la variable et paramétrez-la de manière appropriée.

PDE-DDB006	Fonctionnalité non mise en oeuvre (par exemple, définition d'une variable IN).

 Cause :	Vous avez tenté d'utiliser une fonction non prise en charge (par exemple, la définition de la valeur d'une variable IN dans le débogueur).

 Action :	Vous ne pouvez pas utiliser cette fonction pour le moment.

PDE-DFF001	Type de données d'argument non accepté.

 Cause :	Vous avez défini un appel à une fonction étrangère en utilisant un ou plusieurs types de données qui ne sont pas pris en charge par le package ORA_FFI.

 Action :	Utilisez les types de données pris en charge par le package ORA_FFI. Pour plus d'informations sur les types de package pris en charge, reportez-vous à la documentation du produit Oracle pour votre système d'exploitation.

PDE-DFF002	Type de valeur de retour non accepté.

 Cause :	Vous avez défini un appel à une fonction étrangère en utilisant un type de donnée de valeur de retour qui n'est pas pris en charge par le package ORA_FFI.

 Action :	Utilisez un type de données de valeur de retour pris en charge par le package ORA_FFI. Pour plus d'informations sur les types de données pris en charge, reportez-vous à la documentation du produit Oracle pour votre système d'exploitation.

PDE-DFF003	Impossible d'ouvrir la bibliothèque : <nom de la bibliothèque>.

 Cause :	Vous avez tenté d'appeler une fonction dans une bibliothèque étrangère, mais la bibliothèque que vous avez indiquée n'existe pas ou n'a pas pu être ouverte.

 Action :	Vérifiez l'existence de la bibliothèque étrangère indiquée, et assurez-vous que vous avez l'autorisation de lire son contenu. Vérifiez également l'orthographe du nom de la bibliothèque dans votre appel.

PDE-DFF004	Fonction <nom de la fonction> introuvable dans la bibliothèque <nom de la bibliothèque>.

 Cause :	Vous avez tenté d'appeler une fonction dans une bibliothèque étrangère, mais la fonction que vous avez indiquée n'a pas pu être trouvée dans la bibliothèque.

 Action :	Assurez-vous que la fonction se trouve dans la bibliothèque indiquée. Vérifiez également l'orthographe du nom de la fonction et du nom de la bibliothèque dans votre appel.

PDE-DFF005	Descripteur de bibliothèque incorrect.

 Cause :	Vous avez tenté d'exécuter une opération sur un descripteur de bibliothèque étrangère, mais le descripteur que vous avez indiqué n'était pas valide.

 Action :	Assurez-vous que le descripteur de bibliothèque est le résultat valide de ORA_FFI.LOAD_LIBRARY ou ORA_FFI.FIND_LIBRARY.

PDE-DFF006	Descripteur de fonction incorrect.

 Cause :	Vous avez tenté d'exécuter une opération sur un descripteur de fonction étrangère, mais le descripteur que vous avez indiqué n'était pas valide.

 Action :	 Assurez-vous que le descripteur de la fonction est le résultat valide de ORA_FFI.REGISTER_FUNCTION ou ORA_FFI.FIND_FUNCTION.

PDE-DFF007	Arguments trop importants.

 Cause :	Le total de la taille de tous les arguments enregistrés jusqu'à présent est trop élevé.

 Action :	Redéfinissez cette fonction ou cette procédure pour qu'elles acceptent moins d'arguments.

PDE-DIO001	Spécification de mode de fichier non valide : <mode du fichier>.

 Cause :	Vous avez appelé la fonction TEXT_IO.FOPEN pour ouvrir un fichier texte, mais vous avez transmis un argument de spécification de mode de fichier erroné.

 Action :	Vérifiez la syntaxe de la fonction TEXT_IO.FOPEN. Pour plus d'informations, reportez-vous à Package TEXT_IO. Changez l'appel TEXT_IO.FOPEN pour transmettre un argument de spécification de mode de fichier valide.

PDE-DIO002	Tentative d'opération sur fichier non ouvert actuellement.

 Cause :	Vous avez appelé un sous-programme dans le package TEXT_IO pour lire ou écrire dans un fichier texte, mais vous avez passé un argument de descripteur de fichier qui n'est pas associé à un fichier ouvert.

 Action :	Utilisez la fonction TEXT_IO.FOPEN pour ouvrir le fichier et retournez un pointeur de fichier valide. Appelez à nouveau le sous-programme TEXT_IO en passant le pointeur de fichier valide sous la forme d'un argument. Pour plus d'informations, reportez-vous à Package TEXT_IO.

PDE-DLI001	Position non valide.

 Cause :	La position que vous avez indiquée n'est pas valide.

 Action :	Entrez une position supérieure ou égale à 0 et inférieure à la longueur de la liste.

PDE-DST001	Arguments du sous-programme stocké trop nombreux.

 Cause :	Vous avez appelé un sous-programme stocké (côté serveur) à partir d'une unité de programme côté client, mais sans succès car le sous-programme stocké demande davantage d'arguments que Procedure Builder ne peut en prendre en charge (100).

 Action :	Redéfinissez le sous-programme stocké pour qu'il demande moins d'arguments, ou définissez un nouveau sous-programme stocké avec moins d'arguments que n'en appelle l'ancien sous-programme côté base de données. Pour plus d'informations, reportez-vous à A Propos des unités de programme stockées.

PDE-DST002	Procédure stockée <nom de la procédure> : plusieurs entrées trouvées dans SYS.PSTUBTBL.

 Cause :	La précédente exécution d'un programme a entraîné la perte d'enregistrements dans la table SYS.PSTUBTBL de la base de données.

 Action :	Supprimez toutes les entrées de la table SYS.PSTUBTBL et tentez à nouveau d'exécuter l'opération.

PDE-DST005	Création impossible de l'élément de remplacement client pour l'unité de programme stockée ; une unité de programme de ce nom existe déjà.

 Cause :	L'appel d'une unité de programme stockée crée une unité de programme de remplacement de nom identique côté client. Cette unité de remplacement n'a pas pu être créée, car une unité de programme du même nom existe déjà.

 Action :	Attribuez un nouveau nom à l'unité de programme existante.

PDE-FCA001	Erreur du sous-système.

 Cause :	Une opération utilisant le noyau ou le sous-système PL/SQL a généré une erreur.

 Action :	Prenez les mesures nécessaires à la résolution de l'erreur du sous-système.

PDE-ICD003	Mot-clé non reconnu : <mot-clé>.

 Cause :	Vous avez entré une commande et indiqué un mot-clé erroné dans la chaîne de commande.

 Action :	Vérifiez la syntaxe de la commande que vous avez entrée. Pour plus d'informations, reportez-vous à Utilisation des commandes de l'Interpréteur. Entrez à nouveau la commande en indiquant les mots-clés, les valeurs et les options appropriés à cette commande.

PDE-ICD004	La commande '<commande>' a été désactivée par <nom du produit>.

 Cause :	Vous avez entré une commande Procedure Builder qui a été désactivée par un autre produit.

 Action :	Vérifiez la syntaxe de la commande que vous venez d'entrer dans le contexte du produit que vous utilisez. Entrez à nouveau correctement la commande en indiquant les mots-clés, valeurs et options correspondant à cette commande.

PDE-IIN002	Impossible d'ouvrir le fichier <nom du fichier>.

 Cause :	Vous avez entré la commande INTERPRET pour exécuter un script Procedure Builder stocké dans un fichier, mais le fichier que vous avez indiqué n'existe pas ou vous n'avez pas l'autorisation de le lire.

 Action :	Entrez à nouveau la commande INTERPRET en indiquant un fichier contenant un script Procedure Builder que vous avez l'autorisation de lire.

PDE-IIN003	Aucune pile d'exécution PL/SQL courante.

 Cause :	Vous avez exécuté une opération qui a tenté d'accéder à l'état d'exécution de PL/SQL, mais il n'y avait pas d'unité de programme PL/SQL dont l'exécution était suspendue.

 Action :	Pour exécuter cette opération, vous devez exécuter une unité de programme PL/SQL et interrompre son exécution en utilisant une action de débogage. Pour plus d'informations, reportez-vous à A propos des actions de débogage.

PDE-IIN004	Impossible de poursuivre l'exécution - exécution invalidée par action de débogage.

 Cause :	Vous avez tenté d'exécuter une unité de programme, mais l'opération a été interrompue car l'état d'exécution était invalidé par les actions d'un déclencheur de débogage. Ce message d'erreur s'affiche, par exemple, si vous avez appelé une unité de programme pour laquelle vous aviez défini un déclencheur de débogage qui appelait la commande RESET.

 Action :	Reprenez l'exécution de l'unité de programme d'origine et évitez l'opération qui a provoqué l'invalidation.

PDE-IIN005	<commande> est une commande inconnue.

 Cause :	Vous avez émis une commande qui n'existe pas.

 Action :	Tapez .HELP COMMAND dans la ligne de commande de l'Interpréteur pour afficher la liste des commandes valides. Pour une description complète des commandes de Procedure Builder, reportez-vous à Liste alphabétique des commandes.

PDE-IIN006	Commande Null non valide.

 Cause :	Vous avez émis une commande NULL (par exemple DEBUG.INTERPRET(');)

 Action :	Remplacez la chaîne de commande par une commande valide.

PDE-IKP002	Mots-clés de commande en surplus non pris en compte <mots-clés>.

 Cause :	Vous avez entré une commande, mais vous avez fourni trop de mots-clés ou fourni des mots-clés supplémentaires qui ne convenaient pas au contexte d'exécution de la commande. Ce message d'erreur s'affiche, par exemple, si vous avez entré la commande .SHOW PROCEDURES BREAKPOINTS parce qu'il n'est pas possible d'indiquer à la fois des procédures et des points d'interruption dans une même commande.

 Action :	Vérifiez la syntaxe de la commande que vous avez entrée. Pour plus d'informations, reportez-vous à Utilisation des commandes de l'Interpréteur. Entrez à nouveau la commande en indiquant les mots-clés, les valeurs et les options appropriés à cette commande.

PDE-IKP003	Aucune connexion à la base de données spécifiée.

 Cause :	Vous avez entré la commande CONNECT pour vous connecter à une base de données, mais vous n'avez pas indiqué de chaîne de connexion.

 Action :	Vérifiez la syntaxe de la commande CONNECT. Pour plus d'informations, reportez-vous à CONNECT. Entrez à nouveau la commande correctement en indiquant le mot-clé et la chaîne de connexion appropriés.

PDE-IKP004	Aucune connexion en cours à la base de données.

 Cause :	Vous avez entré une commande qui accède à la base de données, mais il n'y avait pas de connexion en cours.

 Action :	Connectez-vous à la base de données et entrez la commande à nouveau.

PDE-IKP005	Le <type de l'unité de programme> <nom de l'unité de programme> est indéfini.

 Cause :	Vous avez entré une commande dans laquelle vous avez indiqué une ou plusieurs unités de programme (par exemple LIST, DESCRIBE, BREAK, etc.), mais au moins une d'entre elles n'était pas définie dans l'environnement.

 Action :	Entrez à nouveau la commande en indiquant uniquement des unités de programme définies dans l'environnement.

PDE-IKP006	L'action de débogage <ID de l'action> est indéfinie.

 Cause :	 Vous avez entré une commande dans laquelle vous avez indiqué un emplacement source pour un ID d'action de débogage (par exemple, LIST, BREAK, etc.), mais l'ID que vous avez fourni n'identifiait pas une action de débogage existante.

 Action :	Entrez à nouveau la commande en indiquant un ID d'action de débogage valide.

PDE-IKP008	L'emplacement de la source en cours n'est pas défini.

 Cause :	Vous avez entré une commande Procedure Builder dans laquelle vous n'avez pas indiqué d'emplacement (par exemple, LIST, STEP, BREAK, etc.), ou vous avez indiqué l'emplacement en cours alors qu'il n'en existe pas.

 Action :	Rentrez la commande, en indiquant un emplacement valide.

PDE-IKP010	Le déclencheur spécifié est associé à plusieurs lignes source.

 Cause :	Vous avez entré une commande dans laquelle vous avez indiqué un emplacement source pour un ID d'action de débogage (par exemple, LIST, BREAK, etc.), mais l'ID que vous avez fourni identifiait un déclencheur attaché à plusieurs lignes source (par exemple, un déclencheur DEBUG ou *).

 Action :	Entrez à nouveau la commande en indiquant un ID identifiant une action de débogage associée à une seule ligne source, ou indiquez l'emplacement source d'une autre façon.

PDE-IKP011	Attente de sème délimité par espaces blancs.

 Cause :	Vous avez entré une commande de Procedure Builder (par exemple, CONNECT) et fourni un mot-clé (par exemple, DB) qui demandait un argument composé d'une chaîne de caractères délimités par des blancs, mais vous n'avez pas fourni cet argument.

 Action :	Entrez à nouveau la commande en fournissant l'argument approprié.

PDE-IKP012	Nom de fichier prévu.

 Cause :	Vous avez entré une commande (par exemple, LOAD) et fourni un mot-clé (par exemple, FILE) qui demandait un ou plusieurs arguments de noms de fichier, mais vous n'avez pas fourni de noms de fichier.

 Action :	Vérifiez la syntaxe de la commande que vous avez entrée. Pour plus d'informations, reportez-vous à Utilisation des commandes de l'Interpréteur. Entrez à nouveau la commande en indiquant les mots-clés, les valeurs et les options appropriés à cette commande.

PDE-IKP013	Nom prévu.

 Cause :	Vous avez entré une commande (par exemple, DELETE) et fourni un mot-clé (par exemple, PROCEDURE) qui demandait un ou plusieurs arguments de noms d'objet, mais vous n'avez pas fourni de noms d'objet.

 Action :	Vérifiez la syntaxe de la commande que vous avez entrée. Pour plus d'informations, reportez-vous à Utilisation des commandes de l'Interpréteur. Entrez à nouveau la commande en indiquant les mots-clés, les valeurs et les options appropriés à cette commande.

PDE-IKP014	Nom utilisateur prévu.

 Cause :	Vous avez entré une commande Procedure Builder (par exemple, BREAK) et fourni le mot-clé USER qui demandait un argument de nom utilisateur, mais vous n'avez pas indiqué de nom utilisateur.

 Action :	Vérifiez la syntaxe de la commande que vous avez entrée. Pour plus d'informations, reportez-vous à Utilisation des commandes de l'Interpréteur. Entrez à nouveau la commande en indiquant les mots-clés, les valeurs et les options appropriés à cette commande.

PDE-IKP015	Nom utilisateur et caractère séparateur trouvés.

 Cause :	Vous avez entré une commande Procedure Builder (par exemple, BREAK) et fourni le mot-clé USER ainsi qu'un nom d'unité de programme sous la forme USER.PU. Vous devez choisir une méthode pour entrer un nom utilisateur. La syntaxe PACKAGE.PU n'est pas prise en charge.

 Action :	Vérifiez la syntaxe de la commande que vous avez entrée. Pour plus d'informations, reportez-vous à Utilisation des commandes de l'Interpréteur. Entrez à nouveau la commande en indiquant les mots-clés, les valeurs et les options appropriés à cette commande.

PDE-IKP016	USER trouvé, mais non connecté.

 Cause :	Vous avez entré une commande Procedure Builder (par exemple, BREAK) et fourni le mot-clé USER ou utilisé la notation USER.PU. Vous n'êtes cependant pas connecté à une base de données Oracle. La syntaxe PACKAGE.PU n'est pas prise en charge.

 Action :	Connectez-vous à une base de données Oracle et entrez la commande à nouveau.

PDE-IKP017	Cette opération n'est pas autorisée sur des unités de programme intégrées.

 Cause :	Vous avez entré une commande Procedure Builder (par exemple, LIST ou BREAK) et indiqué une ou plusieurs unités de programme. Cependant, au moins une de ces unités de programme est intégrée, et cette opération n'est pas autorisée sur des éléments intégrés.

 Action :	Entrez à nouveau la commande en indiquant des unités de programme non intégrées.

PDE-IPR002	Argument nombre entier attendu.

 Cause :	Vous avez entré une commande avec un mot-clé qui demandait une valeur entière (par exemple, LINE, COUNT), mais vous n'avez pas indiqué d'entier valide.

 Action :	Vérifiez la syntaxe de la commande que vous avez entrée. Pour plus d'informations, reportez-vous à Utilisation des commandes de l'Interpréteur. Entrez à nouveau la commande en indiquant les mots-clés, les valeurs et les options appropriés à cette commande.

PDE-IPR003	La longueur du nom de fichier dépasse la longueur maximum permise.

 Cause :	Vous avez entré une commande avec un mot-clé qui demande un ou plusieurs arguments de noms de fichier (par exemple, FILE), mais l'un des noms de fichier que vous avez fournis dépasse la longueur maximum de 128 octets.

 Action :	Renommez ou déplacez le fichier pour pouvoir indiquer son nom en moins de 128 octets, puis entrez à nouveau la commande avec le nom de fichier aux dimensions voulues.

PDE-IPR004	Le nom PL/SQL ou SQL doit commencer par une lettre.

 Cause :	Vous avez entré une commande avec un mot-clé qui demande un ou plusieurs arguments de nom PL/SQL ou SQL valides (par exemple, PROCEDURE), mais l'un des noms que vous avez fournis ne commence pas par un caractère alphabétique.

 Action :	Entrez à nouveau la commande en indiquant le ou les noms d'objet SQL ou PL/SQL corrects, commençant par un caractère alphabétique.

PDE-IPR005	Omission du guillemet final dans le sème d'entrée entre guillemets.

 Cause :	Vous avez entré une commande et fourni un argument de mot-clé qui commence par des guillemets d'ouverture, mais vous n'avez pas indiqué de guillemets de fermeture.

 Action :	Entrez à nouveau la commande en fournissant des guillemets de fermeture pour l'argument.

PDE-IPR006	Le nom PL/SQL ou SQL dépasse 30 octets.

 Cause :	Vous avez entré une commande avec un mot-clé qui demande un ou plusieurs arguments de nom SQL ou PL/SQL valides (par exemple, PROCEDURE), mais l'un des noms que vous avez fournis dépasse la longueur de 30 octets, qui est le maximum admis pour un identificateur.

 Action :	Entrez à nouveau la commande en indiquant un ou plusieurs noms d'objet PL/SQL ou SQL qui ne dépassent pas la longueur maximale autorisée.

PDE-IPR007	Elément PL/SQL attendu à la place des commentaires.

 Cause :	Vous avez entré une commande (par exemple TRIGGER) avec un mot-clé (par exemple, IS) qui demande à être suivi d'une instruction ou d'un bloc PL/SQL, mais n'avez fourni qu'un commentaire PL/SQL.

 Action :	Entrez à nouveau la commande en indiquant une instruction ou un bloc PL/SQL à la place du commentaire fourni à l'origine. Si vous voulez associer un commentaire à l'élément PL/SQL, entrez un bloc et placez les commentaires entre les mots-clés BEGIN et END.

PDE-IPR008	Le sème d'entrée dépasse la taille limite (128 octets).

 Cause :	Vous avez entré une commande (par exemple, CONNECT) et fourni un mot-clé (par exemple, DB) qui demande un argument délimité par des blancs, mais l'argument que vous avez fourni dépasse la longueur maximale autorisée de 128 octets.

 Action :	Entrez à nouveau la commande en indiquant une valeur d'argument moins élevée.

PDE-IPR009	<chaîne> n'est pas un nom SQL valide.

 Cause :	Vous avez entré une commande (par exemple, CONNECT) et fourni une chaîne qui devrait respecter les conventions de spécification de nom SQL, mais la chaîne que vous avez entrée n'est pas valide.

 Action :	Entrez à nouveau la commande avec un nom SQL valide.

PDE-MCL001	Mot-clé <mot-clé> spécifié plusieurs fois.

 Cause :	Vous avez indiqué plusieurs fois le même argument dans la ligne de commande.

 Action :	N'indiquez l'argument qu'une fois. Si vous voulez indiquer plusieurs valeurs, fournissez-les sous la forme d'une valeur de liste.

PDE-MCL002	<mot-clé> n'est pas un mot-clé valide.

 Cause :	Vous avez indiqué un argument de mot-clé erroné dans la ligne de commande.

 Action :	Indiquez l'argument de mot-clé correct.

PDE-MCL003	Argument de positionnement spécifié après l'argument mot-clé.

 Cause :	Vous avez indiqué un argument de positionnement après un argument de mot-clé.

 Action :	Tous les arguments de position doivent être indiqués avant les arguments de mot-clé. Lorsqu'un argument de mot-clé a été indiqué, tous les arguments suivants dans la ligne de commande doivent également être des arguments de mot-clé.

PDE-MCL004	Valeur non valide pour le mot clé <mot-clé>.

 Cause :	Vous avez indiqué une valeur erronée pour un argument de mot-clé dans la ligne de commande.

 Action :	Indiquez une valeur correcte pour le mot-clé.

PDE-MCL005	Valeur de liste formatée incorrectement.

 Cause :	Vous avez indiqué une valeur de liste mal formatée pour un argument de mot-clé dans la ligne de commande.

 Action :	Indiquez un format de liste correct.

PDE-MCL006	Entrée liste non valide pour le mot clé <mot-clé>.

 Cause :	Vous avez indiqué une valeur de liste pour un mot-clé qui n'accepte pas de valeur de liste.

 Action :	Indiquez une seule valeur pour le mot-clé.

PDE-OGN001	Le type de noeud source ne correspond pas au type de noeud cible.

 Cause :	Dans le Navigateur d'objet, vous avez tenté de coller ou d'abandonner un objet inapproprié.

 Action :	Faites glisser ou coller l'objet dans un noeud différent, d'un type approprié.

PDE-OSC002	Tous les objets sélectionnés doivent être de même type.

 Cause :	Dans le Navigateur d'objet, vous avez tenté d'exécuter une opération qui demande que tous les objets sélectionnés soient de même type.

 Action :	Sélectionnez des objets de même type et tentez à nouveau d'exécuter l'opération.

PDE-PAL001	Echec d'opération mémoire lors d'une opération sur bibliothèque attachée.

 Cause :	Procedure Builder ne peut pas obtenir du système suffisamment de mémoire pour achever une opération sur la bibliothèque attachée.

 Action :	Si possible, libérez de la mémoire ou demandez l'intervention de votre administrateur système.

PDE-PAL005	Impossible d'attacher la bibliothèque <nom de la bibliothèque>, une bibliothèque du même nom étant déjà attachée.

 Cause :	Vous avez tenté d'attacher une bibliothèque qui est déjà attachée.

 Action :	Comme la bibliothèque est déjà attachée, vous n'avez pas besoin de l'attacher une nouvelle fois.

PDE-PAL006	Impossible de supprimer la bibliothèque <nom de la bibliothèque> car elle est actuellement attachée ou ouverte.

 Cause :	Vous avez entré la commande DELETE pour supprimer de la base de données une bibliothèque qui est déjà attachée ou ouverte.

 Action :	Détachez la bibliothèque en utilisant la commande DETACH ou fermez la bibliothèque en utilisant la commande CLOSE, puis entrez à nouveau la précédente commande DELETE pour supprimer la bibliothèque de la base de données. Pour plus d'informations, reportez-vous à DETACH et à CLOSE.

PDE-PAL007	Impossible de supprimer la bibliothèque <nom de la bibliothèque> de la base de données.

 Cause :	Vous avez entré la commande DELETE pour supprimer une bibliothèque stockée dans la base de données, mais cette opération a échoué pour l'une des raisons suivantes :

Vous avez indiqué un nom de bibliothèque erroné.

Vous avez indiqué une bibliothèque déjà attachée.

 Action :	Pour remédier à cette erreur, vous pouvez effectuer les opérations suivantes :

Cas 1 :	Entrer à nouveau la commande DELETE en indiquant un nom de bibliothèque correct.

Cas 2 :	Détacher la bibliothèque indiquée en utilisant la commande DETACH et entrer à nouveau la commande DELETE.

PDE-PAL008	Impossible de référencer la bibliothèque spécifiée, car elle n'est pas actuellement attachée.

 Cause :	Vous avez tenté de faire référence à une bibliothèque qui n'est pas attachée.

 Action :	Tentez à nouveau d'exécuter l'opération en indiquant le nom d'une bibliothèque attachée. Pour plus d'informations sur les bibliothèques attachées, reportez-vous à ATTACH.

PDE-PAL015	Essai de rattachement de la bibliothèque générée <nom de la bibliothèque>.

 Cause :	Vous avez tenté d'attacher une bibliothèque générée à l'exécution uniquement (suffixe .PLX), ce qui n'est pas pris en charge.

 Action :	Attachez la bibliothèque source (suffixe .PLL).

PDE-PAL016	Impossible d'attacher la bibliothèque <nom bibliothèque> à elle-même.

 Cause :	Vous avez tenté de rattacher une bibliothèque à elle-même. Cette opération n'est pas prise en charge.

 Action :	La bibliothèque et son contenu sont déjà accessibles. Il n'est pas nécessaire d'essayer de la rattacher.

PDE-PBV002	Une variable de lien nommée <variable de lien> existe déjà.

 Cause :	Vous avez tenté de déclarer une nouvelle variable de lien Procedure Builder en utilisant la commande CREATE, mais il existe déjà une variable de lien ayant le nom indiqué.

 Action :	Entrez à nouveau la commande CREATE en indiquant pour la variable de lien un nom différent et unique.

PDE-PCB002	Tentative de référence d'une variable non définie.

 Cause :	Vous avez tenté de faire référence à une variable de lien dans une unité de programme PL/SQL, mais la variable de lien indiquée n'est pas définie.

 Action :	Editez l'unité de programme, remplacez la référence de variable de lien par un nom de variable de lien valide et recompilez.

PDE-PCX002	Les opérations Poursuite ou Suspension ont échoué faute de code en cours d'exécution.

 Cause :	Vous avez tenté de faire progresser l'exécution de PL/SQL en utilisant des commandes GO ou STEP, mais il n'y avait pas d'unité de programme PL/SQL dont l'exécution était suspendue.

 Action :	Pour utiliser les commandes GO ou STEP, vous devez exécuter une unité de programme PL/SQL et interrompre son exécution en utilisant une action de débogage. Pour plus d'informations, reportez-vous à A propos des actions de débogage.

PDE-PCX012	SYS.PSTUBTBL contient des lignes non prévues.

 Cause :	La précédente exécution d'un programme a entraîné la perte d'enregistrements dans la table SYS.PSTUBTBL de la base de données.

 Action :	Supprimez toutes les entrées de la table SYS.PSTUBTBL et tentez à nouveau d'exécuter l'opération.

PDE-PCX021	Cannot disconnect with a suspended remote program unit executing.

 Cause :	Vous avez exécuté une unité de programme à distance (côté serveur) qui est arrêtée à un point d'interruption. Une déconnexion entraînerait l'invalidation de toutes les unités de programme dépendantes. Vous ne pouvez pas vous déconnecter avant que l'exécution soit remise à zéro ou terminée.

 Action :	Remettez à zéro ou terminez l'exécution de l'unité de programme, puis déconnectez-vous.

PDE-PEP005	Impossible de décoder l'unité de programme encodée de l'architecture de la machine étrangère.

 Cause :	Procedure Builder a tenté de décoder une unité de programme créée à l'aide d'une architecture d'une machine différente. Ce processus implique la recompilation de l'unité de programme, mais aucun code source n'a été trouvé.

 Action :	Fournissez une unité de programme créée sur l'architecture de la machine en cours ou une copie provenant de la machine étrangère qui a été enregistrée avec le code source.

PDE-PEP006	L'unité PL/SQL encodée a un format inconnu.

 Cause :	Procedure Builder a tenté de décoder une unité de programme codée par une version du code de gestion de bibliothèques qui n'est pas prise en charge.

 Action :	Il s'agit d'une erreur interne. Pour plus d'informations sur la façon de procéder, reportez-vous à Conditions anormales.

PDE-PEP011	L'unité de programme <nom de l'unité de programme> est trop grande pour être stockée.

 Cause :	Vous avez tenté de stocker une unité de programme dans une bibliothèque, mais sa représentation stockée dépasse la taille maximum autorisée par ce système d'exploitation.

 Action :	Fractionnez l'unité de programme en plusieurs unités plus petites et tentez à nouveau d'exécuter l'opération.

PDE-PEP014	L'unité de programme <nom de l'unité de programme> a été renommée <nom de l'unité de programme>, car son nom provoquait un conflit avec celui d'un package intégré.

 Cause :	La version 1 de Procedure Builder permettait de créer une unité de programme dont le nom était identique à celui d'un package intégré. Ce n'est pas le cas avec la version 2. Lorsque vous chargez une unité de programme dont le nom est identique à celui d'un package intégré, Procedure Builder ajoute deux signes dollar à la fin du nom de cette unité de programme. Par exemple, la procédure DEBUG devient DEBUG$$.

 Action :	Si vous le souhaitez, modifiez le nom de l'unité de programme avant son chargement. Veillez également à mettre à jour toutes les références à ce nom.

PDE-PER001	Erreur interne <code d'erreur>.

 Cause :	Vous avez tenté une opération qui a entraîné une erreur interne, également appelée condition anormale. Le code d'erreur (entre parenthèses) indique la routine interne associée à l'erreur.

 Action :	Pour plus d'informations sur la façon de procéder, reportez-vous à Conditions anormales.

PDE-4	Tentative de modification d'une bibliothèque ouverte en mode lecture seulement.

 Cause :	Vous avez tenté d'éditer une bibliothèque attachée en lecture seule.

 Action :	Détachez la bibliothèque à modifier, puis attachez-la de nouveau en lecture seule. Pour plus d'informations, reportez-vous à ATTACH.

PDE-PLI006	La bibliothèque créée existe déjà.

 Cause :	Vous avez tenté de créer une nouvelle bibliothèque dans la base de données en cours, mais il existe déjà une bibliothèque ayant le même nom.

 Action :	Indiquez pour la bibliothèque un nom différent et unique, et tentez à nouveau d'exécuter l'opération.

PDE-PLI007	Cette bibliothèque est dans un format ancien accepté uniquement en mode lecture seule.

 Cause :	Vous avez tenté d'éditer une bibliothèque créée par la version 1.0.5 ou une version précédente de Procedure Builder, mais ces bibliothèques ne sont accessibles qu'en lecture à partir des nouvelles versions.

 Action :	Copiez le contenu de l'ancienne bibliothèque dans une nouvelle, pour laquelle la lecture-écriture est prise en charge. Pour copier une bibliothèque, la solution la plus simple consiste à utiliser Fichier [image] Enregistrer sous... dans l'Editeur de bibliothèques.

PDE-PLI008	Opération acceptée uniquement sur les bibliothèques de base de données.

 Cause :	Vous avez tenté de renommer ou de supprimer une bibliothèque résidant dans le système de fichiers en utilisant, respectivement, la commande RENAME ou DELETE, mais cette opération n'est prise en charge que pour les bibliothèques résidant dans la base de données.

 Action :	Utilisez les fonctions appropriées du système d'exploitation natif pour renommer ou supprimer des bibliothèques résidant dans le système de fichiers.

PDE-PLI011	Une table de schéma commun d'outils est absente du stockage objet.

 Cause :	Vous avez tenté de créer une bibliothèque stockée dans la base de données, ou d'y accéder, mais l'opération a échoué car il manque une table de schéma commun d'outils.

 Action :	Contactez votre administrateur de bases de données et assurez-vous que Oracle Tools Common Schema est correctement installé.

PDE-PLI017	La bibliothèque spécifiée <nom de la bibliothèque> n'existe pas dans la base de données.

 Cause :	Vous avez tenté une opération sur une bibliothèque, mais la bibliothèque indiquée n'existe pas dans la base de données.

 Action :	Vérifiez l'orthographe du nom de la bibliothèque et tentez à nouveau d'exécuter l'opération en indiquant une bibliothèque de base de données existante.

PDE-PLI018	Bibliothèque <nom de la bibliothèque> introuvable.

 Cause :	Vous avez entré une demande et indiqué une bibliothèque qui n'a pas pu être trouvée ou qui n'existe pas dans le système de fichiers ou dans la base de données en cours.

 Action :	Entrez à nouveau la commande précédente en indiquant un nom et une adresse corrects pour les bibliothèques que vous voulez utiliser.

PDE-PLI020	Echec d'ouverture bas niveau pour la bibliothèque <nom de la bibliothèque>.

 Cause :	Vous avez tenté une opération sur une bibliothèque qui n'a pas pu être ouverte.

 Action :	Cette erreur s'accompagne d'autres erreurs. Recherchez, dans les erreurs qui l'accompagnent, des conseils sur la manière de résoudre ce problème.

PDE-PLI021	Impossible de renommer <ancien nom de la bibliothèque>, la bibliothèque <nouveau nom de la bibliothèque> étant en cours.

 Cause :	Vous avez entré la commande RENAME pour renommer une bibliothèque stockée dans la base de données en cours, mais le nouveau nom que vous avez indiqué est le même que celui d'une bibliothèque existante.

 Action :	Entrez à nouveau la commande RENAME en indiquant comme nouveau nom un nom différent. Sinon, renommez la bibliothèque qui utilise le nouveau nom que vous avez indiqué dans la commande qui a échoué, puis entrez à nouveau la commande.

PDE-PLI023	Echec de création de la bibliothèque <nom de la bibliothèque>.

 Cause :	Vous avez tenté de créer une bibliothèque, mais le fichier indiqué n'a pas pu être ouvert, probablement pour une des raisons suivantes :

Vous avez indiqué un nom de bibliothèque erroné.

Vous avez indiqué le nom d'une bibliothèque qui existe déjà dans un fichier, mais sans avoir les autorisations nécessaires pour modifier ce fichier.

 Action :	Pour remédier à cette erreur, vous pouvez effectuer les opérations suivantes :

Cas 1 :	Tentez à nouveau d'exécuter l'opération en indiquant un nom de bibliothèque valide.

Cas 2 :	Tentez à nouveau d'exécuter l'opération en indiquant un nom de bibliothèque différent. Si vous voulez utiliser le même nom de bibliothèque (en écrasant le fichier existant), assurez-vous que vous avez les autorisations nécessaires.

PDE-PLI031	Impossible d'extraire l'enregistrement de la table <nom de la table>.

 Cause :	Une opération de bibliothèque a tenté sans succès d'extraire un enregistrement.

 Action :	Assurez-vous que toutes les tables liées à Procedure Builder sont correctement installées. Si elles semblent toutes correctes, contactez le Support technique Oracle. Pour plus d'informations, reportez-vous à Recours au Support technique Oracle.

PDE-PLI038	Impossible d'ouvrir le fichier en vue de l'utiliser comme bibliothèque.

 Cause :	Vous avez tenté d'ouvrir un fichier contenant une bibliothèque PL/SQL, mais les autorisations d'accès au fichier ne sont pas correctes, le fichier indiqué ne contient pas de bibliothèque valide ou le fichier est utilisé par une autre application.

 Action :	Vérifiez l'orthographe du nom de fichier indiqué, les autorisations d'accès au fichier et le contenu du fichier pour vous assurer que vous ouvrez un fichier de bibliothèque PL/SQL valide. Si ces vérifications ne permettent pas de trouver l'origine du problème, recherchez d'autres applications ou utilisateurs qui utilisent le fichier, puis tentez à nouveau d'exécuter l'opération.

PDE-PLI040	La représentation stockée de l'unité de programme <nom de l'unité de programme> est trop grande.

 Cause :	Vous avez tenté de charger une unité de programme stockée dans une bibliothèque, mais la représentation stockée de l'unité de programme est trop volumineuse pour être entrée en mémoire avec ce système d'exploitation.

 Action :	Revenez au système d'exploitation sous lequel cette bibliothèque a été générée au départ et fractionnez l'unité de programme en plusieurs unités plus petites.

PDE-PLI041	La bibliothèque spécifiée dans la base de données n'a pu être verrouillée.

 Cause :	Vous avez tenté d'attacher une bibliothèque à partir d'une base de données en LECTURE/ECRITURE, mais la bibliothèque n'a pas pu être verrouillée. La cause la plus probable est qu'un autre utilisateur avait attaché la bibliothèque en LECTURE/ECRITURE.

 Action :	Si possible, attachez la bibliothèque en LECTURE SEULE. Sinon, localisez l'utilisateur ayant attaché la bibliothèque en LECTURE/ECRITURE et tentez à nouveau d'exécuter l'opération une fois que l'utilisateur aura détaché la bibliothèque.

PDE-PLI043	Impossible de mettre à jour l'ancienne version de bibliothèque.

 Cause :	Une opération a tenté de mettre à jour une ancienne version de la bibliothèque.

 Action :	Si la bibliothèque en cours d'enregistrement ou de fermeture est stockée dans la base de données, la table DE_ATTACHED_LIBS doit être mise à jour. Reportez-vous aux notes d'installation de votre plate-forme pour savoir comment faire passer cette table à une version supérieure. Si la bibliothèque est stockée dans un fichier, utilisez la commande SAVE AS pour enregistrer la bibliothèque dans un fichier différent, puis renommez le fichier pour remplacer l'ancienne version d'origine.

PDE-PLI044	Impossible d'obtenir un verrou d'écriture sur <bibliothèque>. Il se peut qu'un autre processus soit en train de le lire.

 Cause :	Une opération a tenté de renommer un fichier temporaire en lui donnant le nom de fichier réel, mais n'a pas pu obtenir de verrou d'écriture sur le fichier.

 Action :	Assurez-vous que vous avez l'autorisation d'écrire dans le fichier en cours d'enregistrement et qu'aucune autre utilisation ne l'a verrouillé, ou bien enregistrez les données dans un autre fichier en utilisant la commande SAVE AS.

PDE-PLI045	Impossible de convertir le nom du fichier temporaire de <nom du fichier 1> en <nom du fichier 2>. Les données sont encore dans <nom du fichier 1>.

 Cause :	Une opération de bibliothèque a tenté sans succès de renommer un fichier temporaire en lui donnant le nom de fichier réel. Il s'en est suivi une condition d'exception et les données ont dû être laissées dans un fichier temporaire.

 Action :	Ouvrez à nouveau la bibliothèque à partir du fichier temporaire et enregistrez-la en utilisant la commande SAVE AS.

PDE-PLI046	Le numéro de révision de <bibliothèque> est supérieur au maximum autorisé.

 Cause :	La bibliothèque a été modifié un trop grand nombre de fois.

 Action :	Recréez la bibliothèque et recompilez tout.

PDE-PLU005	Unité de programme non compilée.

 Cause :	Vous avez tenté une opération sur une unité de programme qui demande à être compilée, alors qu'elle ne l'est pas.

 Action :	Compilez l'unité de programme et tentez à nouveau d'exécuter l'opération.

PDE-PLU008	Impossible de charger la référence externe <référence>.

 Cause :	Vous avez tenté une opération sur une unité de programme qui dépend d'une unité de programme externe qui doit être chargée dans Procedure Builder. L'opération a échoué parce que l'unité de programme externe n'a pas pu être localisée.

 Action :	Pour que Procedure Builder puisse résoudre la référence, effectuez l'une des opérations suivantes :

 Chargez manuellement l'unité de programme externe à partir d'un fichier ou d'une bibliothèque, puis tentez à nouveau d'exécuter l'opération.

 Attachez la référence à une bibliothèque contenant l'unité de programme externe, puis tentez à nouveau d'exécuter l'opération.

 Connectez-vous à Oracle Server, qui définit la référence externe comme une unité de programme stockée, puis tentez à nouveau d'exécuter l'opération.

PDE-PLU011	L'unité de programme référencée en externe <nom de l'unité de programme > n'a pas de symbole de débogage.

 Cause :	Vous avez tenté une opération sur une unité de programme qui demande qu'une unité de programme référencée de manière externe comporte des symboles de débogage, mais ceux-ci sont absents de l'unité de programme référencée.

 Action :	Recompilez l'unité de programme référencée dans Procedure Builder, puis tentez à nouveau d'exécuter l'opération.

PDE-PLU012	L'unité de programme <nom de l'unité de programme> n'a pas de symbole de débogage.

 Cause :	Vous avez tenté une opération sur une unité de programme qui demande des symboles de débogage, mais qui n'en a pas.

 Action :	Recompilez l'unité de programme dans Procedure Builder, puis tentez à nouveau d'exécuter l'opération.

PDE-PLU021	L'unité de programme n'a pas de source.

 Cause :	Vous avez tenté de compiler une unité de programme qui ne comporte pas de code source.

 Action :	Entrez un code source pour l'unité de programme, puis recompilez.

PDE-PLU022	Accès non autorisé à l'unité de programme stockée <unité de programme> dans le schéma <schéma>.

 Cause :	Vous avez tenté d'accéder à une unité de programme stockée à laquelle vous n'avez pas accès. Elle appartient très probablement à un autre schéma.

 Action :	Obtenez l'accès à cette unité de programme.

PDE-PLV001	Aucune pile d'exécution PL/SQL courante.

 Cause :	Vous avez tenté une opération qui inspecte ou modifie la valeur d'une variable d'une procédure locale, mais il n'y avait pas d'unité de programme PL/SQL dont l'exécution était suspendue.

 Action :	Pour inspecter ou modifier la valeur d'une variable d'une procédure locale dans Procedure Builder, vous devez exécuter une unité de programme PL/SQL et interrompre son exécution en utilisant une action de débogage. Pour plus d'informations, reportez-vous à A propos des actions de débogage.

PDE-PLV003	Aucun symbole de débogage disponible pour cette unité de programme.

 Cause :	Vous avez tenté une opération qui inspecte ou modifie la valeur d'une variable d'une procédure locale, mais cette unité de programme n'a pas suffisamment d'informations de débogage pour exécuter l'opération.

 Action :	Compilez à nouveau l'unité de programme et tentez d'exécuter l'opération.

PDE-PMS001	Le numéro d'image de pile d'appels spécifié est hors limites.

 Cause :	Vous avez tenté de passer à une image de la pile d'appels en utilisant la commande SET SCOPE, mais l'image indiquée n'existe pas.

 Action :	Entrez à nouveau la commande en indiquant une image de pile d'appels valide. Pour plus d'informations, reportez-vous à SET (Portée).

PDE-PMS002	Emplacement de travail courant non défini.

 Cause :	Vous avez tenté de définir l'emplacement de travail en cours en utilisant la commande SET.SCOPE, mais il n'y a pas de PL/SQL en cours d'exécution et, donc, pas de pile d'appels.

 Action :	La commande SET SCOPE ne peut être utilisée que lorsqu'il y a une pile d'appels PL/SQL. Pour plus d'informations, reportez-vous à SET (Portée).

PDE-PMS003	Impossible de trouver l'occurrence spécifiée de <image de l'unité de programme> au-dessus de l'emplacement de travail courant.

 Cause :	Vous avez tenté de faire remonter la pile d'appels à une image d'unité de programme spécifique en utilisant la commande SET SCOPE UP PROGRAMUNIT, mais aucune image associée à l'unité de programme indiquée n'existe au-dessus de l'image en cours.

 Action :	Entrez à nouveau la commande en indiquant le nom de l'unité de programme située au-dessus de l'image en cours dans la pile d'appels. Pour plus d'informations, reportez-vous à SET (Portée).

PDE-PMS004	Impossible de trouver l'occurrence spécifiée de <image de l'unité de programme> au-dessous de l'emplacement de travail courant.

 Cause :	Vous avez tenté de descendre dans la pile d'appels à une image d'unité de programme spécifique en utilisant la commande SET SCOPE DOWN PROGRAMUNIT, mais il n'existe pas d'image associée à l'unité de programme indiquée en dessous de l'image en cours.

 Action :	 Entrez à nouveau la commande en indiquant le nom de l'unité de programme qui se trouve en dessous de l'image en cours dans la pile d'appels. Pour plus d'informations, reportez-vous à SET (Portée).

PDE-PMS005	Impossible de définir l'emplacement de travail au-dessus de l'image de pile supérieure.

 Cause :	Vous avez tenté de monter dans la pile d'appels en utilisant la commande SET SCOPE UP, mais l'image indiquée se trouve au-delà du haut de la pile.

 Action :	Entrez à nouveau la commande en indiquant une image de pile d'appels valide. Pour plus d'informations, reportez-vous à SET (Portée).

PDE-PMS006	Impossible de définir l'emplacement de travail au-dessous de l'image de pile supérieure.

 Cause :	Vous avez tenté de descendre dans la pile d'appels en utilisant la commande SET SCOPE DOWN, mais l'image indiquée se trouve en dessous du bas de la pile.

 Action :	Entrez à nouveau la commande en indiquant une image de pile d'appels valide. Pour plus d'informations, reportez-vous à SET (Portée).

PDE-PMS007	Aucune unité de programme PL/SQL en exécution ou en suspens en ce moment.

 Cause :	Vous avez tenté une opération de Procedure Builder qui inspecte la pile d'appels ou accède à la valeur d'une variable locale, mais il n'y avait pas d'unité de programme PL/SQL dont l'exécution était active ou interrompue.

 Actions :	Si vous voulez inspecter la pile d'appels ou accéder à la valeur d'une variable locale à partir de Procedure Builder, vous devez exécuter une unité de programme PL/SQL et interrompre son exécution en utilisant une action de débogage. Pour plus d'informations, reportez-vous à A propos des actions de débogage.

PDE-PNS006	Nom d'espace de nom en double.

 Cause :	Vous avez tenté de créer un espace de nom dont le nom est identique à celui d'un autre espace de nom appartenant au même espace de nom père.

 Action :	Sélectionnez un autre nom et tentez à nouveau d'exécuter la commande.

PDE-PMS009	Impossible de trouver la bibliothèque attachée <nom de la bibliothèque>.

 Cause :	Vous avez entré le nom d'une bibliothèque attachée qui n'a pas pu être localisée.

 Action :	Vérifiez l'orthographe du nom de la bibliothèque et entrez à nouveau la commande.

PDE-PNS010	Tentative de création d'espace de nom fils associé à un père de valeur nulle.

 Cause :	Vous avez tenté de créer un espace de nom dont le père n'existe pas.

 Action :	Créez d'abord l'espace de nom père, puis le fils.

PDE-POL001	Echec d'une opération mémoire lors d'une opération sur une bibliothèque ouverte.

 Cause :	Procedure Builder n'a pas pu obtenir du système suffisamment de mémoire pour achever une opération sur une bibliothèque ouverte.

 Action :	Libérez de la mémoire ou demandez l'intervention de votre administrateur système.

PDE-POL005	Impossible d'ouvrir la bibliothèque <nom de la bibliothèque>, une bibliothèque de ce nom étant déjà ouverte.

 Cause :	Vous avez tenté d'ouvrir une bibliothèque déjà ouverte.

 Action :	Comme la bibliothèque est déjà ouverte, vous n'avez pas besoin d'essayer de l'ouvrir à nouveau.

PDE-POL007	Impossible de réacquérir le verrou sur la bibliothèque <nom de la bibliothèque>.

 Cause :	Pendant l'enregistrement ou la fermeture d'une bibliothèque, Procedure Builder déverrouille temporairement toutes les bibliothèques ouvertes conformément au modèle transactionnel Oracle. Lorsque l'opération d'enregistrement ou de fermeture est terminée, toutes les bibliothèques restant ouvertes sont reverrouillées. Cette erreur est générée si un autre utilisateur parvient à verrouiller une bibliothèque entre l'achèvement de l'opération d'enregistrement ou de fermeture et la réacquisition du verrou.

 Action :	Si la bibliothèque a été modifiée, utilisez la commande SAVE pour en créer une nouvelle, avec vos modifications. Si la bibliothèque n'a pas été modifiée, fermez-la dès que possible et ne tenez pas compte des modifications pour éviter d'écraser les modifications effectuées par un autre utilisateur. Pour plus d'informations, reportez-vous aux sections suivantes :

SAVE

CLOSE

PDE-POL008	Impossible d'enregistrer la bibliothèque <nom de la bibliothèque> - Faire enregistrement sous.

 Cause :	Vous avez entré une commande SAVE ou CLOSE pour enregistrer ou fermer une nouvelle bibliothèque ne comportant pas d'emplacement externe.

 Action :	Pour enregistrer le contenu de la bibliothèque, utilisez la commande SAVE avec l'option AS pour enregistrer vos modifications, ou la commande CLOSE avec l'option DISCARD pour ne pas tenir compte de vos modifications. Si cette erreur s'est produite pendant une opération QUIT, tentez à nouveau d'exécuter cette opération une fois la bibliothèque enregistrée ou supprimée. Pour plus d'informations, reportez-vous aux sections suivantes :

SAVE

CLOSE

PDE-POL009	Impossible d'enregistrer les informations de bibliothèque attachée pour <nom de la bibliothèque>.

 Cause :	Vous avez entré la commande SAVE pour enregistrer des informations sur la bibliothèque attachée, mais vous avez indiqué un chemin d'accès au répertoire et un nom de fichier dépassant le nombre maximum de caractères autorisé.

 Action :	Tentez à nouveau d'exécuter l'opération en utilisant un nom plus court. Utilisez pour cela la commande INSERT LOADPATH pour insérer le chemin d'accès au répertoire dans le chemin de chargement. Entrez à nouveau la commande SAVE en indiquant uniquement le nom de base de la bibliothèque. Pour plus d'informations, reportez-vous aux sections suivantes :

INSERT (Chemin de chargement)

SAVE

PDE-POL010	Essai d'ouverture de la bibliothèque générée <nom de la bibliothèque>.

 Cause :	Vous avez tenté d'ouvrir une bibliothèque générée à l'exécution uniquement (suffixe .PLX), ce qui n'est pas accepté.

 Action :	Ouvrez la bibliothèque source (suffixe .PLL).

PDE-POL011	Tentative de rétablissement de bibliothèque non enregistrée.

 Cause :	Vous avez tenté de rétablir une bibliothèque qui n'a pas été enregistrée.

 Action :	Enregistrez la bibliothèque, puis rétablissez-la.

PDE-PPR001	Aucune connexion en cours à la base de données.

 Cause :	Vous avez entré une commande de Procedure Builder, mais il n'y a aucune connexion en cours à la base de données.

 Action :	Connectez-vous à la base de données et entrez la commande à nouveau.

PDE-PPR003	Cette base de données ne prend pas en charge le débogage côté serveur.

 Cause :	Les bases de données qui précèdent la version 7.3.3 ne prennent pas en charge le débogage côté serveur.

 Action :	Consultez le Support technique Oracle à ce sujet.

PDE-PPU003	Numéro de ligne non valide spécifié à l'opération d'unité de programme.

 Cause :	Vous avez tenté une opération sur une ligne source d'unité de programme, mais vous avez indiqué un numéro de ligne hors plage.

 Action :	Tentez à nouveau d'exécuter l'opération en indiquant un numéro de ligne valide pour cette unité de programme.

PDE-PPU007	Impossible de détruire l'état compilé de <nom de l'unité de programme> tant qu'il est en exécution.

 Cause :	Vous avez tenté d'exécuter une opération (probablement à partir d'un déclencheur de débogage) qui invalide l'état compilé d'une unité de programme, mais cette opération a été interdite car l'unité de programme est en cours d'exécution.

 Action :	Différez l'opération tant que l'exécution de l'unité de programme n'a pas pris fin.

PDE-PPU008	Aucun code exécutable compilé pour la ligne source spécifiée.

 Cause :	Vous avez tenté de définir un point d'interruption ou un déclencheur de débogage pour une unité de programme, mais la ligne source indiquée ne correspond pas à un code exécutable.

 Action :	Tentez de définir à nouveau l'action de débogage en indiquant une ligne source exécutable. Pour plus d'informations, reportez-vous à A propos des lignes source exécutables.

PDE-PPU009	L'unité de programme spécifiée n'est pas compilée.

 Cause :	Vous avez tenté une opération sur une unité de programme qui demande à être compilée, alors qu'elle ne l'est pas.

 Action :	Compilez l'unité de programme et tentez à nouveau d'exécuter l'opération.

PDE-PPU014	Les unités de programme intégrées ne peuvent être ni modifiées ni éditées.

 Cause :	Vous avez tenté de modifier ou d'éditer une unité de programme intégrée, mais les opérations destructives sur les procédures internes ne sont pas autorisées.

 Action :	Vous ne pouvez qu'éditer ou modifier des unités de programme créées ou chargées dans Procedure Builder.

PDE-PPU015	Le compilateur PL/SQL n'est pas disponible.

 Cause :	Vous avez tenté une opération qui demande le compilateur PL/SQL, alors que vous étiez dans un environnement d'exécution uniquement.

 Action :	Tentez à nouveau d'exécuter l'opération dans un environnement de compilation.

PDE-PPU016	L'unité de programme <nom de l'unité de programme > en lecture seulement.

 Cause :	Vous avez tenté de modifier le code source d'une unité de programme en lecture seule.

 Action :	Vous ne pouvez pas modifier le code source d'une unité de programme en lecture seule.

PDE-PPU017	L'unité de programme source doit définir un <type de l'unité de programme>.

 Cause :	Vous avez tenté de créer ou de modifier le code source d'une unité de programme, mais le code source que vous avez fourni ne définit pas une unité de programme du type voulu.

 Action :	Editez le code source de l'unité de programme pour définir une unité de programme du type indiqué.

PDE-PPU020	L'unité de programme <unité de programme> est trop importante pour pouvoir être compilée sur cette plate-forme.

 Cause :	La taille compilée de cette unité de programme dépasse le maximum autorisé sur la plate-forme en cours.

 Action :	Tentez de diminuer la taille de l'unité de programme en la découpant en unités de programme plus petites.

PDE-PPU026	Accès non autorisé à l'unité de programme stockée <unité de programme> dans le schéma <schéma>.

 Cause :	Vous avez tenté d'accéder à une unité de programme stockée à laquelle vous n'avez pas accès. Elle appartient très probablement à un autre schéma.

 Action :	Obtenez l'accès à cette unité de programme.

PDE-PRF003	Impossible d'ouvrir le fichier de ressources <nom du fichier de ressources>.

 Cause :	Procedure Builder a tenté de charger une ressource de son fichier de ressources, mais le fichier ne s'ouvre pas.

 Action:	Réinstallez Procedure Builder et essayez à nouveau.

PDE-PSD001	Impossible de résoudre une référence à <nom de l'unité de programme> pendant le chargement de <nom de l'unité de programme>.

 Cause :	Vous avez tenté de charger une unité de programme, mais l'unité de programme ou l'objet de base de données auquel elle fait référence n'a pas pu être résolu

 Action :	L'objet non résolu peut résider dans une bibliothèque non rattachée ou dans une base de données à laquelle vous n'êtes pas connecté. Tentez à nouveau d'exécuter l'opération après avoir attaché la bibliothèque nécessaire ou vous être connecté à une base de données différente, selon le cas.

PDE-PSP006	Impossible d'ouvrir le fichier <nom du fichier>.

 Cause :	Vous avez tenté de charger une unité de programme à partir d'un fichier source, mais le fichier n'a pas pu être ouvert.

 Action :	Tentez à nouveau d'exécuter l'opération en indiquant le nom d'un fichier qui existe et que vous avez l'autorisation de lire.

PDE-PSP007	Nom d'identificateur trop long.

 Cause :	Vous avez indiqué un identificateur PL/SQL (par exemple, le nom d'une unité de programme) trop long. Les identificateurs ne peuvent pas avoir plus de 30 caractères.

 Action :	Tentez à nouveau d'exécuter l'opération en indiquant un identificateur d'un maximum de 30 caractères.

PDE-PSX006	Encadrement inexistant.

 Cause :	Vous ne pouvez pas modifier la valeur des variables dans cet encadrement.

 Action :	Choisissez un autre encadrement.

PDE-PSX007	Aucune information de débogage.

 Cause :	L'unité de programme ne comporte pas d'informations de débogage.

 Action :	Recompilez le programme en mode débogage.

PDE-PSX008	Variable inexistante dans cet encadrement.

 Cause :	La variable à laquelle vous tentez d'accéder et/ou que vous tentez de modifier n'existe pas dans l'encadrement en cours.

 Action :	Choisissez un autre encadrement ou une autre variable.

PDE-PSX010	Valeur interdite.

 Cause :	Vous avez tenté de définir une variable à une valeur non autorisée pour son type.

 Action :	Définissez la variable à une valeur autorisée.

PDE-PSX011	Attribution impossible de null à un objet not null.

 Cause :	Vous ne pouvez pas attribuer une valeur nulle à un objet dont le type est NOT NULL.

 Action :	Déclarez un type différent pour l'objet ou attribuez une valeur autre que NULL.

PDE-PSX014	Information runtime incompatible.

 Cause :	La version du package PBRUN installée sur le serveur est incompatible.

 Action :	Installez sur le serveur la version en cours du package PBRUN.

PDE-PSX017	Aucun code exécutable sur la ligne source indiquée.

 Cause :	Vous avez tenté de définir un point d'interruption sur une ligne interdite.

 Action :	Définissez le point d'interruption sur une ligne valide.

PDE-PSX018	Point d'interruption inexistant.

 Cause :	Vous avez tenté d'effectuer une opération sur un point d'interruption qui n'existe pas.

 Action :	Définissez le point d'interruption avant d'effectuer l'opération.

PDE-PSX019	Point d'interruption non utilisé.

 Cause :	Ce point d'interruption n'est pas utilisé.

 Action :	Supprimez le point d'interruption.

PDE-PSX020	Unité de programme modifiée après la définition du point d'interruption.

 Cause :	Vous avez modifié l'unité de programme après la définition du point d'interruption.

 Action :	Redéfinissez le point d'interruption.

PDE-PSX022	Fonction non prise en charge.

 Cause :	Vous avez tenté d'utiliser une fonction qui n'est pas encore prise en charge par Procedure Builder.

 Action :	Utilisez une autre méthode pour effectuer cette tâche.

PDE-PSX023	Package de débogage côté serveur PL/SQL mal installé sur le serveur.

 Cause :	Le package de débogage côté serveur PL/SQL est mal installé sur le serveur.

 Action :	Procédez à une nouvelle installation du package.

PDE-PSX033	Package de débogage côté serveur PL/SQL incompatible sur le serveur.

 Cause :	Le package de débogage côté serveur PL/SQL installé sur le serveur est incompatible avec la version en cours de Procedure Builder.

 Action :	Procédez à une nouvelle installation du package.

PDE-PSX034	Temps d'accès à la base de données dépassé.

 Cause :	Le temps d'accès à la base de données est dépassé.

 Action :	Tentez à nouveau d'accéder à la base de données. Si vous n'y parvenez pas, vérifiez auprès de votre administrateur si la base de données est arrêtée.

PDE-PSX036	Unité de programme non valide.

 Cause :	Le point d'interruption ne peut pas être défini, car l'unité de programme n'a pas été compilée correctement.

 Action :	Corrigez les erreurs dans votre unité de programme, recompilez et redéfinissez le point d'interruption.

PDE-PSX037	Cette base de données ne prend pas en charge le débogage côté serveur.

 Cause :	Les bases de données qui précèdent la version 7.3.3 ne prennent pas en charge le débogage côté serveur.

 Action :	Consultez le Support technique Oracle pour savoir comment mettre à niveau votre base de données et utiliser une version prenant en charge ce type de débogage.

PDE-PUP001	<Erreur Oracle>.

 Cause :	Vous avez tenté d'exécuter une opération dans Procedure Builder, mais sans succès à cause de cette erreur Oracle.

 Action :	Pour plus d'informations sur cette erreur, reportez-vous à la section traitant des messages d'erreur dans votre manuel Oracle Server.

PDE-PUP002	L'opération de base de données a échoué, la connexion n'étant plus valide.

 Cause :	Vous avez tenté d'exécuter une opération dans Procedure Builder, mais sans succès parce que la connexion à la base de données n'est plus valide.

 Action :	Rétablissez la connexion avec la base de données et tentez à nouveau d'exécuter l'opération.

PDE-PUP004	Impossible de se connecter à la base de données spécifiée <Erreur Oracle>.

 Cause :	Vous avez tenté de vous connecter à une base de données, mais sans succès, très probablement pour une des raisons suivantes : vous avez mal orthographié la chaîne de connexion ; vous ne pouvez pas accéder à la machine sur laquelle réside la base de données ; la base de données n'existe pas.

 Action :	Tentez à nouveau d'exécuter l'opération en vérifiant la chaîne de connexion que vous entrez. Vérifiez également votre serveur et votre réseau pour vous assurer que la base de données existe et est accessible.

PDE-PXC002	L'exécution de l'unité de programme a été arrêtée suite à une anomalie non gérée <code de l'anomalie>.

 Cause :	Vous avez exécuté une unité de programme, mais l'opération n'a pas pu être menée à bien car une anomalie a été générée sans être gérée.

 Action :	 Redéfinissez l'unité de programme pour gérer l'anomalie ou réglez la cause de l'anomalie.

PDE-PXC007	Le numéro d'image de pile d'appels spécifié est hors limites.

 Cause :	Vous avez tenté de passer à une image de la pile d'appels en utilisant la commande SET SCOPE, mais l'image indiquée n'existe pas.

 Action :	Entrez à nouveau la commande en indiquant une image de pile d'appels valide. Pour plus d'informations, reportez-vous à SET (Portée).

PDE-PXC016	L'exécution a échoué - dépendance sur état d'unité de programme compilée invalidée.

 Cause :	Vous avez tenté de reprendre l'exécution en utilisant les commandes GO ou STEP, mais l'état d'exécution PL/SQL suspendu a été invalidé par une précédente opération de Procedure Builder. Par exemple, cette erreur a pu apparaître si vous avez supprimé une unité de programme de la pile d'appels en cours à un point d'interruption, puis tenté de reprendre l'exécution en émettant la commande GO.

 Action :	Reprenez l'exécution de l'unité de programme d'origine et évitez l'opération qui a provoqué l'invalidation.

PDE-PXC017	L'exécution d'unité de programme PL/SQL est désactivée pour l'instant.

 Cause :	Vous avez tenté d'exécuter une unité de programme PL/SQL, mais l'exécution est momentanément désactivée. Par exemple, cette erreur peut apparaître si vous n'êtes pas dans le mode de simulation runtime du produit Oracle que vous utilisez.

 Action :	Ré-exécutez l'unité de programme PL/SQL en mode de simulation runtime du produit Oracle.

PDE-PXC018	Le déclencheur d'action de débogage a tenté de suspendre l'exécution.

 Cause :	Vous avez tenté de suspendre l'exécution d'une unité de programme en utilisant un déclencheur de débogage ou un déclencheur sur point d'interruption (éventuellement par appel de DEBUG.SUSPEND), mais la suspension est interdite dans ce contexte.

 Action :	Redéfinissez le déclencheur de débogage ou le point d'interruption posant problème, en supprimant du corps de déclencheur le ou les appels qui suspendent l'exécution, puis tentez à nouveau d'exécuter l'opération.

PDE-PXC019	<Erreur d'exécution de l'unité de programme>.

 Cause :	Vous avez exécuté une unité de programme, mais elle a été interrompue prématurément en raison de la génération d'une erreur d'application.

 Action :	Reportez-vous à la documentation de votre application pour toute information complémentaire concernant la cause de l'erreur et les mesures à prendre.

PDE-PXC024	Impossible d'exécuter un bloc anonyme avec des arguments.

 Cause :	Vous avez tenté d'exécuter une unité de programme anonyme (par exemple, à l'invite de commande) avec des arguments. Cette fonction n'est pas encore prise en charge.

 Action :	Ecrivez à nouveau la commande, sous forme d'un programme autonome, puis exécutez ce dernier depuis la ligne de commande.

PDE-PXC030	Commande interdite à ce stade.

 Cause :	Vous avez tenté d'effectuer une opération qui nécessite un contexte de débogage en déroulement ou arrêté (c'est-à-dire une unité de programme arrêtée à un point d'interruption), ce qui n'était pas le cas.

 Action :	Utilisez la commande uniquement lorsque l'exécution est interrompue.

PDE-SDEQT001	Aperçu produit introuvable. Réinstallez-le et essayez à nouveau.

 Cause :	Le fichier exécutable de l'Aperçu produit est introuvable.

 Action :	Réinstallez l'Aperçu produit et essayez à nouveau.

PDE-SDEUE002	La valeur de préférence de la taille d'onglet est hors limites. Utilisation de la valeur par défaut 2.

 Cause :	La valeur définie pour la préférence de taille d'onglet n'appartient pas à la plage valide (2 à 100 caractères).

 Action :	Indiquez une valeur comprise dans cette plage.

PDE-UAC003	Nom utilisateur obligatoire.

 Cause :	Vous avez sélectionné les boutons Ajouter ou Supprimer dans la boîte de dialogue Autorisation à liste d'accès, mais vous n'avez pas auparavant sélectionné ou entré d'utilisateur.

 Action :	Sélectionnez ou entrez un nom utilisateur et tentez à nouveau d'exécuter l'opération.

PDE-UAC004	L'utilisateur existe déjà dans la liste d'accès.

 Cause :	Vous avez tenté d'ajouter dans la boîte de dialogue Autorisation à liste d'accès un nom utilisateur qui existe déjà dans la liste d'accès.

 Action :	Sélectionnez ou entrez un nouveau nom utilisateur et tentez à nouveau d'exécuter l'opération.

PDE-UAL002	Bibliothèque obligatoire.

 Cause :	Vous avez sélectionné le bouton Attacher dans la boîte de dialogue Attachement de bibliothèque, mais vous n'avez pas indiqué de bibliothèque à attacher.

 Action :	Indiquez la bibliothèque à attacher dans le champ Bibliothèque avant de sélectionner le bouton Attacher.

PDE-UBK002	Unité de programme obligatoire.

 Cause :	Vous avez sélectionné le bouton OK dans la boîte de dialogue Point d'interruption, mais vous n'avez pas indiqué d'unité de programme.

 Action :	Indiquez une unité de programme pour le point d'interruption, dans le champ Unité de programme, avant de sélectionner le bouton OK.

PDE-UBK003	Numéro de ligne obligatoire.

 Cause :	Vous avez sélectionné le bouton OK, dans la boîte de dialogue Point d'interruption, mais vous n'avez pas indiqué de numéro de ligne.

 Action :	Indiquez un numéro de ligne pour le point d'interruption, dans le champ Ligne, avant de sélectionner le bouton OK.

PDE-UBK004	Le déclencheur doit représenter une portion complète de code PL/SQL.

 Cause :	Vous avez sélectionné le bouton OK dans la boîte de dialogue Point d'interruption, mais vous n'avez pas indiqué d'élément PL/SQL complet dans le champ Déclencheur.

 Action :	Indiquez un élément PL/SQL complet dans le champ Déclencheur avant de sélectionner le bouton OK.

PDE-UBP004	Défilement arrière impossible ; vous êtes sur le premier message.

 Cause :	Vous avez tenté de vous déplacer vers le haut et de sélectionner le message précédent dans la fenêtre de récapitulation des erreurs, alors que vous êtes déjà sur le premier message.

 Action :	Ne sélectionnez la touche de déplacement vers le haut que lorsque vous n'êtes pas sur le premier message.

PDE-UBP005	Défilement avant impossible ; vous êtes sur le dernier message.

 Cause :	 Vous avez tenté de vous déplacer vers le bas et de sélectionner le message suivant dans la fenêtre de récapitulation des erreurs, alors que vous êtes déjà sur le dernier message.

 Action :	Ne sélectionnez la touche de déplacement vers le bas que lorsque vous n'êtes pas sur le dernier message.

PDE-UCN002	Nom utilisateur obligatoire.

 Cause :	Vous avez sélectionné le bouton Connecter dans la boîte de dialogue Connexion, mais vous n'avez pas indiqué de nom utilisateur.

 Action :	Entrez un nom utilisateur valide, dans le champ Nom utilisateur, avant de désélectionner le bouton Connecter.

PDE-UCX005	Echec de chargement de la fenêtre de ressource <nom de la ressource>.

 Cause :	Procedure Builder a tenté sans succès de créer une fenêtre, probablement pour l'une des raisons suivantes : vous avez épuisé toutes vos ressources de fenêtres ; vous avez détecté une erreur interne.

 Action :	Si vous avez beaucoup de fenêtres ouvertes (c'est-à-dire plus de 30), fermez-en autant que nécessaire pour libérer des ressources de fenêtre, puis tentez à nouveau d'exécuter l'opération précédente. Si le problème persiste, contactez le Support technique Oracle. Pour plus d'informations à ce sujet, reportez-vous à Recours au Support technique Oracle.

PDE-UDD002	Aucun objet sélectionné.

 Cause :	Vous avez sélectionné un bouton pour exécuter une opération sur un objet de base de données, mais vous n'avez pas sélectionné ou entré le nom d'un objet de base de données sur lequel doit porter l'opération.

 Action :	Sélectionnez ou entrez le nom d'un objet de base de données et tentez à nouveau d'exécuter l'opération.

PDE-UDD003	Un nouveau nom est obligatoire.

 Cause :	Vous avez sélectionné le bouton Renommer dans la boîte de dialogue Modification de nom de bibliothèque, mais vous n'avez pas entré le nouveau nom de la bibliothèque.

 Action :	Entrez le nouveau nom de la bibliothèque dans le champ Nouveau nom et tentez à nouveau d'exécuter l'opération.

PDE-UGS002	Impossible de localiser l'unité de programme.

 Cause :	Vous avez tenté de réaliser une opération de remplacement ou d'édition sur une unité de programme que vous avez sélectionnée dans la zone de résultats de la boîte de dialogue de recherche et de remplacement dans les unités de programme, mais le système n'a pas pu localiser cette unité de programme.

 Action :	La liste des unités de programme qui apparaît dans la zone de résultats n'est peut-être pas à jour. Tentez d'effectuer une nouvelle recherche pour actualiser cette liste.

PDE-UIN002	Nom de fichier obligatoire.

 Cause :	Vous avez sélectionné le bouton Interpréteur dans la boîte de dialogue Interpréteur de script de débogage, mais n'avez pas indiqué de fichier à interpréter.

 Action :	Entrez le nom du fichier journal dans le champ Fichier et tentez à nouveau d'exécuter l'opération.

PDE-ULD002	Nom de fichier obligatoire.

 Cause :	Vous avez sélectionné le bouton Charger dans la boîte de dialogue Chargement d'unité de programme, mais vous n'avez pas indiqué de fichier à charger.

 Action :	Entrez le nom du fichier journal dans le champ Fichier et tentez à nouveau d'exécuter l'opération.

PDE-ULD003	Unité de programme <nom de l'unité de programme> chargée avec erreurs de compilation.

 Cause :	Vous avez chargé une unité de programme stockée dans un fichier en utilisant la boîte de dialogue Chargement d'unité de programme, mais l'unité de programme contient une ou plusieurs erreurs de compilation.

 Action :	Modifiez et compilez l'unité de programme chargée en utilisant l'éditeur d'unité de programme. Pour plus d'informations, reportez-vous à Editeur d'unité de programme.

PDE-ULD004	Le fichier <nom du fichier> ne contient pas de source PL/SQL valide.

 Cause :	Vous avez utilisé la boîte de dialogue Chargement d'unité de programme pour charger le contenu d'un fichier, mais le fichier que vous avez indiqué ne contient pas de code PL/SQL valide.

 Action :	Tentez à nouveau d'exécuter l'opération en entrant le nom du fichier contenant le code source PL/SQL que vous voulez charger.

PDE-ULG002	Fichier journal non indiqué.

 Cause :	Vous avez sélectionné le bouton Journal dans la boîte de dialogue Journal, mais vous n'avez pas indiqué de fichier journal.

 Action :	Entrez le nom du fichier journal dans le champ Fichier et tentez à nouveau d'exécuter l'opération.

PDE-UMG003	Défilement arrière impossible ; vous êtes sur le premier message.

 Cause :	Vous avez tenté de vous déplacer vers le haut et de sélectionner le message précédent de la fenêtre de messages, alors que vous étiez déjà sur le premier message.

 Action :	Ne sélectionnez la touche de déplacement vers le haut que lorsque vous n'êtes pas sur le premier message.

PDE-UMG004	Défilement avant impossible ; vous êtes sur le dernier message.

 Cause :	Vous avez tenté de vous déplacer vers le bas et de sélectionner le message précédent de la fenêtre de messages, alors que vous étiez déjà sur le dernier message.

 Action :	Ne sélectionnez la touche de déplacement vers le bas que lorsque vous n'êtes pas sur le dernier message.

PDE-UMP004	Défilement arrière impossible ; vous êtes sur le premier message.

 Cause :	Vous avez tenté de vous déplacer vers le haut et de sélectionner le message précédent de la fenêtre de messages, alors que vous étiez déjà sur le premier message.

 Action :	Ne sélectionnez la touche de déplacement vers le haut que lorsque vous n'êtes pas sur le premier message.

PDE-UMP005	Défilement avant impossible ; vous êtes sur le dernier message.

 Cause :	Vous avez tenté de vous déplacer vers le bas et de sélectionner le message précédent de la fenêtre de messages, alors que vous étiez déjà sur le dernier message.

 Action :	Ne sélectionnez la touche de déplacement vers le bas que lorsque vous n'êtes pas sur le dernier message.

PDE-UNP001	Nom de l'unité de programme obligatoire.

 Cause :	Vous avez sélectionné le bouton OK dans la boîte de dialogue Nouvelle unité de programme, mais vous n'avez pas indiqué de nom de l'unité de programme.

 Action :	Indiquez un nom de l'unité de programme dans le champ Nom avant de sélectionner le bouton OK.

PDE-UNP002	Une unité de programme nommée <nom> existe déjà.

 Cause :	Vous avez tenté de créer une nouvelle unité de programme stockée ayant le même nom qu'une unité de programme stockée existante.

 Action :	Indiquez un nom de l'unité de programme stockée différent, dans le champ Nom, et tentez à nouveau d'exécuter l'opération.

PDE-UNP003	Nom de l'unité de programme stockée incorrect.

 Cause :	Vous avez tenté de créer une nouvelle unité de programme stockée sous un nom non valide.

 Action :	Indiquez un nom de l'unité de programme stockée valide dans le champ Nom et tentez à nouveau d'exécuter l'opération.

PDE-UOL002	Nom de bibliothèque obligatoire.

 Cause :	Vous avez sélectionné le bouton Ouvrir dans la boîte de dialogue Ouverture de bibliothèque, mais vous n'avez pas indiqué de nom de bibliothèque.

 Action :	Indiquez un nom de bibliothèque dans le champ Bibliothèque avant de sélectionner le bouton Ouvrir.

PDE-UPF006	Impossible d'ouvrir le fichier <nom du fichier>.

 Cause :	Vous avez tenté d'exécuter une opération d'import ou d'export sur un fichier lorsque vous étiez dans un champ PL/SQL, mais le fichier n'a pas pu être ouvert.

 Action :	Pour l'import, indiquez un fichier existant. Pour l'export, indiquez un fichier pour lequel vous avez l'autorisation d'écriture. Tentez à nouveau d'exécuter l'opération.

PDE-UPW004	L'unité de programme <nom de l'unité de programme> est déjà en cours d'édition dans une autre fenêtre d'éditeur.

 Cause :	Vous avez tenté d'éditer une unité de programme qui est déjà éditée dans une autre fenêtre d'éditeur.

 Action :	Passez à la fenêtre d'éditeur ouverte pour éditer l'unité de programme.

PDE-UQT001	Aperçu produit introuvable.

 Cause :	Le fichier Aperçu produit n'a pas été installé correctement.

 Action :	Réinstallez le fichier Aperçu produit.

PDE-USR005	Chaîne de recherche obligatoire.

 Cause :	Vous avez sélectionné un bouton dans la boîte de dialogue de recherche et de remplacement pour exécuter une opération de recherche ou de remplacement, mais vous n'avez pas entré de chaîne de recherche dans le champ Rechercher.

 Action :	Entrez une chaîne de recherche dans le champ Rechercher et tentez à nouveau d'exécuter l'opération.

PDE-USR006	Expression régulière non valide.

 Cause :	Vous avez tenté de rechercher une expression régulière en utilisant la boîte de dialogue de recherche et de remplacement, mais la chaîne que vous avez entrée dans le champ Rechercher n'a pas pu être analysée.

 Action :	Vérifiez dans le champ Rechercher l'existence de caractères génériques (par exemple, (, ) et ~) que vous avez tenté d'utiliser comme caractères littéraux, sans les faire précéder d'un caractère d'échappement (\).

PDE- USW002	Le source de l'unité de programme stockée est incomplet.

 Cause :	Vous avez tenté de compiler une unité de programme stockée dans la base de données, mais le code source de cette unité de programme n'est pas un élément PL/SQL complet.

 Action :	Entrez un élément PL/SQL complet comme source de l'unité de programme stockée, puis recompilez.

PDE-UTA001	Le nom d'attribut doit être indiqué.

 Cause :	Vous avez cliqué sur le bouton OK de la boîte de dialogue Attribut sans indiquer de nom d'attribut.

 Action :	Indiquez un nom d'attribut dans la zone de texte Nom d'attribut et tentez à nouveau d'effectuer l'opération.

PDE-UTE003	Impossible d'ouvrir le fichier <nom du fichier>.

 Cause :	Vous avez tenté une opération d'import ou d'export d'un fichier alors que vous étiez dans un champ d'édition de texte, mais le fichier n'a pas pu être ouvert.

 Action :	 Pour l'import, indiquez un fichier existant. Pour l'export, indiquez un fichier pour lequel vous avez l'autorisation d'écriture.

PDE-UTG002	Nom de déclencheur obligatoire.

 Cause :	Vous avez sélectionné le bouton Enregistrer dans la boîte de dialogue Déclencheur de base de données, mais vous n'avez pas indiqué de nom de déclencheur.

 Action :	Indiquez un nom de déclencheur dans le champ Nom de déclencheur avant de sélectionner le bouton Enregistrer.

PDE-UTG003	Nom de table obligatoire.

 Cause :	Vous avez sélectionné le bouton Enregistrer dans la boîte de dialogue Déclencheur de base de données, mais vous n'avez pas indiqué de table de base.

 Action :	Indiquez une table de base pour le déclencheur, dans le champ Nom de table, avant de sélectionner le bouton Enregistrer.

PDE-UTG004	Le corps du déclencheur doit représenter une portion complète du code PL/SQL.

 Cause :	Vous avez sélectionné le bouton Enregistrer, dans la boîte de dialogue Déclencheur de base de données, mais vous n'avez pas indiqué d'élément PL/SQL complet pour le corps du déclencheur.

 Action :	Indiquez un élément PL/SQL complet pour le corps du déclencheur avant de sélectionner le bouton Enregistrer.

PDE-UTG005	Instruction de déclenchement obligatoire.

 Cause :	Vous avez sélectionné le bouton Enregistrer dans la boîte de dialogue Déclencheur de base de données, mais vous n'avez pas indiqué d'instruction SQL provoquant l'activation du déclencheur.

 Action :	Indiquez au moins une instruction SQL provoquant l'activation du déclencheur. Vous pouvez spécifier de une à trois instructions.

PDE-UTG006	Edition d'un déclencheur non valide.

 Cause :	Vous avez tenté d'éditer un déclencheur, mais n'en avez sélectionné aucun.

 Action :	Sélectionnez le bouton Nouveau pour créer un nouveau déclencheur.

PDE-UTG007	Le déclencheur contient une erreur.

 Cause :	L'erreur contenue dans le déclencheur peut être une erreur de syntaxe ou une référence non résolue.

 Action :	Editez le déclencheur.

PDE-UTM001	Le nom de méthode doit être indiqué.

 Cause :	Vous avez cliqué sur le bouton OK de la boîte de dialogue Méthode sans indiquer de nom de méthode.

 Action :	Indiquez un nom de méthode dans la zone de texte Nom de méthode et tentez à nouveau d'effectuer l'opération.

PDE-UTM002	Le nom de paramètre doit être indiqué.

 Cause :	Vous avez sélectionné le bouton permettant d'ajouter un paramètre dans la boîte de dialogue Méthode, mais vous n'avez pas indiqué de nom de paramètre.

 Action :	Indiquez un nom de paramètre dans la zone de texte Nom de paramètre et tentez à nouveau d'effectuer l'opération.

PDE-UTR002	Unité de programme obligatoire.

 Cause :	Vous avez sélectionné le bouton OK dans la boîte de dialogue Déclencheur, mais vous n'avez pas indiqué d'unité de programme.

 Action :	Indiquez une unité de programme pour le déclencheur dans le champ Unité de programme, avant de sélectionner le bouton OK.

PDE-UTR003	Numéro de ligne obligatoire.

 Cause :	Vous avez sélectionné le bouton OK dans la boîte de dialogue Déclencheur, mais vous n'avez pas indiqué de numéro de ligne.

 Action :	Indiquez un numéro de ligne pour le déclencheur, dans le champ Ligne, avant de sélectionner le bouton OK.

PDE-UTR004	Le corps du déclencheur doit représenter une portion complète du code PL/SQL.

 Cause :	Vous avez sélectionné le bouton OK dans la boîte de dialogue Déclencheur, mais n'avez pas indiqué d'élément PL/SQL complet dans le champ Corps du déclencheur.

 Action :	Indiquez un élément PL/SQL complet, dans le champ Corps du déclencheur, avant de sélectionner le bouton OK.

PDE-UTW002	Le nom de type doit être indiqué.

 Cause :	Vous n'avez saisi aucun nom de type valide.

 Action :	Indiquez un nom de type dans la zone de texte Nom de type avant de passer à l'étape suivante.

PDE-UTW003	Echec de création, dans la base de données, du type défini par l'utilisateur.

 Cause :	Vous avez tenté de créer un type défini par l'utilisateur à l'aide de l'assistant Type, mais l'opération a échoué pour des raisons inconnues.

 Action :	Examinez la commande SQL générée à la dernière page de l'assistant Type. Remédiez aux erreurs éventuelles et tentez à nouveau d'effectuer l'opération.

PDE-XDA001	Echec d'opération date.

 Cause :	Vous avez tenté sans succès d'exécuter une opération de date dans Procedure Builder.

 Action :	Pour plus d'informations, reportez-vous à la section traitant des messages d'erreur de votre manuel Oracle Server.

PDE-XGS004	Chaîne de recherche obligatoire.

 Cause :	Vous avez sélectionné un bouton dans la boîte de dialogue de recherche et de remplacement pour exécuter une opération de recherche ou de remplacement, mais vous n'avez pas entré de chaîne de recherche dans le champ Rechercher.

 Action :	Entrez une chaîne de recherche dans le champ Rechercher et tentez à nouveau d'exécuter l'opération.

PDE-XGS005	Expression régulière non valide.

 Cause :	Vous avez tenté de rechercher une expression régulière en utilisant la boîte de dialogue de recherche et de remplacement, mais la chaîne que vous avez entrée dans le champ Rechercher n'a pas pu être analysée.

 Action :	Vérifiez dans le champ Rechercher l'existence de caractères génériques (par exemple, (, ) et ~) que vous avez tenté d'utiliser comme caractères littéraux, sans les faire précéder d'un caractère d'échappement (\). Pour plus d'informations, reportez-vous à Expressions régulières.


A propos de l'assistant Type

L'assistant Type vous guide tout au long des étapes nécessaires à la création d'un nouveau type de données Oracle8 défini par l'utilisateur, par exemple un type d'objet ou d'ensemble.

Un type d'objet est un modèle qui précise les éléments ou les attributs d'une unité de données organisée. Les attributs peuvent être des types de données intégrés ou d'autres unités de données organisées. Le type d'objet indique également les opérations ou les méthodes pouvant être exécutées sur l'unité de données. Les méthodes sont des fonctions ou des procédures écrites en langage PL/SQL, et stockées dans la base de données. Elles peuvent également être écrites en langage C et stockées en externe.

Un type d'ensemble peut être soit un type de table, soit un type de tableau variable. Chaque type d'ensemble décrit une unité de données composée d'un nombre indéfini d'éléments, tous du même type.

Un type de table ou une table imbriquée constitue un groupe non ordonné d'éléments de données. Il dispose d'une seule colonne qui peut être un type de données intégré ou un type d'objet. S'il s'agit d'un type d'objet, la table peut également être affichée en tant que table multicolonne, une colonne étant réservée à chaque attribut du type d'objet.

Un type de tableau variable (VARRAY) est un groupe ordonné d'éléments de données. Le nombre des éléments est variable et correspond à la taille du tableau. Vous devez préciser une taille maximale lorsque vous déclarez un type de tableau variable.

Vous pouvez utiliser l'assistant Type pour créer un type d'objet (avec des attributs et des méthodes), un type de table ou un type de tableau variable. Employez-le notamment pour effectuer les tâches suivantes :

•	indiquer le nom, les attributs et les méthodes d'un type d'objet ;

•	indiquer le nom et les informations relatives au type de données d'un type de table ou d'un type de tableau variable ;

•	ajouter, modifier ou supprimer les attributs d'un type d'objet ;

•	ajouter, modifier ou supprimer les méthodes d'un type d'objet ;

•	définir les restrictions relatives aux méthodes d'un type d'objet.

Navigation dans l'assistant Type

Les boutons suivants vous permettent de naviguer dans les pages :

•	Annuler : annule toutes les modifications que vous avez apportées et quitte l'assistant.

•	Aide : affiche le texte d'aide en ligne correspondant à la page en cours dans l'assistant.

•	Précédent : vous fait revenir à la page précédente de l'assistant.

•	Suivant : vous fait passer à la page suivante de l'assistant.

•	Fin : enregistre les modifications apportées à l'aide de l'assistant et ferme ce dernier.

Remarque : Si vous cliquez sur le bouton Suivant ou Précédent avant d'avoir entré toutes les informations nécessaires sur une page particulière, l'assistant ne vous autorise pas à accéder à la page suivante (ou précédente). De même, si vous n'avez pas entré toutes les informations adéquates dans l'assistant lorsque vous cliquez sur Fin, l'assistant vous fait passer automatiquement à la page sur laquelle vous pourrez saisir les informations manquantes.


Assistant Type : page Sélection de type

  Etape suivante	  Rubriques connexes

Pour sélectionner un type Oracle8 à créer :

1	Dans la page de sélection de type, cliquez sur le bouton d'option correspondant au type que vous souhaitez créer, c'est-à-dire Objet ou Ensemble.

Si vous sélectionnez :

•	Objet, l'assistant Type vous permet d'ajouter des attributs et des méthodes.

•	Ensemble, l'assistant Type vous permet d'indiquer le type d'ensemble et son type de données.

2	Entrez un nom dans la zone de saisie Nom de type.

3	Cliquez sur Suivant pour afficher la page Type d'objet ou Type d'ensemble suivante, selon le type que vous avez sélectionné.


Assistant Type : page Définition des attributs de type d'objet

  Etape suivante	  Rubriques connexes

Pour ajouter un attribut :

  Dans la page Définition des attributs de type d'objet, cliquez sur Ajouter.

La boîte de dialogue d'attribut apparaît.

Pour modifier un attribut :

  Dans la page Définition des attributs de type d'objet, sélectionnez un attribut, puis cliquez sur Editer.

Ou,

  Cliquez deux fois sur un attribut dans la zone de liste.

La boîte de dialogue d'attribut apparaît.

Pour supprimer un attribut :

1	Dans la page Définition des attributs de type d'objet, sélectionnez un attribut, puis cliquez sur Supprimer.

Dans la zone de message qui apparaît, confirmez la suppression.

2	Cliquez sur Oui pour supprimer l'attribut en surbrillance.

Pour changer l'ordre de définition des attributs :

  Dans la zone de liste, cliquez sur l'attribut à déplacer, puis faites-le glisser jusqu'à l'emplacement de votre choix.

Effectuez cette opération pour modifier l'ordre des paramètres dans la méthode de construction implicite du type d'objet. (La méthode du constructeur crée une instance de ce type.)

Les paramètres de la méthode de construction correspondent aux attributs du type d'objet et apparaissent dans le même ordre que celui des définitions des attributs de ce type.


Boîte de dialogue d'attribut

Cette boîte de dialogue vous permet d'ajouter un nouvel attribut à un type d'objet ou de modifier un attribut existant.

Nom d'attribut	Entrez le nom de l'attribut.
Type de données	Entrez un type de données intégré ou choisissez-en un dans la liste déroulante. Pour parcourir les types d'objet disponibles, cliquez sur le bouton ... pour faire apparaître la boîte de dialogue de sélection de type.
Longueur	Entrez un nombre ou sélectionnez-le à l'aide des flèches vers le haut et vers le bas. La valeur par défaut est NULL.
Précision	(réservé aux types de données numériques)  Entrez le nombre total de chiffres de votre choix.
Echelle	(réservé aux types de données numériques) Entrez une valeur pour indiquer le nombre de chiffres devant figurer après le séparateur décimal.


Boîte de dialogue de sélection de type

Utilisez la boîte de dialogue de sélection de type pour parcourir et sélectionner des types de données Oracle8 existants définis par l'utilisateur et auxquels vous avez accès dans la base de données actuellement connectée.

Type	Choisissez Objet, Collecte ou Tout pour afficher les types de données appropriés qui sont la propriété de l'utilisateur dont le nom apparaît dans la liste déroulante Propriétaire. Lorsque vous définissez un type d'objet, vous pouvez en sélectionner un autre ou choisir un type d'ensemble comme type de données de l'objet. Lorsque vous définissez un type d'ensemble, vous ne pouvez pas en sélectionner un autre comme type de données de l'objet. L'option TOUT (ALL) n'est pas disponible lorsque vous définissez un type d'ensemble.
Propriétaire	Fait apparaître la liste déroulante des propriétaires des types de données définis par l'utilisateur auxquels vous avez accès. Choisissez le nom d'un propriétaire ou sélectionnez TOUT (ALL) pour afficher les types de données de tous les propriétaires.
Zone de liste	Affiche le type et le nom des types de données sélectionnés dans les champs Type et Propriétaire. Vous ne voyez apparaître que les types de données auxquels vous avez accès. Si l'option TOUT (ALL) est sélectionnée dans le champ Propriétaire, chaque nom de la liste est précédé du nom du schéma en notation à point. Si l'option TOUT (ALL) est sélectionnée dans le champ Type, chaque nom apparaît avec son type entre parenthèses. Sélectionnez le nom d'un type de données dans la liste en cliquant dessus.
Référence à l'objet	Cochez cette case pour choisir une référence d'objet (REF) du type sélectionné dans la zone de liste. Désélectionnez cette option pour choisir une instance d'objet du type sélectionné (mis en surbrillance) dans la zone de liste. Réservé aux types d'objet.
OK	Sélectionne le type de données mis en surbrillance dans la liste et ferme la boîte de dialogue.


Assistant Type : page Définition des méthodes de type d'objet

  Etape suivante	  Rubriques connexes

Les méthodes sont des fonctions et des procédures écrites en langage PL/SQL, et placées dans la base de données. Elles peuvent également être écrites en langage C et stockées en externe. Les méthodes caractérisent le comportement du type d'objet.

Pour ajouter une méthode :

  Dans la page Définition des méthodes de type d'objet, cliquez sur Ajouter.

La boîte de dialogue de méthode apparaît.

Pour modifier une méthode :

  Dans la page Définition des méthodes de type d'objet, sélectionnez une méthode, puis cliquez sur Editer.

Ou,

  Cliquez deux fois sur une méthode dans la zone de liste.

La boîte de dialogue de méthode apparaît.

Pour supprimer une méthode :

1	Dans la page Définition des méthodes de type d'objet, sélectionnez une méthode, puis cliquez sur Supprimer.

Dans la zone de message qui apparaît, confirmez la suppression.

2	Cliquez sur Oui pour supprimer la méthode en surbrillance.

Pour modifier les restrictions relatives aux méthodes d'un type d'objet :

  Dans la page Définition des méthodes de type d'objet, cliquez sur Modifier.

La boîte de dialogue de restrictions par défaut apparaît.


Boîte de dialogue de restrictions par défaut

Cette boîte de dialogue vous permet d'indiquer les restrictions PRAGMA par défaut concernant les méthodes d'un type d'objet. Ces restrictions s'appliquent aux fonctions membres appelées à partir des instructions SQL. Elles refusent aux fonctions membres l'accès en lecture/écriture aux tables de base de données, aux variables en package ou aux deux.

Pour indiquer les contraintes PRAGMA par défaut relatives aux méthodes d'un type d'objet :

  Sélectionnez ou désélectionnez les options de votre choix.

Remarque : Vous pouvez attribuer des restrictions PRAGMA à chaque fonction membre. Elles remplacent les restrictions par défaut.


Boîte de dialogue de méthode

Cette boîte de dialogue se compose de deux pages : Définition et Restrictions, qui vous permettent de définir une méthode de type d'objet et ses paramètres, ainsi que les restrictions du type.

Dans la page Définition, vous pouvez préciser le nom et le type de la méthode, ainsi que des paramètres facultatifs. Pour les fonctions, vous pouvez indiquer un type de retour. Cette page contient les éléments suivants :

Nom de méthode	Entrez le nom de la méthode. Ce nom doit être différent de celui du type d'objet ou de celui de tout attribut du type d'objet.
Type de méthode	Choisissez un type de méthode dans cette liste déroulante. Les types de méthode disponibles sont les suivants : Procédure, Fonction, Fonction de correspondance et Fonction de tri. Fonction de correspondance et Fonction de tri sont des méthodes de comparaison. Vous pouvez indiquer une fonction de topographie ou de tri pour un type d'objet, et non les deux.
Type de retour	Pour les fonctions, choisissez un type de retour dans cette liste déroulante.
Nom de paramètre	Entrez le nom d'un paramètre.
Type de données	Dans la liste déroulante, choisissez un type de données intégré. Pour consulter la liste des types d'objet existants, cliquez sur le bouton ... pour faire apparaître la boîte de dialogue de sélection de type.
Direction	Dans la liste déroulante, choisissez l'une des options IN, OUT ou IN/OUT.
Valeur par défaut	Entrez une valeur par défaut pour le paramètre.
	Cliquez sur cette icône pour ajouter le paramètre à la liste. Le contenu du champ Nom de paramètre est effacé.
	Cliquez sur cette icône pour supprimer de la liste le paramètre en surbrillance. Un message apparaît et vous invite à confirmer la suppression.
Zone de liste	Affiche la liste des paramètres définis pour la méthode. Pour changer l'ordre des définitions de paramètre dans la zone de liste, cliquez sur un paramètre et faites-le glisser vers l'emplacement de votre choix.

La page Restrictions vous permet de passer outre aux restrictions Pragma par défaut déjà définies pour le type d'objet. Les restrictions Pragma s'appliquent aux fonctions membres appelées à partir d'instructions SQL. Elles refusent à ces fonctions tout droit d'accès en lecture/écriture sur les tables de base de données, les variables en package, ou les deux. Cette page contient les éléments suivants :

Remplacer restrictions par défaut	Cochez cette case pour utiliser les restrictions de méthode à la place des restrictions par défaut, puis indiquez les contraintes en sélectionnant ou désélectionnant les options ci-dessous. Désélectionnez cette option pour utiliser les restrictions Pragma par défaut. Les options suivantes sont désactivées lorsque vous désélectionnez cette option.
RNDS, WNDS, RNPS, WNPS	Cochez la case appropriée pour appliquer la règle. Désélectionnez la case appropriée pour supprimer la règle.


Assistant Type : page Définition du type d'ensemble

  Etape suivante	  Rubriques connexes

Pour définir un type d'ensemble :

1	Dans la page Définition du type d'ensemble, cliquez sur le bouton d'option correspondant au type que vous souhaitez créer, Table ou Tableau variable (VARRAY).

2	Si vous créez un tableau variable, entrez sa taille maximale dans la zone de saisie Limite.

3	Cliquez sur la flèche située à droite de la liste déroulante Type de données pour choisir un type de données intégré. Pour sélectionner un type d'objet existant, cliquez sur le bouton ... pour faire apparaître la boîte de dialogue de sélection de type.

4	Dans la zone Longueur (si elle est activée), entrez un nombre.

5	(réservé aux types de données numériques) Dans la zone Précision, entrez le nombre de chiffres total.

6	(réservé aux types de données numériques) Dans la zone Echelle, entrez le nombre de chiffres devant figurer après le séparateur décimal.


Assistant Type : page Fin

  Rubriques connexes

La dernière page de l'assistant Type affiche l'instruction SQL qui va générer le type Oracle8 que vous venez de définir. Cette page est en lecture seule ; vous ne pouvez pas modifier l'instruction SQL.

Lorsque vous cliquez sur Fin, l'assistant Type effectue les opérations suivantes :

•	Pour les types d'ensemble, il envoie l'une des instructions SQL CREATE TYPE AS TABLE ou CREATE TYPE AS VARYING ARRAY à la base de données.

•	Pour les types d'objet, il envoie à la base de données l'instruction SQL CREATE TYPE AS OBJECT. Si le type indiqué est non valide ou incomplet, un astérisque (*) apparaît à la suite du libellé Type d'objet dans le Navigateur d'objet.

•	Pour les types d'objet comportant des méthodes, il crée un premier corps d'objet qu'il affiche dans l'Editeur d'unité de programme stockée. Vous devez entrer les informations relatives aux méthodes, puis cliquer sur Enregistrer. L'instruction SQL CREATE TYPE BODY est envoyée à la base de données. Si le corps de l'objet n'est pas valide, des messages d'erreur apparaissent dans la fenêtre des messages de compilation. Un astérisque (*) apparaît à la suite du libellé Corps de l'objet dans le Navigateur d'objet.

Remarque : L'assistant Type stocke le type d'objet ou le type d'ensemble sur le serveur de base de données Oracle8 auquel vous êtes connecté.


A propos de l'assistant Type

  Rubriques connexes

L'assistant Type constitue le moyen le plus rapide et le plus facile de créer un type de données Oracle8 défini par l'utilisateur. Il vous guide dans les étapes nécessaires à la création d'un nouveau type d'objet ou un type d'ensemble, c'est-à-dire un type de table ou un type de tableau variable (VARRAY). Vous ne pouvez pas utiliser l'assistant Type pour modifier un type existant.

Utilisez plus particulièrement l'assistant Type pour effectuer les tâches suivantes :

•	indiquer le nom, les attributs et les méthodes d'un type d'objet ;

•	indiquer le nom et les informations relatives au type de données d'un type de table ou d'un type de tableau variable ;

•	ajouter, modifier ou supprimer les attributs d'un type d'objet ;

•	ajouter, modifier ou supprimer les méthodes d'un type d'objet ;

•	définir les restrictions relatives aux méthodes d'un type d'objet.


Création d'un type de données Oracle8 défini par l'utilisateur à l'aide de l'assistant Type

  Rubriques connexes

Vous devez être connecté à un serveur de base de données Oracle8 pour créer un type de données Oracle8.

Pour créer un nouveau type de données Oracle8 défini par l'utilisateur :

1	Dans le Navigateur d'objet, développez le noeud Objets de base de données.

2	Développez le noeud du schéma où vous souhaitez créer un type de données.

3	Cliquez sur le noeud Types sous le schéma.

4	Cliquez sur [image] dans la barre d'outils du Navigateur ou choisissez Navigateur [image] Créer dans le menu pour afficher l'assistant Type.

5	Suivez les étapes pour créer un type d'objet ou un type d'ensemble. Pour obtenir des informations complémentaires, reportez-vous à l'aide de l'assistant Type.

L'assistant Type crée et stocke le type d'objet ou le type d'ensemble sur le serveur de base de données Oracle8 auquel vous êtes connecté.


Modification d'un type de données Oracle8 défini par l'utilisateur

  Rubriques connexes

L'éditeur d'unité de programme stockée permet de modifier les types d'objet et de collecte existants.

Vous pouvez éditer la spécification du type des objets et des collectes. Cette spécification sert à déclarer les attributs de la structure de données. Dans le cas de types d'objet, la spécification indique également les méthodes facultatives de manipulation des données.

Vous pouvez également éditer le corps des types d'objet, qui définit de manière complète les méthodes et met en oeuvre la spécification. Vous pouvez déboguer ou remplacer le corps sans changer la spécification du type.

Pour modifier le type d'un objet ou le type d'un ensemble :

  Dans le Navigateur d'objet, cliquez deux fois sur l'icône d'un type pour afficher sa définition dans l'Editeur d'unité de programme stockée.

Ou,

  Dans le menu instantané obtenu en cliquant sur un type dans le Navigateur d'objet (cliquez sur le bouton droit de la souris sous Windows), cliquez sur Editer type pour afficher la définition du type dans l'Editeur d'unité de programme stockée.

Ou,

  Dans la liste déroulante Nom de l'Editeur d'unité de programme stockée, cliquez sur un nom de type pour en afficher le code source.

Remarque : Les attributs et les restrictions par défaut d'un type d'objet font partie de sa définition.

Pour modifier les méthodes d'un type d'objet :

  Dans le menu instantané concernant un type d'objet dans le Navigateur d'objet (cliquez sur le bouton droit de la souris sous Windows), cliquez sur Editer corps pour afficher le corps de l'objet (méthodes) dans l'Editeur d'unité de programme stockée.

Ou,

  Dans la liste déroulante Nom de l'Editeur d'unité de programme stockée, cliquez sur un nom de type d'objet pour en afficher la source.


Suppression d'un type de données Oracle8 défini par l'utilisateur

  Rubriques connexes

Un message apparaît si vous supprimez un type de données défini par l'utilisateur et vous invite à confirmer cette suppression.

Pour supprimer un type de données défini par l'utilisateur :

 Dans le Navigateur d'objet, cliquez sur un type d'objet, un type de table ou un type de tableau variable, puis choisissez Navigateur [image] Supprimer dans le menu ou cliquez sur [image] dans la barre d'outils.

Ou,

 Sélectionnez un nom de type dans la liste déroulante Nom de l'Editeur d'unité de programme stockée, puis cliquez sur Eliminer pour supprimer ce type.

Remarque : Vous ne pouvez pas supprimer un type référencé dans un autre type de données, dans un objet imbriqué ou dans un objet REF. Vous devez supprimer ces références pour pouvoir supprimer la définition du type.


A propos des types d'objet Oracle8 définis par l'utilisateur
A propos des types d'objet Oracle8 définis par l’utilisateur

  Rubriques connexes

Oracle8 est un système de gestion de base de données relationnelle basé sur les objets. Vous pouvez donc définir des types de données supplémentaires en précisant les données et les méthodes de manipulation de ces données, puis utiliser ces types de données dans le modèle relationnel.

Il existe deux catégories de types de données définis par l'utilisateur : les types d'objet et les types de collecte. Les types de données définis par l'utilisateur emploient des types de données intégrés (tels que CHAR, VARCHAR2 et NUMBER) et d'autres qui sont définis par l'utilisateur, comme base de la structure et du comportement des données dans les applications.

Un type d'objet sert de modèle pour les objets. Il indique les éléments (ou attributs) qui composent une unité de données structurée, comme un ordre d'achat. Certains attributs, comme la liste des lignes d'articles, peuvent former d'autres unités de données structurées. Un type d'objet indique également les opérations (ou méthodes) que vous pouvez effectuer sur l'unité de données, par exemple l'évaluation de la valeur totale d'un ordre d'achat.

Les types de collecte décrivent les unités de données qui sont composées d'un nombre illimité d'éléments, tous du même type. Les types de collecte sont les types de tableau variable et les types de table.

Un type de tableau variable indique l'unité de données VARRAY, qui est un ensemble trié d'éléments de données de même type. Le nombre d'éléments de l'unité VARRAY (ou taille de cette unité) est variable. Cependant, vous devez indiquer une taille maximale lorsque vous définissez le type de tableau variable.

Un type de table indique une unité de données appelée table imbriquée, qui correspond à un ensemble non trié d'éléments de données de même type. Une table imbriquée ne comporte qu'une seule colonne, de type procédure interne ou objet.


A propos de l'utilitaire de conversion PL/SQL V1

  Rubriques connexes

L'utilitaire de conversion PL/SQL V1 facilite l'automatisation de la mise à niveau de vos applications écrites en PL/SQL V1 ou V2.

Si les déclencheurs, les unités de programme et les blocs PL/SQL de vos applications Forms, états et affichages version 1 sont écrits en PL/SQL V1 ou V2, le code correspondant doit être mis à niveau. Sinon, vous risquez deux types de problèmes :

•	Une partie du code PL/SQL V1 ou V2 n'est pas valide, sur le plan syntactique, dans les versions ultérieures et génère une erreur de compilation.

•	Une partie du code PL/SQL V1 ou V2 est correcte sur le plan syntactique dans les versions ultérieures, mais a une signification différente, qui entraîne un comportement inattendu ou incorrect.

L'utilitaire de conversion gère ces deux types de problèmes.


Fonctionnement de l'utilitaire de conversion PL/SQL V1

  Rubriques connexes

Vous pouvez utiliser l'utilitaire de conversion de manière interactive ou en mode de traitement par lots. Dans un cas comme dans l'autre, c'est vous qui décidez si l'utilitaire doit mettre votre code à jour. Le mode interactif offre une plus grande flexibilité, car vous pouvez effectuer certaines corrections en automatique et d'autres en manuel. En mode de traitement par lots, l'utilitaire exécute lui-même toutes les conversions ou n'en exécute aucune. Quel que soit le mode choisi, un récapitulatif du processus de conversion est transmis à un fichier journal appelé module.plg.

Pour exécuter l'utilitaire de manière interactive, ouvrez une application Forms, un état, un affichage ou une bibliothèque contenant un code PL/SQL V1 ou V2 dans le Builder associé.

Pour exécuter l'utilitaire en mode de traitement par lots, reportez-vous aux rubriques suivantes :

•	Conversion d'applications Forms en mode de traitement par lots

•	Conversion d'états en mode de traitement par lots

•	Conversion d'affichages en mode de traitement par lots

Conseil

L'utilitaire de conversion peut faire évoluer votre code pour régler plusieurs incompatibilités de V1 ou V2, mais ne peut pas régler tous les problèmes. Ceux qui ne peuvent pas être réglés entraînent des erreurs de compilation, qui sont énumérés dans la boîte de dialogue de récapitulatif de conversion (mode interactif) de PL/SQL V1 ou dans le fichier journal, afin que vous puissiez les régler manuellement. Pour plus d'informations, reportez-vous à Conversions que l'utilitaire ne peut pas effectuer .

Lorsque l'utilitaire a converti et enregistré une application, même si vous décidez de ne pas tenir compte des conversions suggérées, l'utilitaire n'est jamais appelé à nouveau pour cette application, pour ne pas écraser accidentellement vos modifications manuelles.


Avant de choisir le mode à utiliser, tentez de convertir interactivement quelques modules pour chaque type. Vous aurez alors une idée des difficultés associées à chaque module et pourrez déterminer la marche à suivre. Par exemple, vous pourriez découvrir que vos applications Forms nécessitent un contrôle assidu que vous offre le mode interactif, alors que vos états et vos bibliothèques PL/SQL peuvent être convertis en toute sécurité en mode de traitement par lots.


Utilisation interactive de l'utilitaire de conversion PL/SQL V1

  Rubriques connexes

Pour utiliser de manière interactive l'utilitaire de conversion, ouvrez une grille, un état, un affichage ou une bibliothèque contenant le code PL/SQL V1 ou V2 dans l'application Builder associée, puis enregistrez cette dernière.

Important :

•	Lorsque l'utilitaire de conversion a converti une application même si vous décidez de ne pas tenir compte des conversions suggérées l'utilitaire n'est jamais appelé à nouveau pour cette application, pour ne pas écraser accidentellement vos modifications manuelles.

Toute instruction PL/SQL V1 ou V2 dans votre déclencheur, votre bloc PL/SQL ou votre unité de programme apparaît dans la boîte de dialogue Conversion. Cette dernière explique aussi les mesures que prendra l'utilitaire de conversion si vous choisissez d'effectuer la conversion. Vous pouvez décider d'accepter ou d'ignorer la modification proposée, de convertir l'application entière ou encore d'arrêter entièrement le processus. (Vous pouvez aussi utiliser la boîte de dialogue des options de conversion de PL/SQL V1 pour définir les paramètres qui contrôlent le processus de conversion.)

L'utilitaire effectue le suivi des modifications effectuées (et de celles que vous n'avez pas appliquées) et les résume à l'issue du processus de conversion dans un fichier journal appelé module.plg. Vous pouvez ensuite appeler l'Editeur PL/SQL pour mettre l'application à jour manuellement.


Utilisation de l'utilitaire de conversion PL/SQL V1 en mode de traitement par lots

  Rubriques connexes

Pour exécuter l'utilitaire en mode de traitement par lots, reportez-vous aux rubriques suivantes :

•	Conversion d'applications Forms en mode de traitement par lots

•	Conversion d'états en mode de traitement par lots

•	Conversion d'affichages en mode de traitement par lots


Conversion d'applications Forms en mode de traitement par lots

  Rubriques connexes

Pour convertir une application Forms en mode de traitement par lots :

1	Assurez-vous que vous avez converti toutes les bibliothèques PL/SQL attachées à l'application Forms.

2	Puis :

•	Lancez la version GUI de Form Compiler

•	Exécutez Form Compiler à partir de la ligne de commande.

Quelle que soit la méthode choisie, un récapitulatif du processus est automatiquement écrit dans le fichier journal module.plg, où module est le nom du module application Forms converti.

Note d'utilisation :

•	Lorsque l'utilitaire de conversion a converti une application même si vous décidez de ne pas tenir compte des conversions suggérées l'utilitaire n'est jamais appelé à nouveau pour cette application, pour ne pas écraser accidentellement vos modifications manuelles.


Conversion d'applications Forms à l'aide de la version GUI de Form Compiler

Pour convertir une application Forms à l'aide de la version GUI de Form Compiler :

1	Cliquez deux fois sur l'icône Form Compiler.

2	Sélectionnez le type de module et l'accès module appropriés.

3	Sélectionnez la case Voulez-vous faire passer PL/SQL de V1 à V2.3 ?.

4	Cliquez sur OK.


Conversion d'applications Forms à partir de la ligne de commande

  Rubriques connexes

Pour convertir une application Forms à l'aide de Form Compiler dans la ligne de commande :

  Dans la ligne de commande, entrez :

<Form Compiler> MODULE=form BATCH=yes UPGRADE_PLSQL=yes UPGRADE=yes

où :

<Form Compiler>	Est le nom de l'exécutable Form Compiler sur votre plate-forme.
Form	Est le nom de l'application Forms à convertir.
Notes d'utilisation :

•	Si vous indiquez UPGRADE_PLSQL=YES sans indiquer également UPGRADE=YES, le système génère un message d'erreur. Comme vous ne pouvez pas convertir le PL/SQL d'une application Forms sans faire passer la totalité de l'application Forms à la version 6.0, UPGRADE=YES doit être indiqué lorsque UPGRADE_PLSQL= YES.

•	Pour convertir plusieurs affichages à la fois, utilisez Project Builder. Reportez-vous à la rubrique d'aide de Project Builder, Choix d'une méthode de mise à niveau.


Conversion de bibliothèques PL/SQL attachées à une application Forms

Pour convertir une bibliothèque PL/SQL de manière interactive :

  Ouvrez la bibliothèque dans Form Builder, puis enregistrez-la.

Pour convertir une bibliothèque PL/SQL à l'aide de la version GUI du Form Compiler :

1	Cliquez deux fois sur l'icône Form Compiler.

2	Dans le champ Fichier, sélectionnez la bibliothèque PL/SQL à convertir.

3	Dans le champ Ecrire sortie dans fichier, assurez-vous que le fichier cible a l'extension .PLL.

4	Cliquez sur OK.

Pour convertir une bibliothèque PL/SQL à l'aide de Form Compiler dans la ligne de commande :

  Dans la ligne de commande, entrez :

<Form Compiler> MODULE=library BATCH=yes UPGRADE_PLSQL=yes UPGRADE=yes

où :

<Form Compiler>	Est le nom de l'exécutable Form Compiler sur votre plate-forme.
library	Est le nom de la bibliothèque à convertir.
Note d'utilisation :

•	Si vous indiquez UPGRADE_PLSQL=YES sans indiquer également UPGRADE=YES, le système génère un message d'erreur. Comme vous ne pouvez pas convertir le PL/SQL d'une application Forms sans faire passer la totalité de l'application Forms à la version 6.0, UPGRADE=YES doit être indiqué lorsque UPGRADE_PLSQL= YES.

•	Pour convertir plusieurs affichages à la fois, utilisez Project Builder. Reportez-vous à la rubrique d'aide de Project Builder, Choix d'une méthode de mise à niveau.


Indication des paramètres du compilateur Form Builder

Le tableau ci-dessous décrit l'incidence des différentes combinaisons de paramètres BATCH, UPGRADE, et UPGRADE_PLSQL sur le processus de conversion :

BATCH	UPGRADE_PLSQL	UPGRADE	Comportement
NO	YES	YES	Le PL/SQL de l'application Forms est converti en mode de traitement par lots (même si BATCH=NO). L'utilitaire ne peut pas être appelé de manière interactive à l'extérieur du Builder.
YES	YES	YES	Le PL/SQL de l'application Forms est converti en mode de traitement par lots.
NO	NO	YES	Le PL/SQL de l'application Forms n'est pas converti, mais une liste de suggestions de conversions est écrite dans module.plg. Le reste de l'application Forms est converti en version 6.0.
YES	NO	YES	Le PL/SQL de l'application Forms n'est pas converti, mais une liste de suggestions de conversions est écrite dans module.plg. Le reste de l'application Forms est converti en Version 6.0.
NO	NO	NO	Utilisé pour compiler un nouveau FMX sans modifier le FMB. Si l'application Forms contient un PL/SQL Version 1.3, vous pouvez constater l'existence d'erreurs de compilation, ou le comportement du code peut être différent.
YES	NO	NO	Utilisé pour compiler un nouveau FMX sans modifier le FMB. Si l'application Forms contient un PL/SQL Version 1.3, vous pouvez constater l'existence d'erreurs de compilation, ou le comportement du code peut être différent.
Important :

Si vous mettez à niveau 45FMT vers 60FMB et que vous n'indiquiez pas l'option UPGRADE_PLSQL, le PL/SQL de l'application Forms n'est pas converti, mais une liste de conversions proposées est consignée dans le fichier journal. Ce fichier est placé dans le répertoire en cours, qui peut être différent du répertoire dans lequel se trouve le fichier FMT.


Conversion d'états en mode de traitement par lots

Pour convertir un état en mode de traitement par lots :

1	Assurez-vous que vous avez converti toutes les bibliothèques PL/SQL attachées à l'état.

2	Puis :

•	Lancez la version GUI du Report Compiler

•	Exécutez le Report Compiler à partir de la ligne de commande.

Quelle que soit la méthode choisie, un récapitulatif du processus est automatiquement écrit dans le fichier journal module.plg, où module est le nom du module état converti. Le programme génère un journal séparé pour chaque module.

Note d'utilisation :

•	Lorsque l'utilitaire de conversion a converti une application même si vous décidez de ne pas tenir compte des conversions suggérées l'utilitaire n'est jamais appelé à nouveau pour cette application, pour ne pas écraser accidentellement vos modifications manuelles.


Conversion d'états à l'aide de la version GUI de Report Compiler

Pour convertir un ou plusieurs états à l'aide de la version GUI de Report Compiler :

1	Cliquez deux fois sur l'icône Report Compiler.

2	Dans le champ Type de document, sélectionnez Etat.

3	Choisissez les types Source et Destination appropriés.

4	Utilisez le bouton Parcourir du champ Source pour localiser le ou les états à convertir.

5	Utilisez le bouton Parcourir du champ Destination pour sélectionner la destination de l'état converti.

6	Cliquez sur OK.


Conversion d'états à partir de la ligne de commande

Pour convertir un ou plusieurs états à partir de la ligne de commande :

  Dans la ligne de commande, entrez :

<Report Compiler> SOURCE=rep1,rep2, UPGRADE_PLSQL=yes

où :

<Report Compiler>	Est le nom de l'exécutable Report Compiler sur votre plate-forme.
Rep1,rep2,	Est le nom du ou des états à convertir.


Conversion de bibliothèques PL/SQL attachées à un état

Pour convertir une bibliothèque PL/SQL de manière interactive :

  Ouvrez la bibliothèque dans Report Builder, puis enregistrez-la.

Pour convertir une bibliothèque PL/SQL à l'aide de la version GUI du Report Compiler :

1	Cliquez deux fois sur l'icône Report Compiler.

2	Dans le champ Type de document, indiquez Bibliothèque PL/SQL.

3	Dans le champ Type source, indiquez .PLL.

4	Dans le champ Type de destination, indiquez .PLL ou .PLX. Si vous indiquez .PLD, le PL/SQL V1 ou V2 ne sera pas converti.

Pour convertir une bibliothèque PL/SQL à l'aide le Report Compiler dans la ligne de commande :

  Dans la ligne de commande, entrez :

<Report Compiler> SOURCE=lib1,lib2, UPGRADE_PLSQL=yes

où :

<Report Compiler>	Est le nom de l'exécutable Report Compiler sur votre plate-forme.
lib1, lib2	Est le nom de la ou des bibliothèques à convertir.
Note d'utilisation :

•	Pour convertir plusieurs affichages à la fois, utilisez Project Builder. Reportez-vous à la rubrique d'aide de Project Builder, Choix d'une méthode de mise à niveau.


Conversion d'affichages en mode de traitement par lots

Pour convertir des affichages en mode de traitement par lots :

1	Assurez-vous que vous avez converti toutes les bibliothèques PL/SQL attachées à l'affichage.

2	Lancez la commande suivante :

<Graphics Builder> openfile=temp.ogd upgrade_plsql=yes savefile=temp1.ogd quit=yes

où :

<Graphics Builder>	Est le nom de l'exécutable Graphics Builder sur votre plate-forme.
openfile=temp.ogd	Ouvre l'affichage temp.ogd dans Graphics Builder.
upgrade_plsql=yes	Convertit le PL/SQL V1 ou V2.
Savefile=temp1.ogd	Enregistre l'affichage converti dans temp1.ogd.
quit=yes	Ferme Graphics Builder après la conversion de l'affichage.
Notes d'utilisation :

•	Un récapitulatif du processus de conversion est automatiquement écrit dans le fichier journal module.plg, où module est le nom de l'affichage converti.

•	Pour convertir plusieurs affichages à la fois, utilisez Project Builder. Reportez-vous à la rubrique d'aide de Project Builder, Choix d'une méthode de mise à niveau.

•	Lorsque l'utilitaire de conversion convertit une application, même si vous choisissez de ne pas tenir compte des conversions suggérées, vous ne pouvez plus l'appeler pour cette application, pour ne pas écraser accidentellement vos modifications manuelles.


Conversion de bibliothèques PL/SQL attachée à un affichage

Pour convertir une bibliothèque PL/SQL de manière interactive :

  Ouvrez la bibliothèque dans Graphics Builder, puis enregistrez-la.

Pour convertir une bibliothèque PL/SQL en mode de traitement par lots :

  Entrez cette commande :

<Graphics Builder> openfile=temp.lib upgrade_plsql=yes savefile=temp1.lib quit=yes

où :

<Graphics Builder>	Est le nom de l'exécutable Graphics Builder sur votre plate-forme.
openfile=temp.lib	Ouvre la bibliothèque temp.lib dans Graphics Builder.
upgrade_plsql=yes	Convertit le PL/SQL V1 ou V2.
savefile=temp1.lib	Enregistre la bibliothèque convertie dans temp1.lib.
quit=yes	Ferme Graphics Builder après la conversion de la bibliothèque.
Notes d'utilisation :

•	Un récapitulatif du processus de conversion est automatiquement écrit dans le fichier journal module.plg, où module est le nom de la bibliothèque convertie.

•	Lorsque l'utilitaire de conversion convertit une application, même si vous choisissez de ne pas tenir compte des conversions suggérées, vous ne pouvez plus l'appeler pour cette application, pour ne pas écraser accidentellement vos modifications manuelles.

•	Pour convertir plusieurs affichages à la fois, utilisez Project Builder. Reportez-vous à la rubrique d'aide de Project Builder, Choix d'une méthode de mise à niveau.


Conversions que l'utilitaire de conversion PL/SQL V1 peut effectuer

  Rubriques connexes

Les problèmes que l'utilitaire de conversion peut régler dans votre application sont les suivants :

CHAR remplacé par VARCHAR2

Longueur de chaîne requise par VARCHAR2

Expressions par défaut pour OUT et IN OUT interdits

RETURN nécessite une expression

Remplacement de procédures internes obsolètes

Fonction length retournant NULL pour des chaînes de longueur zéro

Transfert incorrect de NULL vers un sous-programme surchargé

Instruction RETURN absente dans fonction provoquant erreur de lancement

Contraintes de longueur supprimées


CHAR remplacé par VARCHAR2

Dans PL/SQL V1, les types de données CHAR et VARCHAR2 peuvent être interchangeables. Dans les versions ultérieures à V1, le type de données CHAR est rempli de blancs à droite.

Dans PL/SQL V1, l'instruction :

var1 CHAR(10) := 'hello';

. . .équivaut à 'hello'.

Dans les versions ultérieures à V1, cependant, cette instruction est transformée en 'hello ', (total 10 caractères).

Pour conserver le comportement V1 des variables de type CHAR, l'utilitaire de conversion remplace toutes les déclarations CHAR(n) par l'instruction VARCHAR2(n) équivalente. Dans l'exemple ci-dessus, var1 devient VARCHAR2(10).

L'utilitaire de conversion remplace également toutes les instructions VARCHAR par l'expression VARCHAR2 équivalente.


Longueur de chaîne obligatoire pour VARCHAR2

Dans les versions ultérieures à PL/SQL V1, vous devez indiquer une longueur pour toutes les variables de type VARCHAR2. Si vous avez déjà indiqué une longueur pour un type de données CHAR, l'utilitaire de conversion utilise cette longueur lorsqu'il remplace la déclaration par VARCHAR2 (pour plus d'informations, reportez-vous à CHAR remplacé par VARCHAR2). Par exemple :

var1 CHAR(10);

. . .est converti en :

var1 VARCHAR2(10);

Lorsque le convertisseur détecte une instruction CHAR ou VARCHAR2 sans chaîne de longueur, il suggère une longueur d'un caractère. Par exemple :

var2 CHAR;

. . .est converti en :

var2 VARCHAR2(1);

De même,

var3 VARCHAR2;

. . .est converti en :

var3 VARCHAR2(1);

Si vous n'indiquez pas une longueur pour une déclaration VARCHAR2, le compilateur génère le message d'erreur :

ERROR 215:  String length constraint must be in range (1 . . 32767)


Expressions par défaut pour OUT et IN OUT interdits

  Exemple

Dans PL/SQL V1, les paramètres OUT et IN OUT peuvent être suivis d'une expression par défaut, qui n'est cependant jamais prise en compte. L'utilitaire de conversion supprime les expressions par défaut pour les paramètres OUT et IN OUT.

Si vous compilez un code existant comprenant des paramètres OUT et IN OUT avec des expressions par défaut, le système génère le message d'erreur :

ERROR 230:  OUT and IN OUT formal parameters may not have default expressions


Suppression d'expressions par défaut - Exemple

  Rubriques connexes 	   Tous les exemples

L'utilitaire de conversion convertit le code PL/SQL V1 suivant :

PROCEDURE p (p1 IN OUT NUMBER DEFAULT 25,
             p2 OUT NUMBER DEFAULT 16) IS

BEGIN
. . .
END;

. . .par :

PROCEDURE p (p1 IN OUT NUMBER, p2 OUT NUMBER) IS

BEGIN
. . .
END;


RETURN nécessite une expression

  Exemple

Dans PL/SQL V1, il était possible d'utiliser une instruction RETURN sans expression pour retourner une valeur NULL. Comme toutes les fonctions doivent retourner des valeurs, les versions ultérieures à V1 considèrent que l'instruction RETURN est obligatoire. L'utilitaire de conversion remplace toutes les instructions RETURN qui ne sont pas suivies d'expression par RETURN NULL.

Si vous compilez un code existant comprenant une instruction RETURN sans expression, le message d'erreur suivant est généré :

ERREUR 503 : instruction RETURN requise pour le renvoi des données de la fonction.


Ajout de NULL à RETURN - Exemple

  Rubriques connexes 	   Tous les exemples

L'utilitaire de conversion convertit le code PL/SQL V1 suivant :

FUNCTION f RETURN NUMBER IS
x NUMBER;
BEGIN
x :=13;
IF . . . THEN
RETURN;
END IF;
RETURN x;
END;

. . .par :

FUNCTION f RETURN NUMBER IS
x NUMBER;
BEGIN
x :=13;
IF . . . THEN
RETURN NULL;    NULL ajouté ici
END IF;
RETURN x;
END;


Remplacement de procédures internes obsolètes

  Exemple

La procédure interne TO_PLS_INTEGER, qui convertit les chaînes de caractères en entiers PL/SQL, est obsolète dans les versions ultérieures à V1. L'utilitaire de conversion remplace TO_PLS_INTEGER par la procédure interne TO_NUMBER.

Si vous ne remplacez pas la procédure interne TO_PLS_INTEGER, le système génère le message d'erreur de compilation :

ERROR 201:  Identified TO_PLS_INTEGER must be declared

Remarque : Les autres procédures internes obsolètes doivent être remplacées manuellement.


Remplacement de procédures internes obsolètes - Exemple

  Rubriques connexes 	   Tous les exemples

L'utilitaire de conversion convertit le code PL/SQL V1 suivant :

PROCEDURE foo IS
     v INTEGER;
BEGIN
     v := TO_PLS_INTEGER(24);
END;

. . .par :

PROCEDURE foo IS
     v INTEGER;
BEGIN
     v := TO_NUMBER(24);      TO_PLS_INTEGER remplacé par TO_NUMBER
END;


Fonction LENGTH retournant NULL pour des chaînes de longueur zéro

  Exemple

Dans PL/SQL V1, la fonction LENGTH appliquée à une expression NULL retourne la valeur zéro. Dans les versions ultérieures à V1, cette fonction, appliquée à une expression NULL, retourne NULL.

Pour conserver le comportement de V1, l'utilitaire de conversion PL/SQL ajoute le prédicat SQL NVL afin de garantir que la fonction LENGTH appliquée à une expression NULL retourne la valeur zéro.


Fonction Length - Exemple

  Rubriques connexes 	   Tous les exemples

L'utilitaire de conversion convertit le code PL/SQL V1 suivant :

c:=null;
l=LENGTH( c );         Dans V1, donne 0.

. . .par :

c:=null;
l=NVL(LENGTH( c ),0);	    Le convertisseur imbrique la fonction LENGTH
                                                      dans une procédure interne NVL( ), obligeant
                                                      l'expression à retourner 0.


Transfert incorrect de NULL vers un sous-programme surchargé

  Exemple

Dans PL/SQL V1, vous pouviez définir un sous-programme dans un package en tant que deux types de données différents : VARCHAR2 et un type RECORD. C'est ce que l'on appelle surcharger le sous-programme. Si vous transfériez ensuite une valeur NULL vers un sous-programme surchargé, le type de données PL/SQL devenait VARCHAR2. Cependant, dans les versions ultérieures à V1, une valeur NULL transférée vers un sous-programme surchargé au sein d'un package doit avoir un type défini.

Pour conserver le comportement de V1, l'utilitaire de conversion PL/SQL peut prendre l'une des mesures suivantes, selon le cas, lorsque NULL a été transféré vers un sous-programme surchargé :

•	Imbriquer NULL dans TO_CHAR( )

•	Imbriquer NULL dans TO_NUMBER( )

•	Imbriquer NULL dans TO_DATE( )

•	Imbriquer NULL dans NOT

Si vous transférez une valeur NULL vers un sous-programme surchargé sans définir le type de données souhaité, le programme génère le message d'erreur suivant :

ERROR 307:  Too many declarations of ‘PU name’ match this call . . .


Transfert de NULL vers un sous-programme surchargé - Exemple

  Rubriques connexes 	   Tous les exemples

L'utilitaire de conversion convertit le code PL/SQL V1 suivant :

PACKAGE ps1 IS
  TYPE foo IS RECORD(id PLS_INTEGER);
                              Le sous-programme p est surchargé :
  PROCEDURE p(a VARCHAR2);    a est défini comme une variable de type VARCHAR2
  PROCEDURE p(a FOO);         a est également défini comme un autre type de données
END;

PROCEDURE foo2 IS
BEGIN
  ps1.p(NULL);                Dans PL/SQL V1, le type de données
                                                                      VARCHAR2 est appliqué.
END;

. . .par :

PACKAGE ps1 IS
  TYPE foo IS RECORD(id PLS_INTEGER);

  PROCEDURE p(a VARCHAR2);
  PROCEDURE p(a FOO);

END;

PROCEDURE foo2 IS
BEGIN
  ps1.p(TO_CHAR(NULL));      Comme a est de type VARCHAR2, la valeur NULL
                             est imbriquée dans TO_CHAR( )
END;


Instruction RETURN absente d'une fonction provoquant une erreur de lancement

  Exemple

Lorsque l'instruction RETURN ne figure pas dans une fonction de PL/SQL V1, le système ne provoque pas de problème de lancement. Cependant, c'est le cas dans les versions ultérieures à V1.

Pour conserver le comportement de V1, l'utilitaire de conversion PL/SQL ajoute une instruction RETURN comprenant un argument NULL aux fonctions absentes de l'instruction RETURN.

Remarque : Une instruction RETURN absente d'une fonction ne génère pas d'erreur de compilation, mais une erreur de lancement, dans les versions ultérieures à V1.


Instruction RETURN absente - Exemple

  Rubriques connexes 	   Tous les exemples

L'utilitaire de conversion convertit le code PL/SQL V1 suivant :

FUNCTION noreturn (arg IN NUMBER) RETURN char IS
BEGIN
  IF (arg > 100000) THEN
    TEXT_IO.PUT_LINE ('The point of no return.');
  ENDIF;
                         instruction RETURN absente
END;

. . .par :

FUNCTION noreturn (arg IN NUMBER) RETURN char IS
BEGIN
  IF (arg > 100000) THEN
    TEXT_IO.PUT_LINE ('Point de non-retour.');
  ENDIF;
  RETURN NULL;            RETURN NULL ajouté par le convertisseur
END;


Contraintes de longueur supprimées

  Exemple

Dans PL/SQL V2, les contraintes de longueur des commandes DATE, BOOLEAN, MLSLABEL et ROWID ne sont pas prises en compte. Toutefois, cela entraîne des erreurs de compilation dans V8.

Pour conserver le comportement de V2, l’utilitaire de conversion PL/SQL supprime les contraintes.


Suppression des contraintes de longueur - Exemple

  Rubriques connexes 	   Tous les exemples

L’utilitaire de conversion convertit le code suivant :

PROCEDURE badconstraint IS
d DATE(5);
b BOOLEAN(5);
d MLSLABEL(5); --V2 only
r ROWID(5); --V2 only
BEGIN
  null;
END;

. . .par :

PROCEDURE badconstraint IS
d DATE;
b BOOLEAN;
d MLSLABEL; --V2 only
r ROWID; --V2 only
BEGIN
  null;
END;


Conversions que l'utilitaire PL/SQL V1 ne peut pas effectuer

  Rubriques connexes

Alors que l'utilitaire de conversion peut convertir de nombreuses incompatibilités PL/SQL parmi celles auxquelles il est confronté, certaines situations exigent que vous y remédiez manuellement :

Noms uniques exigés au sein d'un package

Fonction de package standard n'étant plus utilisée

Nouveaux mots réservés dans PL/SQL V2.3 ou versions ultérieures

%ROWTYPE ou %TYPE requis dans les déclarations de variable

Le message d'avertissement « Erreur non réparable, abandon de la conversion, ligne <numéro ligne> colonne <colonne> » apparaît en cas d'erreur fatale du compilateur ; le processus de conversion est interrompu.


Noms uniques exigés au sein d'un package

  Exemple

Dans PL/SQL V1, lorsque vous créiez une variable portant le même nom qu'une procédure ou fonction d'un même package, c'était toujours la variable qui était utilisée ; la procédure ou la fonction portant le même nom n'était pas prise en compte. Dans les versions ultérieures à V1, les variables, les fonctions et les procédures au sein d'un même package doivent porter des noms uniques.

Afin d'éviter toute erreur, vérifiez que toutes les procédures d'un package portent chacune un nom unique, en le faisant de manière explicite ou bien en ajoutant le mot Unused au nom de la procédure.

Remarque : Dans V1, Procedure Builder permettait malencontreusement de créer une unité de programme portant le même nom qu'un package intégré. Dans les versions ultérieures à V1, cela est interdit. Si Procedure Builder détecte une unité de programme portant le même nom qu'un package intégré, il modifie le nom de l'unité pendant le chargement en ajoutant deux signes dollar à la fin. Ainsi, DEBUG devient DEBUG$$.


Attribution d'un nouveau nom de procédure unique dans un package - Exemple

  Rubriques connexes 	   Tous les exemples

L'exemple suivant présente tout d'abord un code PL/SQL V1 qui génère une erreur de compilation, puis explique comment éditer le code afin d'éviter cette erreur.

Remplacez le code :

PACKAGE pk1 IS
  v1 NUMBER;           v1 est une variable
  PROCEDURE v1;        v1 est aussi défini comme une procédure
  PROCEDURE p2 (x OUT NUMBER);
END;

PACKAGE BODY pk1 IS
  PROCEDURE v1 IS
  BEGIN
   . . .
  END;

  PROCEDURE p2 (x OUT NUMBER) IS
  BEGIN
x := pk1.v1;
  END;

END;

. . .par :

PACKAGE pk1 IS
  v1 NUMBER;
  PROCEDURE v1Unused;	  Déclaration de la procédure v1 en tant que « Unused »
  PROCEDURE p2 (x OUT NUMBER);
END;

PACKAGE BODY pk1 IS
  PROCEDURE v1Unused IS
  BEGIN
   . . .
  END;

  PROCEDURE p2 (x OUT NUMBER) IS
  BEGIN
x := pk1.v1;
  END;

END;


Fonction de package standard n'étant plus utilisée

  Exemple

Dans PL/SQL V1, vous pouviez appeler la fonction FLOOR depuis votre propre package, p1, de la façon suivante :

v : = p1.FLOOR(x).

Si le package p1 ne disposait d'aucune fonction nommée FLOOR, PL/SQL utilisait la fonction FLOOR du package standard. Cette erreur de codage PL/SQL a été corrigée dans PL/SQL V2.3 ou supérieur. Ainsi, dans PL/SQL V2.3, le compilateur ne recherche pas le nom de la fonction du package standard, mais signale correctement que la situation est erronée :

ERROR 302 : le composant CCCCC doit être déclaré

. . . où ‘CCCCC' est le nom de la fonction ou de la procédure qui existe dans un package standard ou dans une extension de package standard.

Le message « Les références incorrectes vont être traduites dans le package intégré V1 » est inscrit dans le journal.

Pour diriger le compilateur vers le package standard, supprimez le nom de package incorrect.


Suppression du préfixe de package - Exemple

  Rubriques connexes 	   Tous les exemples

L'exemple suivant présente tout d'abord un code PL/SQL V1 qui génère une erreur de compilation, puis explique comment éditer le code afin d'éviter cette erreur.

Remplacez le code :

PACKAGE pk1 IS a NUMBER;
END;

PROCEDURE p IS v NUMBER;
BEGIN
v := pk1.FLOOR(20.5);
END;

. . .par :

PACKAGE pk1 IS a NUMBER;
END;

PROCEDURE p IS v NUMBER;
BEGIN
v := FLOOR(20.5);     Préfixe supprimé
END;


Nouveaux mots réservés dans PL/SQL V2.3 ou supérieur

  Exemples

Le mot VARIANCE est réservé dans PL/SQL V2.3 ou supérieur et, s'il est utilisé, génère une erreur de compilation.

Pour plus d'informations sur l'utilisation du mot VARIANCE sans génération d'erreur, reportez-vous à l'exemple ci-après.


Mots réservés - Exemple

  Rubriques connexes 	   Tous les exemples

L’exemple ci-dessous présente tout d'abord un code PL/SQL V1 qui génère une erreur de compilation, puis explique comment éditer le code pour éviter cette erreur.

Exemple 1 :

Remplacez le code :

FUNCTION variance (y IN NUMBER)
RETURN NUMBER IS

BEGIN
     . . .
     RETURN . . .;
END;

. . .par :

FUNCTION varianceUniqueName (y IN NUMBER)
     /* Un nom unique a été ajouté à Variance. */
RETURN NUMBER IS

BEGIN
     . . .
     RETURN . . .;
END;

Exemple 2 :

Lorsque vous appelez un sous-programme, remplacez le code :

PROCEDURE foo IS
     x NUMBER;
     y NUMBER;
BEGIN
     . . .
     x := variance(someNumber);
END;

. . .par :

PROCEDURE foo IS
     x NUMBER;
     y NUMBER;
BEGIN
     . . .
     x := varianceUniqueName(someNumber);
END;


%ROWTYPE ou %TYPE requis dans les déclarations de variable

  Exemples

Le compilateur PL/SQL V8 signale une erreur lorsqu'il détecte la syntaxe non autorisée ci-dessous (cette syntaxe est, par contre, acceptée par le code PL/SQL V2) :

return expression_variable

procedure (paramètre IN <nom_table>)

procedure (paramètre IN <nom_table>.<nom_colonne>)

La syntaxe correcte est :

return type_variable

procedure (paramètre IN <nom_table>%ROWTYPE)

procedure (paramètre IN <nom_table>.<nom_colonne>%TYPE)

Pour éviter toute erreur, utilisez le type de données de l’expression, ajoutez %ROWTYPE au nom de la table ou ajoutez %TYPE au nom de la colonne.


Déclarations de variables - Exemples

  Rubriques connexes 	   Tous les exemples

Les exemples suivant présentent tout d’abord le code PL/SQL V2 générant l'erreur de compilation, puis expliquent comment le modifier pour éviter cette erreur.

Exemple 1 :

Remplacez le code :

FUNCTION colonne_retour RETURN dept.dname IS
. . .

. . .par :

FUNCTION colonne_retour RETURN dept.dname%TYPE IS
. . .

Remplacez le code :

PROCEDURE foo (name IN dept.dname) IS
. . .

. . .par :

PROCEDURE foo (name IN dept.dname%TYPE) IS
. . .

Exemple 2 :

Remplacez le code :

FUNCTION table_retour RETURN dept IS
. . .

. . .par :

FUNCTION table_retour RETURN dept.%ROWTYPE IS
. . .

Remplacez le code :

PROCEDURE foo (name IN dept) IS
. . .

. . .par :

PROCEDURE foo (name IN dept%ROWTYPE) IS
. . .

Exemple 3 :

Cet exemple présente une exception pour laquelle vous ne pouvez pas utiliser %TYPE.

Lorsque vous déclarez des paramètres, remplacez le code :

FUNCTION param_retour (x IN NUMBER)
  RETURN x IS
. . .

. . .par :

FUNCTION param_retour (x IN NUMBER)
  RETURN number IS
. . .


A propos des messages d'erreur

Chaque composant a son propre préfixe de messages d'erreur :

Préfixe	Composant
FRM	Form Builder
OG	Graphics Builder
PDE	Procedure Builder
REP	Report Builder
BRW	Query Builder
BRS	Schema Builder
NX, XBD	Translation Builder
Remarque : Sous Unix, Report Builder attribue la valeur 0 (opération réussie) ou 1 (échec de l'opération) à la variable $status qui apparaît dans certains messages.

Aux messages d'erreur d'Oracle Developer peuvent éventuellement s'ajouter des messages d'erreur provenant d'autres sources  :

Préfixe	Source	Aide
ORA	Oracle Server	Manuel Oracle7 Server Messages ou Oracle8 Error Messages
PLS	PL/SQL	Manuel Oracle7 Server Messages ou Oracle8 Error Messages
NET	SQL*Net	Manuel Oracle Network Products Messages
Les manuels Oracle7 Server Messages et Oracle8 Error Messages contiennent les codes et les descriptions des messages d'erreur de tous les utilitaires de base de données comme SQL*DBA, SQL*Loader, SQL*Module, Export, Import et les pré-compilateurs Oracle.

Les messages d'erreur propres au système sont expliqués dans la documentation de votre système d'exploitation.


Recours au Support technique Oracle

Dans certains cas (erreurs internes, par exemple), vous devrez faire appel au Support technique Oracle, mais auparavant, nous vous conseillons de réunir les informations suivantes :

1	Votre nom, celui de votre société, votre ID de Support technique Oracle.

2	Le matériel, le système d'exploitation et le numéro de version du système d'exploitation utilisé.

3	Le numéro complet de version du composant que vous utilisiez lorsque l'erreur s'est produite et, notamment, le numéro de révision et le numéro du port, le cas échéant. (Pour connaître le numéro de version des composants, choisissez Aide [image] A propos de.)

4	Tous les autres produits (et leur numéro de version) utilisés lorsque l'erreur s'est produite (par exemple, Oracle 7.1.4).

5	Si vous avez reçu un ou plusieurs messages d'erreur, le numéro et le texte exacts des messages et l'ordre dans lequel ils sont apparus.

6	Une description du problème et, notamment, des conditions inhabituelles.

7	La gravité du problème, selon les codes suivants :

•	1 : Programme inutilisable. Impact critique sur les opérations.

•	2 : Programme utilisable. Opérations très limitées.

•	3 : Programme utilisable, mais avec des fonctions limitées. Non critique pour les opérations globales.

•	4 : Problème réglé par le client. Effet minime, voire nul, sur les opérations.


Conditions anormales

Certaines erreurs qui peuvent se produire sont connues sous le nom de conditions anormales. Celles-ci peuvent avoir l'une des causes suivantes :

•	Un utilisateur a effectué une opération qui a empêché votre application d'achever la tâche demandée : il a, par exemple, sauté l'interface utilisateur et, lors de la modification des données dans une table de base de données, a entré une valeur non valide.

•	Une bogue logicielle a empêché la réalisation de la tâche requise.

Action  Contactez tout d'abord votre administrateur système pour savoir si le message a une autre cause qu'Oracle Developer. Si vous pouvez déterminer que le message ne provient pas d'une erreur de l'utilisateur ou d'un problème système, contactez le Support technique Oracle.


Support NLS dans Oracle Developer

  Rubriques connexes

Si vous développez des applications destinées au marché international, vous devez faire en sorte que les utilisateurs puissent utiliser leur langue maternelle et respecter les conventions locales d'affichage des données. Le support NLS (National Language Support) Oracle comporte trois couches principales :

•	prise en charge des systèmes d'encodage de caractères de la langue nationale ;

•	prise en charge des conventions linguistiques et nationales ;

•	traduction de l'interface.

Cette combinaison de prises en charge au niveau du caractère, de l'affichage des données et de l'interface garantit l'utilisation de vos applications dans la plupart des langues parlées en Europe, au Moyen-Orient et en Asie, et notamment l'acceptation des systèmes d'encodage de caractères sur plusieurs octets et de la bidirectionnalité.


Architecture NLS

  Rubriques connexes

Cette architecture se compose de deux parties principales :

•	les fonctions indépendantes de la langue ;

•	les données dépendantes de la langue.

Les fonctions indépendantes de la langue permettent de gérer l'utilisation des données, en fonction de la langue et du pays de l'utilisateur chargé de l'exécution ; elles mettent en forme les données automatiquement, selon les conventions locales de date et d'heure.

L'isolation des données dépendantes de la langue permet à votre application de ne gérer que la traduction de ses propres chaînes.


Variables d'environnement NLS

  Rubriques connexes

Vous pouvez utiliser les paramètres suivants comme variables d'environnement pour indiquer les paramètres linguistiques employés par Oracle Developer :

Parameter	Description
NLS_CALENDAR	Calendrier utilisé
NLS_CREDIT	Chaîne utilisée pour indiquer une valeur monétaire positive
NLS_CURRENCY	Symbole monétaire local
NLS_DATE_FORMAT	Format de date par défaut
NLS_DATE_LANGUAGE	Langue par défaut utilisée pour les dates
NLS_DEBIT	Chaîne utilisée pour indiquer une valeur monétaire négative
NLS_ISO_CURRENCY	Symbole monétaire ISO
NLS_LANG	Paramètres linguistiques utilisés par Oracle Developer
DEVELOPER_NLS_LANG	Langue des générateurs Oracle Developer
USER_NLS_LANG	Langue du composant Runtime d'Oracle Developer
NLS_LIST_SEPARATOR	Caractère utilisé pour séparer les éléments d'une liste
NLS_MONETARY_CHARACTERS	Séparateurs décimal et des milliers des valeurs monétaires
NLS_NUMERIC_CHARACTERS	Séparateurs décimal et des milliers des valeurs numériques
NLS_SORT	Type de tri utilisé pour les caractères

Pour plus d'informations sur ces paramètres, reportez-vous au manuel Oracle8 Reference.


Variable d'environnement NLS_LANG

  Exemples	  Rubriques connexes

Cette variable permet de définir les paramètres linguistiques employés par Oracle Developer.

NLS_LANG indique les éléments suivants :

•	la langue des messages que l'utilisateur reçoit, par exemple le message signalant un traitement en cours ;

•	les masques de format par défaut utilisés pour les dates et les nombres ;

•	la séquence de tri ;

•	le jeu de caractères.

La syntaxe de la variable NLS_LANG est la suivante :

NLS_LANG=langue_pays.jeudecaractères

où :

language	Langue ainsi que ses conventions pour l'affichage des messages et des noms de jour et de mois. Si aucune langue n'est indiquée, la valeur utilisée par défaut est American.
territory	Fait référence au pays et aux conventions correspondantes pour le format de date par défaut, le séparateur décimal des nombres et le symbole monétaire, et la numérotation des semaines et des jours. Si aucun pays n'est indiqué, la valeur utilisée par défaut est America.
jeudecaractères	Fait référence au jeu de caractères utilisé pour représenter les données. Il doit correspondre à la langue et à la plate-forme que vous utilisez. Cet argument contrôle également le jeu de caractères qui sert à afficher les messages.

Pour plus d'informations sur le paramètre NLS_LANG, reportez-vous au manuel Oracle8 Reference.


Variables d'environnement DEVELOPER_NLS_LANG et USER_NLS_LANG

  Exemples	  Rubriques connexes

Dans la plupart des cas, il suffit de définir une seule valeur pour NLS_LANG. Cependant, si vous devez utiliser simultanément deux jeux de fichiers de ressources et de messages sur le même ordinateur, deux autres variables d'environnement sont à votre disposition :

•	DEVELOPER_NLS_LANG, qui indique la langue du générateur du produit ;

•	USER_NLS_LANG, qui indique la langue du composant Runtime du produit.

La syntaxe de DEVELOPER_NLS_LANG et de USER_NLS_LANG est la même que celle de NLS_LANG.

A la place de cette variable, utilisez DEVELOPER_NLS_LANG et USER_NLS_LANG dans les cas suivants :

•	Vous préférez utiliser le générateur en anglais, mais vous développez une application dans une autre langue.

•	Vous créez une application à exécuter dans une langue qui utilise un jeu de caractères bidirectionnels.

•	Vous créez une application à exécuter dans une langue pour laquelle une version locale du générateur n'est pas disponible.

Remarque : Si ces variables d'environnement ne sont pas explicitement paramétrées, les valeurs par défaut de NLS_LANG sont utilisées.

Pour plus d'informations sur le paramètre NLS_LANG, reportez-vous au manuel Oracle8 Reference.


Définition des variables d'environnement NLS_LANG

  Exemples	  Rubriques connexes

Pour paramétrer les variables d'environnement NLS_LANG :

 Définissez les valeurs de ces variables comme vous définiriez d'autres variables d'environnement dans votre système d'exploitation de base, en respectant les règles propres à cette plate-forme (longueur de chemin d'accès, etc.).

Par exemple, pour paramétrer la variable NLS_LANG pour Microsoft Windows NT :

1	Dans le menu Démarrer, sélectionnez Exécuter.

2	Entrez « regedit », puis cliquez sur OK pour ouvrir l'éditeur de base de registres.

Remarque : Toute modification a une incidence sur la base de registres de Windows. Ne modifiez les variables d'environnement qu'en cas de nécessité absolue. Si vous vous êtes trompé, cliquez sur Annuler, puis recommencez.

1	Développez les noeuds HKEY_LOCAL_MACHINE, puis SOFTWARE.

2	Cliquez sur ORACLE pour afficher les variables d'environnement Oracle dans le panneau de droite de l'éditeur de base de registres.

3	Cliquez deux fois sur la variable d'environnement NLS_LANG.

4	Dans la zone de texte Données de la valeur, entrez une nouvelle valeur pour cette variable, puis cliquez sur OK.

Remarque : Pour utiliser une fonction NLS, vous devez au moins paramétrer la variable NLS_LANG de façon à ce qu'Oracle Developer puisse repérer les composants NLS.


Création d'alias de police sur les plates-formes Windows

  Rubriques connexes

Dans certains cas, vous créez une application en utilisant une police particulière, mais vous découvrez qu'une autre police est utilisée à l'exécution de cette application. Vous risquez de rencontrer ce problème lorsque vous employez une police anglaise, telle que MS Sans Serif ou Arial, dans un environnement non européen. Cela est dû au fait qu'Oracle Developer vérifie si le jeu de caractères associé à cette police correspond à celui indiqué par la variable d'environnement de langue. S'ils ne correspondent pas, Oracle Developer remplace automatiquement la police choisie par une autre dont le jeu de caractères correspond à celui de cette variable. Ainsi, dans l'application, la netteté de l'affichage des données renvoyées depuis la base de données est garanti.

Remarque : Si vous saisissez des caractères locaux utilisant une police anglaise, Windows les associe à une autre police de façon implicite.

Toutefois, il peut parfois être nécessaire de ne pas effectuer ce remplacement. Pour l'éviter, mettez en correspondance toutes les polices voulues avec le jeu de caractères WE8ISO8859P1 du fichier d'alias de police. Par exemple, si vous ne pouvez pas employer la police Arial dans votre application, ajoutez la ligne suivante à ce fichier :

Arial.....=Arial...WE8ISO8859P1


Jeux de caractères Microsoft Windows pris en charge

Jeu de caractères	Description
AR8MSWIN1256	Latin/arabe MS Windows sur 8 bits (page de codes 1256)
BG8MSWIN	Alphabet cyrillique bulgare MS Windows sur 8 bits
CL8MSWIN1251	Latin/alphabet cyrillique MS Windows sur 8 bits (page de codes 1251)
EE8MSWIN1250	Langues d'Europe de l'Est MS Windows sur 8 bits (page de codes 1250)
EL8MSWIN1253	Latin/grec MS Windows sur 8 bits (page de codes 1253)
ET8MSWIN923	Estonien MS Windows sur 8 bits (page de codes 923)
IW8MSWIN1255	Latin/hébreu MS Windows sur 8 bits (page de codes 1255)
JA16SJIS	Japonais sur 16 bits (Maj-JIS)
KO16KSC5601	Coréen sur 16 bits (KSC5601)
LT8MSWIN921	Lituanien MS Windows sur 8 bits (page de codes 921)
TH8TISASCII	Thaïlandais - Norme standard 620-2533, ASCII 8 bits
WE8ISO8859P1	Europe de l'Ouest - Norme ISO 8859-1
ZHS16CGB231280	Chinois simplifié sur 16 bits (CGB2312-80)
ZHT16BIG5	Chinois traditionnel sur 16 bits (BIG5)


Jeux de caractères arabes pris en charge

ID	Jeu de caractères	Description
61	AR8ASMO708PLUS	Latin/arabe sur 8 bits - ASMO 708 Plus Client
72	AR8XBASIC	Latin/arabe sur 8 bits - Client EBCDIC XBASIC
504	AR8NAFITHA711T	Latin/arabe sur 8 bits - Nafitha Enhanced 711 Client
505	AR8SAKHR707T	Latin/arabe sur 8 bits - Client SAKHR 707
506	AR8MUSSAD768T	Latin/arabe sur 8 bits - Client Mussa'd Alarabi/2 768
507	AR8ADOS710T	Latin/arabe sur 8 bits - Client MS-DOS 710 (arabe)
508	AR8ADOS720T	Latin/arabe sur 8 bits - Client MS-DOS 720 (arabe)
509	AR8APTEC715T	Latin/arabe sur 8 bits - Client APTEC 715
511	AR8NAFITHA721T	Latin/arabe sur 8 bits - Client Nafitha International 721
514	AR8HPARABIC8T	Latin/arabe sur 8 bits - Client HP ARABIC8
567	AR8ARABICMACT	Latin/arabe sur 8 bits - Client Macintosh


Conventions linguistiques et nationales

  Rubriques connexes

Tandis que les systèmes d'encodage de caractères garantissent la disponibilité des caractères de chaque langue, le support des conventions nationales permet l'affichage correct des données traduites.

La langue indiquée définit les conventions par défaut des caractéristiques suivantes :

•	la langue des messages du serveur ;

•	la langue des noms de jour et de mois, ainsi que les abréviations correspondantes indiquées dans les fonctions SQL TO_CHAR et TO_DATE ;

•	les symboles des instances correspondantes d'AM, de PM, d'AD et de BC ;

•	la séquence de tri par défaut des caractères lorsque la clause ORDER BY est indiquée (GROUP BY utilise un type de tri binaire, à moins que cette clause ne soit mentionnée) ;

•	le sens de l'écriture ;

•	les chaînes de réponse affirmatives ou négatives.

Par exemple, si la langue est paramétrée sur Français, les messages suivants :

ORA-00942:  table or view does not exist
FRM-10043:  Cannot open file.

sont traduits comme suit :

ORA-00942: table ou vue inexistante
FRM-10043: Ouverture de fichier impossible.

Le pays indiqué définit les conventions des caractéristiques de format de nombres et de date par défaut suivantes :

•	le format de date ;

•	les séparateurs décimal et des milliers ;

•	le symbole monétaire local ;

•	le symbole monétaire ISO ;

•	le premier jour de la semaine ;

•	le symbole de crédit et de débit ;

•	l'indicateur de semaine ISO ;

•	le séparateur de listes.

Par exemple, si le pays est paramétré sur France, le séparateur décimal des nombres est une virgule.


Langues prises en charge

Abréviation	Langue
us	Anglais (Etats-Unis)
ar	Arabe
bn	Bengali
ptb	Portugais (Brésil)
bg	Bulgare
frc	Français (Canada)
ca	Catalan
hr	Croate
cs	Tchèque
dk	Danois
nl	Néerlandais
eg	Egyptien
gb	Anglais (Royaume-Uni)
et	Estonien
sf	Finlandais
f	Français
d	Allemand
din	Allemand (normes DIN)
el	Grec
iw	Hébreu
hu	Hongrois
is	Islandais
in	Indonésien
n	Italien
ja	Japonais
ko	Coréen
esa	Espagnol (Amérique latine)
lv	Letton
lt	Lituanien
ms	Malais
esm	Espagnol (Mexique)
n	Norvégien
pl	Polonais
pt	Portugais
ro	Roumain
ru	Russe
zhs	Chinois simplifié
sk	Slovaque
sl	Slovène
e	Espagnol
s	Suédois
th	Thaïlandais
zht	Chinois traditionnel
tr	Turc
uk	Ukrainien
vn	Vietnamien

Remarque : Le fait qu'une langue soit prise en charge n'implique pas nécessairement qu'une traduction soit disponible.


Pays pris en charge

Algérie	Grèce	Portugal
Amérique	Hong Kong	Qatar
Autriche	Hongrie	Roumanie
Bahreïn	Islande	Arabie saoudite
Bangladesh	Irak	Slovaquie
Brésil	Israël	Slovénie
Bulgarie	Italie	Somalie
Canada	Japon	Espagne
Catalogne	Jordanie	Soudan
Chine	Corée	Suède
CEI	Koweït	Suisse
Croatie	Lettonie	Syrie
Chypre	Liban	Taiwan
République tchèque	Libye	Thaïlande
Tchécoslovaquie	Lituanie	Pays-Bas
Danemark	Malaisie	Tunisie
Djibouti	Mauritanie	Turquie
Egypte	Mexique	Ukraine
Estonie	Maroc	Emirats arabes unis
Finlande	Norvège	Royaume-Uni
France	Oman	Vietnam
Allemagne	Pologne	Yémen


Support bidirectionnel dans Oracle Developer

  Rubriques connexes

Le support NLS des langues du Moyen-Orient et d'Afrique du Nord comprend le support bidirectionnel des langues qui s'écrivent de droite à gauche.

Le support bidirectionnel permet aux développeurs de contrôler les éléments suivants :

•	l'orientation de la mise en page, notamment l'affectation des libellés à droite des éléments, et le positionnement correct des cases à cocher et des boutons d'option ;

•	la séquence de lecture, notamment l'orientation du texte de droite à gauche, ou vice versa ;

•	l'alignement, notamment la définition du point d'origine à partir de la gauche ou de la droite ;

•	la définition de l'état initial du clavier, qui permet de contrôler la création automatique des caractères locaux ou romains lorsque l'utilisateur final saisit les données dans une application Forms (il peut remplacer ce paramètre).

Les applications bidirectionnelles peuvent utiliser non seulement la variable d'environnement NLS_LANG, mais aussi deux autres variables d'environnement :

•	DEVELOPER_NLS_LANG

•	USER_NLS_LANG

Par exemple, pour utiliser une interface en anglais américain tout en développant une application en arabe dans un environnement Windows, paramétrez ces variables d'environnement de la manière suivante :

DEVELOPER_NLS_LANG=AMERICAN_AMERICA.AR8MSWIN1256
USER_NLS_LANG=ARABIC_pays.jeudecaractères


Support bidirectionnel dans Form Builder

  Rubriques connexes

Cinq propriétés permettent de définir l'apparence des objets dans les applications bidirectionnelles : Orientation, Justification, Séquence de lecture, Etat clavier et Etat initial clavier.

Orientation est une propriété générale dotant chaque objet d'autant de fonctions que possible. Pour tous les objets, à l'exception des éléments de texte et d'affichage, elle constitue l'unique propriété bidirectionnelle ; ce paramètre contrôle les autres aspects de la fonction bidirectionnelle. (Toutefois, les éléments de la liste comprennent les propriétés Etat initial clavier et Etat clavier.)

La propriété Orientation n'est pas disponible pour les éléments de texte et d'affichage. A la place, vous pouvez paramétrer de manière spécifique les propriétés Justification, Séquence de lecture, Etat initial clavier et Etat clavier.

Vous pouvez limiter l'état du clavier à une seule langue. Par exemple, si vous paramétrez Etat clavier sur Local, l'utilisateur final ne peut pas employer d'autre langue.

Lorsque les propriétés bidirectionnelles sont définies sur Par défaut, elles héritent leurs valeurs du sens naturel d'écriture indiqué par la variable d'environnement de la langue. Dans la plupart des cas, cette solution offre la fonctionnalité voulue. Il suffit d'indiquer des propriétés bidirectionnelles pour remplacer les valeurs par défaut héritées.

L'héritage des propriétés bidirectionnelles est le suivant :

	Le paramètre par défaut dérive sa valeur de l'objet suivant
Form	Variable d'environnement de la langue
Tous les objets, et notamment : Message d'alerte, Bloc, LOV, Fenêtre et Vue-canevas	Form
Tous les éléments, et notamment : Elément texte, Elément affiché, Case à cocher, Bouton, Groupe de boutons et Elément liste	Vue-canevas

La plupart des propriétés liées à la fonction bidirectionnelle peuvent être récupérées et paramétrées par programme. Pour plus d'informations, reportez-vous à la description du sous-programme intégré correspondant. Par exemple, pour en savoir plus sur l'obtention de la valeur de la propriété Orientation pour les boutons, reportez-vous à la description de GET_ITEM_PROPERTY.


Support bidirectionnel dans Report Builder

  Rubriques connexes

Trois propriétés permettent de définir l'apparence des objets dans les applications bidirectionnelles : Justification, Orientation (pour un objet) et Orientation (pour l'état). Les propriétés bidirectionnelles sont ajoutées aux objets dans l'ordre suivant :

Module,

Objet standard,

Champ,

Objet standard externe,

Bouton,

Objet standard de grille de paramètres.

Les objets ne figurant pas dans cette liste ne requièrent pas de support bidirectionnel (par exemple, les images) ou utilisent la valeur par défaut de l'une des propriétés d'objet ci-dessus.


Support du jeu de caractères Unicode dans Oracle Developer

  Rubriques connexes

Unicode est un jeu de caractères universel permettant d'afficher un texte multilingue dans une même application. Ainsi, les multinationales peuvent développer une même application en plusieurs langues pour l'utiliser dans le monde entier.

Les marchés mondiaux requièrent un jeu de caractères satisfaisant aux critères suivants :

•	être assez simple pour être utilisé dans n'importe quel pays et permettre la création standard d'un produit dans toutes les langues ;

•	contenir tous les principaux scripts existants ;

•	prendre en charge utilisateurs et organisations multilingues ;

•	permettre l'échange d'informations via le réseau Internet mondial.

Oracle Developer prend en charge le jeu de caractères Unicode. Si vous utilisez ce dernier, vous pouvez afficher dans la même application plusieurs langues sur un octet, par exemple celles de l'Europe de l'Est et de l'Ouest, ou du Moyen-Orient (type bidirectionnel), ainsi que les langues asiatiques sur plusieurs octets, telles que le chinois, le japonais et le coréen.

Si vous employez un jeu de caractères unique pour toutes les langues, vous n'avez pas besoin d'en définir un pour chaque langue.

Par exemple, pour afficher une langue sur plusieurs octets comme le japonais, la variable d'environnement NLS_LANG doit être paramétrée de la manière suivante (pour les plates-formes Windows) :

Japan_Japanese.JA16SJIS

Pour afficher une langue sur un octet comme l'allemand, la variable d'environnement NLS_LANG doit être paramétrée de la manière suivante (pour les plates-formes Windows) :

German_Germany.WE8ISO8859P1

Naturellement, l'inconvénient de ce système est que les applications ne peuvent afficher qu'un jeu de caractères à la fois. Il n'est pas possible d'utiliser plusieurs jeux de caractères.

Le jeu de caractères Unicode vous permet de paramétrer le jeu de caractères de NLS_LANG sur UTF8 au lieu d'un jeu de caractères de langue précis. Ainsi, les caractères propres à différents jeux de caractères et langues apparaissent simultanément.

Par exemple, pour afficher un texte en japonais et en allemand, la variable d'environnement NLS_LANG doit être paramétrée de la manière suivante :

Japanese_Japan.UTF8

ou

German_Germany.UTF8

La fonction Unicode d'Oracle Developer permet au développeur et à l'utilisateur final d'afficher un texte multilingue dans une application Forms. Ce texte peut provenir du Presse-papiers ou d'une base de données dont les objets de l'interface utilisateur graphique contiennent un texte Unicode multilingue (par exemple, les libellés des boutons), ou être saisi à l'aide du clavier. Actuellement, Oracle Developer prend en charge le jeu de caractères Unicode sous Windows NT 4.0 et sous Windows 95/98 (prise en charge limitée).

Remarque : Si vous développez plusieurs applications Web, vous pouvez utiliser le jeu de caractères Unicode, car il est pris en charge par Java.


Notes concernant la configuration

  Rubriques connexes

Les serveurs UNIX peuvent prendre en charge plusieurs répertoires ORACLE_HOME (où ORACLE_HOME est le répertoire créé par et pour les programmes Oracle) et, par conséquent, différents paramètres NLS. Cela signifie qu'un même serveur UNIX peut prendre en charge plusieurs langues.

Toutefois, Windows NT ne peut prendre en charge qu'un seul répertoire ORACLE_HOME et ne peut donc être doté que d'un paramètre NLS, c'est-à-dire qu'il ne peut prendre en charge qu'une seule langue.


Prise en charge des polices Unicode

  Rubriques connexes

Pour afficher un texte Unicode multilingue, vous devez utiliser une police constituée des glyphes (ou caractères des langues à faire apparaître). Sous Windows NT et sous Windows 95/98, vous devez employer les « grandes polices » TrueType fournies par Microsoft ou la police Unicode d'un fabricant tiers. Si, lorsque vous essayez de saisir, d'afficher ou d'imprimer un texte multilingue, des caractères inattendus apparaissent, vous n'utilisez peut-être pas une grande police. Les grandes polices Microsoft disponibles sous Windows NT 4.0 sont les suivantes :

•	Arial

•	Courier New

•	Lucida Console

•	Lucida Sans Unicode

•	Times New Roman

Une police fournie par un fabricant tiers peut être employée si les grandes polices Windows ne correspondent pas à vos besoins.


Activation de la prise en charge du jeu de caractères Unicode

  Rubriques connexes

Dans Oracle Developer, pour activer la prise en charge du jeu de caractères Unicode, paramétrez la variable NLS_LANG de la manière suivante :

NLS_LANG=langue_pays.UTF8


Conversion des jeux de caractères

  Rubriques connexes

Lorsque vous créez des applications à utiliser dans plusieurs langues, il est nécessaire de tenir compte des jeux de caractères employés respectivement par les utilisateurs finals et par les développeurs. Au cours de l'exécution, la conversion au niveau des jeux de caractères est automatique ; elle a une incidence sur les performances.

Par exemple, si vous créez une application à l'aide d'un jeu de caractères et que vous l'exécutiez via un autre, vous pouvez noter que les performances sont plus faibles. En outre, si l'un des jeux de caractères ne contient pas l'équivalent d'un caractère d'un autre jeu, un caractère de substitution apparaît à la place, par exemple un point d'interrogation (?). Cependant, même si vous n'observez pas de différence notable, vous devez en tant que développeur prêter attention aux jeux de caractères que vous utilisez lors de la création d'une application pour conserver les mêmes.

Remarque : Oracle Developer ne convertit que les jeux de caractères de la même langue, tels que AR8MSWIN et AR8ISO, ou IW8MSWIN et IW8ISO.

Si vous développez des applications devant s'exécuter dans plusieurs langues, ou même dans une seule, mais avec des jeux de caractères différents, vous devez adapter votre environnement de génération à votre environnement d'exécution afin d'optimiser les performances. Pour cela :

•	Définissez le jeu de caractères le plus souvent utilisé au cours de l'exécution.

•	Créez vos applications en paramétrant la variable d'environnement de la langue sur ce jeu de caractères.

Remarque : Dans Form Builder, le même jeu de caractères est utilisé lors du développement et pendant l'exécution des applications, quel que soit celui indiqué dans l'environnement d'exécution.


Interface utilisateur Oracle Developer

  Rubriques connexes

Oracle utilise le même exécutable pour internationaliser ses programmes. En d'autres termes, vous n'avez pas besoin d'employer d'autre exécutable, par exemple f60des.exe, afin de traiter les langues européennes sur un octet ou les langues asiatiques sur plusieurs octets. Les mêmes outils peuvent être utilisés pour créer des applications dans diverses langues, dont l'anglais.

Remarque : Oracle Developer utilise le système d'exploitation Microsoft Windows pour définir les polices et méthode de saisie des diverses langues. Pour entrer et afficher un texte dans une langue, vous devez exécuter une version de Windows la prenant en charge. Par exemple, pour le thaïlandais, il s'agit de la version de Windows dans cette langue.

Lors de l'installation d'Oracle Developer, vous sélectionnez la langue des fichiers de messages à installer. Lorsque vous utilisez un composant Oracle Developer, tel que Form Builder, le fichier de messages correspondant est utilisé, selon la variable d'environnement de la langue employée, pour afficher l'interface, et notamment les éléments suivants :

•	les messages ;

•	les menus et leurs options ;

•	les boîtes de dialogue ;

•	les invites et les messages d'aide ;

•	les messages d'alerte.

Si Oracle Developer ne trouve pas de fichier de messages correspondant au paramètre linguistique choisi, il utilise par défaut les fichiers de messages en anglais américain.

Remarque : Lors de l'installation, vous ne pouvez indiquer qu'une seule langue pour installer les fichiers de messages, outre ceux en anglais américain. Si vous souhaitez ultérieurement exécuter la version d'Oracle Developer dans une autre langue, il est nécessaire de réinstaller ce programme à l'aide des fichiers de messages correspondants.

La convention de dénomination des fichiers de messages fait référence au composant Oracle Developer et à la langue concernés, au format suivant :

<id_produit><id_langue>.MSB

Par exemple, dans Form Builder :

FMDUS.MSB contient les messages par défaut (en anglais américain) de Builder.

FMGUS.MSB contient les messages par défaut (en anglais américain) de Generate.

FMFUS.MSB contient les messages par défaut (en anglais américain) de Runform.

FMFI.MSB contient les messages en italien de Runform.

FMFD.MSB contient les messages en allemand de Runform.

Pour plus d'informations sur l'installation du fichier de messages dépendants de la langue, reportez-vous au guide d'utilisation et d'installation de votre plate-forme.

Remarque : Les modules de langue supplémentaires ne sont pas compatibles en aval. Ils sont uniquement conçus pour la version d'Oracle Developer avec laquelle ils ont été fournis. Si vous disposez de versions précédentes dotées de ces modules, supprimez-les du système.


Utilisation de CONVERT pour la conversion des données

Vous pouvez utiliser la fonction SQLCONVERT pour convertir des jeux de caractères. Elle convertit la représentation binaire d'une chaîne d'un jeu de caractères vers un autre. Pour plus d'informations sur ce type de conversion, reportez-vous à Conversion des jeux de caractères.

Pour obtenir la description complète de CONVERT, reportez-vous au manuel Oracle8 SQL Reference.


Masques de format par défaut

  Exemples	  Rubriques connexes

La variable d'environnement ne définit pas seulement la langue de l'interface Oracle Developer, mais aussi l'ensemble des masques de format par défaut utilisés pour afficher les données, à moins que ces derniers ne soient remplacés par des masques de format explicites. En tant que développeur d'applications, vous disposez également d'autres caractères de masque de format NLS, si vous choisissez de remplacer les masques d'affichage par défaut.

Les masques de format par défaut associés au pays indiqué sont employés pour toute saisie de données dans Oracle Developer ou dans l'application, de façon à ce que vous puissiez changer de langue lorsque vous développez et exécutez une application, sans avoir à modifier les formats de nombres et de date.

Oracle Developer utilise notamment les masques de format par défaut :

•	dans le générateur, lorsqu'il affiche les valeurs par défaut des éléments, des plages ou des paramètres ;

•	au cours de l'exécution, si un utilisateur entre des données dans un élément texte dont le type varie en fonction du pays, tel que DATE ou NUMBER.

Pour les champs de date et de devise des applications multilingues, vous devrez décider :

•	d'agrandir ou non tous les éléments affichés (objets standard, éléments texte, ou objets d'interface, tels que les boutons et les listes de valeurs) pour que les conventions de traduction des valeurs numériques et celles propres à chaque langue tiennent dans la zone d'affichage.

•	d'utiliser les caractères NLS pour créer des masques de format spéciaux ou de conserver ceux par défaut appelés par la variable NLS_LANG, considérés comme suffisants.


Conseil
Pour les conversions de type de données implicites, PL/SQL s'attend toujours à lire des éléments au format par défaut America (par exemple, JJ-MOI-AA). Si vous utilisez un élément dont le type est propre à un pays dans PL/SQL, vous devez donc indiquer les masques de format appropriés. Oracle conseille d'utiliser TO_DATE pour traduire les éléments propres à un pays dans PL/SQL.

IF :emp.hiredate < TO_DATE(’30-12-1996’,’DD-MM-YYYY’) THEN
   ...


Caractères de masque de format

  Exemples	  Rubriques connexes

Les caractères de masque de format suivants vous permettent de remplacer les masques de format par défaut :

Caractères de masque de format de date

Caractère	Retourne
D	Chiffre correspondant au jour (1-7)
JO	Nom du jour (abrégé)
JOUR	Nom du jour (rempli de blancs jusqu'à concurrence de 9 caractères)
SS	Chiffre correspondant à la semaine, calculé par l'algorithme int((jour-jan1)/7)
SI	Chiffre correspondant à la semaine ISO
MOI	Nom du mois (abrégé)
MOIS	Nom du mois (rempli de blancs jusqu'à concurrence de 9 caractères)
MR	Nombre en chiffres romains correspondant au mois
I, IA, IAA, IAAAA	Dernier, deux derniers ou trois derniers chiffres de l'année ISO ou année ISO, respectivement
BC, AD, B.C., A.D.	Indicateur BC ou AD (avec ou sans point)
AM, PM, A.M., P.M.	Indicateur AM ou PM (avec ou sans point)
Pour plus d'informations sur l'ISO (International Standards Organization) et ses masques de format de date, reportez-vous au manuel Oracle Server SQL Reference.

Caractères de masque de format numérique

Caractère	Retourne
C	Symbole monétaire international
L	Symbole monétaire local
D	Séparateur décimal
G	Séparateur de groupe (milliers)


Tri des caractères

  Restrictions	  Exemples	  Rubriques connexes

Par convention, lorsque les caractères sont triés, la séquence de tri est définie selon la valeur numérique des caractères, définie par le système d'encodage. Ce type de tri est dit « binaire » ; il génère des résultats raisonnables pour l'alphabet anglais, car les normes ASCII et EBCDIC définissent les lettres A à Z en valeurs numériques croissantes. Remarque

Toutefois, lorsque les caractères des autres langues sont utilisés, le fait de les trier au format binaire ne permet généralement pas d'obtenir de tels résultats. Par exemple, une interrogation ORDER BY ascendante renvoie les chaînes de caractères ABC, ABZ, BCD et ÄBC, dans cet ordre, lorsqu'une valeur numérique supérieure à celle de B est affectée à Ä dans le système d'encodage des caractères.

Pour créer une séquence de tri correspondant à la séquence alphabétique des caractères d'une langue, une autre technique doit être utilisée de façon à ce que ces caractères soient triés indépendamment de leur valeur numérique dans le système d'encodage. Cette méthode, appelée « tri linguistique », consiste à remplacer les caractères par d'autres valeurs binaires faisant référence à l'ordre linguistique correct pour que le tri binaire renvoie les résultats voulus.

Caractères linguistiques spéciaux : Séquences de caractères à utiliser en tant que caractère unique pendant le tri. Ces caractères sont gérés automatiquement lorsque vous procédez à un tri linguistique. Par exemple, l'une des séquences de tri linguistiques en espagnol indique que les doublons « ch » et « ll » sont triés en tant que caractères uniques, compris respectivement entre « c » et « d », et entre « l » et « m ».

Le caractère « ß » constitue un autre exemple en allemand. Dans cette langue, cette séquence peut être triée en tant que doublon « SS », alors qu'elle l'est en tant que caractère « SZ » en anglais américain.

Ces caractères spéciaux sont également gérés lors de la conversion de majuscules en minuscules, et vice versa. Par exemple, en allemand, le symbole « ß », mis en majuscules, devient le doublon « SS ». Ces problèmes de conversion de caractères sont traités par les fonctions NLS_UPPER, NLS_LOWER et NLS_INITCAP, selon les conventions établies par la séquence de tri linguistique. (Les fonctions standard UPPER, LOWER et INITCAP ne gèrent pas ces caractères spéciaux.)

Fonction NLSSORT : Vous pouvez utiliser la fonction SQL NLSSORT pour trier des caractères. Elle remplace une chaîne de caractères par la chaîne de tri correspondante employée par la fonctionnalité de tri. Dans le cas d'un tri binaire, la chaîne de tri est la même que la chaîne d'entrée. Lorsqu'un tri linguistique est effectué, NLSSORT retourne les valeurs binaires utilisées pour remplacer la chaîne d'origine.


Remarque
En mode ASCII standard, toutes les majuscules précèdent les minuscules. Il se passe le contraire en mode EBCDIC standard : les majuscules suivent toutes les minuscules.


Tri linguistique - Limites

  Rubriques connexes

Le tri linguistique n'est pas pris en charge pour les jeux de caractères sur plusieurs octets.


Comparaison de chaînes dans une clause WHERE

  Exemples	  Rubriques connexes

Les chaînes de caractères d'une clause WHERE sont comparées sur la base de leur valeur binaire : un caractère est « supérieur à » un autre si une valeur binaire plus élevée lui est affectée dans le jeu de caractères de la base de données. En général, les comparaisons effectuées ne respectent pas les conventions alphabétiques, étant donné que la séquence de caractères définie en fonction de ces valeurs binaires risque de ne pas correspondre à la séquence alphabétique de la langue choisie. Utilisez la fonction NLSSORT, pour réaliser un tri linguistique et non binaire.


Contrôle d'une clause ORDER BY

  Rubriques connexes

Dans le cas d'une séquence de tri linguistique, NLSSORT est utilisé implicitement sur chaque élément de type caractère de la clause ORDER BY. Le système de tri (linguistique ou binaire) appliqué à cette clause est donc transparent pour l'application.

Cependant, si la fonction NLSSORT est explicitement indiquée pour un élément de type caractère dans une clause ORDER BY, la fonction NLSSORT implicite n'est pas exécutée. En d'autres termes, le remplacement linguistique via NLSSORT n'est appliqué qu'une fois, et non deux.

La fonction NLSSORT n'est généralement pas nécessaire dans une clause ORDER BY, lorsque le tri par défaut est linguistique. Cependant, lorsque ce dernier est binaire, une interrogation du type :

SELECT ENAME FROM EMP

ORDER BY ENAME

utilise un tri binaire. Pour un tri linguistique (pour l'allemand, dans l'exemple ci-dessous), employez en l'occurrence :

SELECT ENAME FROM EMP

ORDER BY NLSSORT(ENAME, 'NLS_SORT = GERMAN)


Utilisation d'ALTER SESSION

  Exemples	  Rubriques connexes

Vous pouvez utiliser la commande SQL ALTER SESSION pour remplacer les valeurs NLS par défaut. Par exemple, supposez que vous créez plusieurs paramètres, tels que la langue, le pays, etc., et qu'un utilisateur définit les valeurs correspondantes : vous pouvez modifier la session selon les valeurs choisies.

Remarque : Lors de l'exécution, le serveur exécute pour le client une commande ALTER SESSION qui utilise les valeurs indiquées dans NLS_LANG. Si NLS_LANG n'est pas défini, l'instruction ALTER SESSION n'est pas exécutée.

Dans Form Builder, vous pouvez indiquer l'un des paramètres NLS ci-dessous pour la commande ALTER SESSION. Cependant, pour Report Builder et Graphics Builder, vous ne pouvez préciser que le paramètre NLS_SORT.

Parameter	Description
NLS_LANGUAGE	Langue utilisée par le serveur pour les messages et les erreurs
NLS_TERRITORY	Pays utilisé pour les masques de date et de devise par défaut
NLS_DATE_FORMAT	Format par défaut utilisé pour les dates
NLS_DATE_LANGUAGE	Langue par défaut utilisée pour les dates
NLS_NUMERIC_CHARACTERS	Séparateur de groupes et de caractères décimaux
NLS_ISO_CURRENCY	Symbole monétaire international ISO
NLS_CURRENCY	Symbole monétaire local
NLS_SORT	Séquence de tri de caractères
NLS_CALENDAR	Calendrier en cours

Pour plus d'informations sur ces paramètres, reportez-vous au manuel Oracle8 SQL Reference.


Utilisation des paramètres NLS dans les fonctions SQL

  Rubriques connexes

Lorsque vous utilisez SQL, vous pouvez remplacer par les paramètres NLS décrits ci-dessous les paramètres NLS par défaut.

Fonction SQL	Paramètre(s) NLS
TO_DATE	NLS_DATE_LANGUAGE NLS_CALENDAR
TO_NUMBER	NLS_NUMERIC_CHARACTERS NLS_CURRENCY NLS_ISO_CURRENCY
TO_CHAR	NLS_DATE_LANGUAGE NLS_NUMERIC_CHARACTERS NLS_CURRENCY NLS_ISO_CURRENCY NLS_CALENDAR
NLS_UPPER	NLS_SORT
NLS_LOWER	NLS_SORT
NLS_INITCAP	NLS_SORT
NLSSORT	NLS_SORT

Pour plus d'informations sur ces paramètres, reportez-vous au manuel Oracle8 SQL Reference.


Paramètres NLS de Form Builder

  Rubriques connexes

Vous pouvez utiliser les fonctions intégrées de Form Builder pour obtenir la valeur courante des variables d'environnement NLS pour l'utiliser dans un code PL/SQL :

	DEVELOPER_NLS_LANG,	USER_NLS_LANG
Procédure interne	GET_FORM_PROPERTY	GET_APPLICATION_PROPERTY
Parameter	MODULE_NLS_LANG	USER_NLS_LANG

Comme USER_NLS_LANG et DEVELOPER_NLS_LANG adoptent par défaut la valeur de NLS_LANG, les paramètres NLS de Form Builder contiendront la valeur de NLS_LANG si l'une de ces deux variables n'est pas spécifiquement définie.

Les paramètres NLS de Form Builder ont quatre variantes pour vous permettre d'extraire soit la totalité, soit une partie de la variable d'environnement. Le tableau ci-dessous indique les quatre paramètres de la procédure interne GET_APPLICATION_PROPERTY qui retourne la variable d'environnement USER_NLS_LANG :

Parameter	Retourne
USER_NLS_LANG	L'intégralité de la variable USER_NLS_LANG
USER_NLS_LANGUAGE	La partie langue uniquement
USER_NLS_TERRITORY	La partie pays uniquement
USER_NLS_CHARACTER_SET	La partie jeu de caractères uniquement

Pour extraire la variable d'environnement DEVELOPER_NLS_LANG, appelez GET_FORM_PROPERTY en utilisant le paramètre MODULE_NLS_LANG.


Fichier de définition d'imprimante et support NLS

  Rubriques connexes

Lorsque vous utilisez des états en mode caractères, vous devez définir la largeur physique de la page sur la largeur définie dans le fichier de définition d'imprimante (fichier .PRT), moins 1 caractère. Sinon, les caractères sur plusieurs octets risquent de commencer au dernier espace d'une ligne et de continuer sur la suivante. Par exemple, lorsque la largeur physique de la page est égale à 80 caractères et que celle indiquée dans la définition de l'imprimante est la même, un caractère sur plusieurs octets peut commencer au 80e caractère. Etant donné que les caractères sur plusieurs octets ne peuvent pas être séparés, le 81e caractère doit être compris dans la ligne précédente de façon à ce que le caractère sur plusieurs octets soit complet. Pour éviter cette situation, paramétrez sur 79 la largeur physique de la page de l'état.

Les paramètres NLS suivants propres à l'arabe et à l'hébreu peuvent être définis dans le fichier de définition d'imprimante :

Paramètre	Fonction	Valeurs
nls locale	Définition des paramètres régionaux du moteur d'impression.	hébreu ou arabe
nls datastorageorder	Configuration du stockage des données logiques ou visuelles.	logique ou visuel
nls contextuallayout	Mise en page pré-contextuelle des imprimantes en arabe.	non ou oui
nls contextualshaping	Mise en forme pré-contextuelle des imprimantes en arabe.	non ou oui
nls pcharset	Indication du jeu de caractères de l'imprimante.	Tout jeu de caractères

Pour plus d'informations sur les fichiers de définition d'imprimante, reportez-vous au système d'aide de Report Builder.


Traduction des applications

  Rubriques connexes

La même langue doit être utilisée pour tous les messages d'erreur et textes standard. Lorsqu'il exécute une application, l'utilisateur final visualise les messages et textes standard issus des trois sources suivantes :

•	messages d'erreur du serveur ;

•	messages d'erreur d'exécution envoyés par Oracle Developer ;

•	messages et textes standard définis en tant qu'éléments de l'application.

Le support NLS d'Oracle contrôle la traduction des éléments des deux premières sources. En tant que développeur d'applications, vous êtes responsable de la traduction des messages et textes standard de la troisième source.

En général, il est nécessaire de traduire deux types de textes propres aux applications :

•	le texte traduisible, par exemple les menus, les textes standard, les options, les messages et les messages d'aide ;

•	les chaînes des déclencheurs et des procédures, y compris les messages d'alerte et les messages définis dans les déclencheurs.

Translation Builder (générateur de traduction) vous permet de traduire dans plusieurs langues les chaînes de « texte traduisible » de l'interface utilisateur. Vous pouvez l'utiliser dans le cadre de la traduction de la plupart des applications multilingues Oracle Developer en générant un fichier binaire pour chaque langue.

Ce générateur permet de rechercher et de traduire les chaînes de l'interface utilisateur, mais ne peut pas extraire de constantes de chaîne dans les déclencheurs et les procédures PL/SQL. Le texte constant des blocs PL/SQL doit être traduit « manuellement », car il n'est pas clairement délimité, mais est souvent constitué de variables et d'extraits de chaînes.

Pour une description complète du générateur de traduction, reportez-vous au système d'aide de ce dernier.


Notes concernant le développement d'applications

  Rubriques connexes

Lorsque vous développez une application qui sera traduite, n'oubliez pas de prévoir de l'espace supplémentaire pour les objets et les libellés standard. Pour utiliser plusieurs jeux de caractères et agrandir les zones traduites, il convient en règle générale de laisser 30 % d'espace autour des champs, des bordures et des textes standard.

Par exemple :

Invite à gauche du champ	Réservez 30 % d'espace supplémentaire pour l'agrandissement de ce champ à gauche de l'invite.
Invite au-dessus du champ	Réservez 30 % d'espace supplémentaire pour l'agrandissement de ce champ à droite de l'invite.
Boutons, cases à cocher, groupes de boutons d'option et listes instantanées	Prévoyez un agrandissement de 30 %.
Titres	Fixez la taille des boîtes englobantes de façon à pouvoir agrandir le titre de 30 % à droite.
Champs en affichage seul	Prévoyez une taille de 30 % supérieure à celle requise par la langue de base.
Tous les objets	Agrandissez les objets de façon à ce que la traduction tienne. Par exemple, les boutons doivent être suffisamment grands pour contenir les libellés traduits. Vérifiez la hauteur de ces boutons de façon à y loger le plus grand caractère à utiliser. Par exemple, calculez le nombre de pixels nécessaires au rendu des caractères Kanji.


Utilisation du générateur de traduction

  Rubriques connexes

Vous pouvez utiliser ce générateur dans le cadre de la traduction de la plupart des applications multilingues Oracle Developer. Vous pouvez l'activer, puis générer un fichier binaire pour chaque langue, à moins que les utilisateurs finals de votre application ne doivent changer de langue au cours de l'exécution.

Pour ce faire, ils doivent fermer le programme, modifier la variable d'environnement de la langue, puis redémarrer l'application.

Avec le générateur de traduction, les étapes de développement de votre application sont les suivantes :

•	Créez une définition simple de l'application (.FMB ou .RDF) dans la langue source.

•	Utilisez le générateur de traduction pour extraire des chaînes à traduire, permettre la traduction dans une ou plusieurs langues, et stocker de nouveau ces chaînes dans la définition de l'application.

•	Traduisez manuellement les messages standard des bibliothèques PL/SQL.

•	Utilisez le générateur afin de créer une version binaire de l'application pour chaque langue cible.

Avantages : Le générateur de traduction est la solution la plus simple pour mettre rapidement en OEuvre des applications en plusieurs langues. Il offre une efficacité maximale. Si votre application est stable, cette approche convient parfaitement.

Par exemple, si vous avez développé une application dans quatre langues et que vous avez besoin, plus tard, de modifier le libellé d'un champ, vous effectuez cette modification dans le générateur, puis vous l'enregistrez dans le fichier de définition. Vous utilisez le générateur de traduction pour traduire le nouveau libellé, vous insérez les nouveaux messages dans le fichier de définition et vous le régénérez pour obtenir un fichier binaire contenant le nouveau libellé.

Inconvénients : Si vos applications doivent prendre en charge plusieurs langues simultanément, vous devez à la place changer de langue au cours de l'exécution.


Changement de langue lors de l'exécution

  Rubriques connexes

Seules quelques applications doivent prendre en charge simultanément plusieurs langues. Par exemple, une fenêtre en anglais peut être affichée au démarrage, et l'utilisateur final peut cliquer sur un bouton de cette fenêtre pour obtenir la traduction des invites en français et revenir à l'anglais.

Si votre application requiert un changement de langue lors de l'exécution, vous pouvez inclure plusieurs langues dans une même application, à condition qu'elles partagent le même jeu de caractères, mais vous ne pouvez pas utiliser le générateur de traduction pour localiser le texte traduisible si vous remplissez dynamiquement le texte lors de l'exécution. Vous devez donc créer des structures conditionnelles (IF...THEN...ELSEIF) pour passer d'une langue à l'autre en vérifiant la valeur de la variable d'environnement NLS, à l'aide de la procédure interne GET_FORM_PROPERTY.

L'utilisation du système de changement de langue lors de l'exécution vous permet de développer votre application en plusieurs étapes :

•	Créez l'intégralité de l'application dans une langue, y compris les bibliothèques.

•	Traduisez manuellement chaque bibliothèque.

•	Créez des libellés standard en tant qu'éléments affichés de taille correcte, remplis dynamiquement lors de l'exécution.

Comme Form Builder prend en charge l'attachement de plusieurs bibliothèques, vous pouvez réserver une bibliothèque aux messages à traduire, et d'autres bibliothèques à d'autres fins.

Avantages : Le principal avantage de cette approche est qu'elle permet la prise en charge d'applications sophistiquées dans lesquelles les applications Forms peuvent être extrêmement dynamiques. Dans ce cas, cette approche évite certains problèmes de mise à jour, car vous n'avez pas à générer de fichier distinct pour chaque langue chaque fois que l'application Forms change.

Inconvénients : Cette approche est plus compliquée, car elle implique un effort considérable au niveau de la création, du remplissage et de la mise à jour d'une mémoire de messages propres à la langue utilisée, et au niveau de la traduction manuelle. Par exemple, vous pouvez écrire un déclencheur WHEN-NEW-FORM-INSTANCE pour définir les libellés de chaque bouton en extrayant d'une bibliothèque attachée les libellés corrects, en fonction de la valeur de la variable d'environnement NLS.


Utilisation des bibliothèques PL/SQL pour les chaînes de code

  Exemples	  Rubriques connexes

Bien que le générateur de traduction facilite la traduction des messages qui font partie de l'interface Builder standard, les messages affichés par programme demandent un traitement spécial. Grâce aux bibliothèques PL/SQL, il vous est possible de mettre en œuvre une structure flexible pour les messages des déclencheurs ou des procédures.

En ce qui concerne les messages propres aux applications, c'est-à-dire affichés par les sous-programmes intégrés MESSAGE ou CHANGE_ALERT_MESSAGE, ou via l'affectation d'un message à un élément affiché depuis un déclencheur ou une procédure, vous pouvez utiliser les bibliothèques PL/SQL attachables afin de réaliser une structure flexible pour les messages. La bibliothèque peut être stockée sur l'hôte, puis être attachée dynamiquement lors de l'exécution. A ce moment-là, selon le chemin de recherche utilisé, vous pouvez intégrer la bibliothèque attachée à l'application Forms. (Par exemple, une bibliothèque peut ne contenir que les messages en italien.)


Support NLS - Exemples

  Rubriques connexes 	  Tous les exemples

Comparaison de chaînes - Exemples

Masques de format - Exemples

NLS_LANG - Exemples

Bibliothèques PL/SQL - Exemples


ALTER SESSION - Exemples

  Rubriques connexes

L'instruction suivante permet de convertir les séparateurs décimal et des milliers en virgule et en point, respectivement :

ALTER SESSION
   SET NLS_NUMERIC_CHARACTERS = ',.'

Ces nouveaux caractères sont renvoyés lorsque vous utilisez les éléments de format numérique D et G :

SELECT TO_CHAR(SUM(sal), 'L999G999D99') Total FROM emp

TOTAL
--------------
   FF29.025,00

L'instruction suivante permet de convertir le symbole monétaire ISO en celui utilisé aux Etats-Unis :

ALTER SESSION
   SET NLS_ISO_CURRENCY = America

Le symbole monétaire ISO défini pour les Etats-Unis est utilisé :

SELECT TO_CHAR(SUM(sal), 'C999G999D99') Total FROM emp

TOTAL
---------------
   USD29.025,00

L'instruction suivante permet de convertir en Deutsh Marks le symbole monétaire local :

ALTER SESSION
   NLS_CURRENCY = 'DM'

Le nouveau symbole monétaire local est renvoyé lorsque vous utilisez l'élément de format numérique L :

SELECT TO_CHAR(SUM(sal), 'L999G999D99') Total FROM emp

TOTAL
--------------
   DM29.025,00


Comparaison de chaînes - Exemples

  Rubriques connexes 	  Tous les exemples

Soit une colonne (COL1) qui contient les valeurs ABC, ABZ, BCD et ÄBC dans le jeu de caractères ISO 8859/1 sur 8 bits. Si vous avez écrit l'interrogation suivante :

SELECT COL1 FROM TAB1 WHERE COL1 > 'B'

L'interrogation retourne les valeurs BCD et ÄBC, car la valeur numérique de Ä est supérieure à celle de B.

Vous pouvez effectuer des comparaisons linguistiques en utilisant NLSSORT dans la clause WHERE, de la manière suivante :

WHERE NLSSORT(colonne) opérateur NLSSORT(chaîne)

Notez que NLSSORT doit figurer de part et d'autre de l'opérateur de comparaison.

SELECT COL1 FROM TAB1 WHERE NLSSORT(COL1) > NLSSORT('B')

Si vous effectuez un tri linguistique en allemand, les chaînes commençant par Ä ne sont pas renvoyées, car ce caractère vient avant B dans l'alphabet. Si vous procédez à un tri linguistique en suédois, ces chaînes sont retournées, car Ä vient après Z dans l'alphabet.


Masques de format - Exemples

  Rubriques connexes 	  Tous les exemples

Dans les applications compatibles NLS, évitez de coder en dur une chaîne composée d'un nom de mois. Toutefois, s'il est essentiel d'utiliser un code de ce type, n'utilisez pas la procédure interne COPY. Si vous le faites, le nom de mois risque d'être incorrect, selon la langue indiquée. (Pour mentionner une date dans une bibliothèque, utilisez la variable correspondante ; la procédure COPY fonctionne correctement.)

Exemple dépendant de la langue (déconseillé) :

:date.emb := '30-DEC-96';

copy ('30-DEC-96','date.emb');

Utilisez à la place TO_DATE, comme dans l'exemple ci-dessous :

Exemple indépendant de la langue (conseillé) :

:date.emb := to_date('30-12-1996','JJ-MO-AAAA');


NLS_LANG - Exemples

  Rubriques connexes 	  Tous les exemples

Supposez que vous souhaitiez exécuter votre application en français. Elle sera utilisée en France et les données seront affichées via le jeu de caractères WE8ISO8895P1. Vous paramétrez NLS_LANG de la manière suivante :

NLS_LANG=French_France.WE8ISO8895P1

Imaginez à présent que vous souhaitiez toujours exécuter votre application en français, mais qu'elle sera cette fois utilisée en Suisse. Vous paramétrez NLS_LANG de la manière suivante :

NLS_LANG=French_Switzerland.WE8ISO8895P1

Autres exemples :

NLS_LANG=Norwegian_Norway.NDK7DEC
NLS_LANG=Norwegian_Norway.WE8ISO8895P1
NLS_LANG=Japanese_Japan.JA16SJIS
NLS_LANG=Arabic_Egypt.AR8MSWIN1256
NLS_LANG=American_America.AR8MSWIN1256
NLS_LANG=American_America.WE8ISO8859P1


Bibliothèques PL/SQL - Exemple

  Rubriques connexes 	  Tous les exemples

FUNCTION nls_appl_mesg(index_no NUMBER)

RETURN CHAR

IS

   msg CHAR(80);

BEGIN

   IF index_no = 1001 THEN

      msg := 'L''impiegato che Voi cercate non esiste...';

   ELSIF index_no = 1002 THEN

      msg := 'Lo stipendio non puo essere minore di zero.';

   ELSIF ...

   :

   ELSE

      msg := 'ERRORE: Indice messaggio inesistente.';

   END IF;

   RETURN msg;

END;

Une routine de ce type peut être utilisée chaque fois qu'une expression de type caractère est normalement valide : par exemple, pour afficher un message d'alerte d'application correctement traduit, il vous suffit d'inclure dans votre application Forms le code suivant :

Change_Alert_Message('Mon_message_erreur', nls_appl_mesg(1001));

n := Show_Alert('Mon_message_erreur');

Pour changer la langue de l'application, il suffit de remplacer la bibliothèque PL/SQL contenant la fonction nls_appl_mesg par une bibliothèque de même nom contenant la fonction nls_appl_mesg avec le texte traduit.

Si l'application doit prendre en charge simultanément plusieurs langues, la fonction ci-dessus peut accepter un paramètre supplémentaire indiquant la langue voulue, et le code contiendra alors un niveau supplémentaire de IF...THEN...ELSIF...ELSE...END IF pour la gestion des différentes langues.


A propos du contrôle de source

  Rubriques connexes

Ce contrôle permet de gérer et de tenir à jour plusieurs révisions d'un fichier dans une archive.

Une archive est un répertoire, défini par l'utilisateur, qui contient une version texte du fichier, ainsi que des informations sur chacune des révisions effectuées, notamment la description et la date de toutes les modifications.

L'archive permet à un membre d'une équipe de développement d'extraire, de modifier et de mettre en place une révision fiable et cohérente.

Ses composants (Form Builder par exemple) proposent un contrôle de source par une interface générique avec le fournisseur de contrôle de source de votre choix. A l'heure actuelle, il existe des modules enfichables pour le système PVCS (Polytron Version Control System) de INTERSOLV et Pure-Atria Clearcase, mais d'autres modules sont en cours de développement.

Pour toute information sur l'installation et l'utilisation de PVCS, reportez-vous à votre documentation INTERSOLV.

PVCS prend également en charge le verrouillage des fichiers et l'établissement d'états sur les archives.


A propos des fichiers de configuration

Il existe quatre variables d’environnement qui doivent être définies pour optimiser les performances de l’interface de source de contrôle. Sous Windows 3.1, celles-ci sont définies dans oracle.ini, alors que sous Windows NT ou Windows 95/98, elles figurent dans la base de registres, dans la clé SOFTWARE/ORACLE.

DEV2000_SOURCECONTROL indique le système de contrôle de source à utiliser. Il doit être défini à «PVCS». La valeur par défaut étant définie à PVCS par ses composants (Forms Builder par exemple), l’omission de cette variable n’aura aucun effet perceptible dans la présente version. Cependant, comme ils prennent également en charge d’autres système de contrôle de source, la définition de cette variable vous assure un bon fonctionnement de l’interface de contrôle de source.

DEV2000_PROJECT remplace la variable TVCCFG d’Oracle Developer versions 1.0 et 1.1, et identifie le fichier de configuration de projet PVCS (.CFG) à utiliser. Si vous n’indiquez pas de fichier configuration de projet via une variable d’environnement, vous devrez en choisir un dans la boîte de dialogue Contrôle de source : Options pour chaque session.

DEV2000_SCVIEWER contrôle l’affichage des résultats d’un journal de contrôle de source ou d’un état des différences. Pour désactiver l’affichage des résultats, définissez cette variable à NULL (aucune valeur).

DEV2000_SCCONVERT contrôle la conversion des fichiers en code ASCII avant leur archivage dans PVCS, et leur reconversion en binaire avant leur extraction. A moins que ne vouliez mettre à niveau PVCS d’une version antérieure d’Oracle Developer et souhaitiez le conserver, laissez la valeur par défaut FALSE.

Exemple d’une partie du contenu du fichier oracle.ini :

...

DEV2000_SOURCECONTROL=PVCS

DEV2000_PROJECT=C:\PROJECTS\MYPROJ\MYPROJ.CFG

DEV2000_SCVIEWER=NOTEPAD.EXE

DEV2000_SCCONVERT=FALSE

...


A propos de la mise en oeuvre de PVCS

Lorsque vous archivez certains objets (applications Forms, menus, états, affichages, bibliothèques PL/SQL) le fichier binaire est automatiquement converti en un fichier texte équivalent, qui est archivé dans le contrôle de source. Par exemple, si vous avez archivé MONAPPLI.FMB, ce fichier est automatiquement converti en MONAPPLI.FMT (équivalent en format texte), puis ce dernier est archivé dans le contrôle de source.

De même, lorsque vous extrayez un fichier archivé, Developer/2000 convertit la version texte du fichier en son équivalent en format binaire, qui peut être lu par les interfaces de développement. Si vous voulez extraire MONAPPLI.FMT, il sera converti en MONAPPLI.FMB pour que vous puissiez l'éditer.

L'archivage est effectué sur la version texte du fichier pour permettre la génération entre les différentes versions d'un fichier d'états des différences plus significatifs. PVCS archive les fichiers binaires, mais ne crée pas d'états des différences entre les différentes révisions de ces fichiers.

Une fois cette conversion de fichiers effectuée, votre répertoire de travail peut contenir des fichiers supplémentaires, en fonction des options que vous avez choisies pour PVCS. Si la configuration de votre projet prévoit la création de fichiers de travail en lecture seule après l'archivage, votre répertoire contiendra le fichier binaire et un fichier texte en lecture seule. Mais si la suppression des fichiers de travail après archivage est prévue dans la configuration, votre répertoire de travail ne contiendra que le fichier binaire.


A propos de l'archivage d'un fichier

  Rubriques connexes

Tout fichier modifié et entré dans une archive devient une nouvelle révision. Lorsque vous archivez un fichier (par exemple, un fichier de bibliothèque PL/SQL ayant le suffixe .pll), PVC le convertit automatiquement de binaire en texte et l'archive à l'emplacement indiqué, sous la forme d'un fichier texte ayant le suffixe approprié (par exemple, .pld). PVCS utilise le fichier texte pour générer des états d'archive.

Un libellé de version indique qu'une révision appartient à un groupe constituant généralement une version complète de votre application. Les libellés de version permettent d'exécuter une opération simultanément sur tous les fichiers associés à une version particulière en ne faisant référence qu'à un seul nom. Si vous avez déjà archivé une version du module en cours, les informations appropriées sont entrées automatiquement dans le champ Archive.


A propos de l'extraction d'un fichier

  Rubriques connexes

L'extraction d'un fichier archivé vous permet d'accéder à ce fichier pour le parcourir, l'éditer ou l'imprimer. Par défaut, un seul utilisateur peut, à un moment donné, extraire une version verrouillée.

Lorsque vous extrayez un fichier, il est automatiquement converti en fichier de format approprié (par exemple, il un fichier de bibliothèque PL/SQL du format pld est converti au format .pll). Le fichier extrait d'une archive est appelé fichier de travail. Chaque fois que vous archivez une nouvelle variante d'un fichier de travail, elle devient une révision.


A propos de la création d'états d'archive

  Rubriques connexes

PVCS permet de générer des états récapitulatifs sur les sujets suivants :

•	création d'archives

•	attributs des fichiers archivés

•	révisions successives

•	libellés

•	lignes modifiées dans la dernière révision

•	description du fichier de travail


A propos des modèles de promotion

Un modèle de promotion est une suite hiérarchisée de jalons d'un cycle de développement. La promotion permet de contrôler le développement du code source, de la phase initiale à la version finale. Chaque jalon est représenté par un groupe de promotion. Exemples : Développement, Assurance qualité et Production. Un modèle de promotion est une fonction avancée, conseillée pour les sites appliquant des procédures formelles d'évolution de logiciels.

Un modèle de promotion peut avoir un ou plusieurs groupes de niveau inférieur, ou de développement. Lorsqu'un modèle de promotion est en vigueur, les utilisateur ne peuvent modifier que les révisions associées à un groupe de développement. Pour éditer une révision associée à un groupe de niveau supérieur, l'utilisateur doit l'extraire et la ré-associer à un groupe de développement lors de l'extraction, puis la faire repasser à un groupe supérieur après l'avoir ré-archivée.

Si le modèle de promotion ne comprend qu'un groupe de développement, vous ne pouvez verrouiller qu'une révision de l'archive à la fois. Pour concevoir un modèle de promotion pour un développement parallèle, vous devez inclure au moins deux groupes de développement.

Au-dessus du ou des groupes de développement, vous pouvez définir un nombre quelconque de groupes de promotion intermédiaires pour les différentes étapes de test ou d'éditions préliminaires. Au niveau le plus élevé se trouve le groupe de production qui indique généralement que les révisions sont prêtes à être commercialisées.

L'utilisation d'un modèle de promotion vous permet de :

•	Connaître rapidement l'état d'un projet. Vous pouvez exécuter un état d'archivage sur un projet pour savoir immédiatement quels sont modules qui n'ont pas atteint un jalon particulier du cycle de développement.

•	Contrôler l'accès aux révisions aux niveaux autres que celui du développement. Etant donné que les utilisateurs ne peuvent pas modifier les révisions associées à des groupes de promotion post-développement, vous êtes certain que toutes les révisions sont intégralement testées.

•	Personnaliser votre propre modèle. Vous pouvez personnaliser une structure de promotion adaptée de façon unique à chaque projet, en indiquant le nombre de jalons de votre choix dans la structure de promotion.


Création d'un répertoire d'archives

  Etape suivante	  Rubriques connexes

Pour créer un répertoire d'archives :  Remarque :

1	Choisissez Fichier [image] Administration [image] Gestion des archives et rapports pour afficher la boîte de dialogue Contrôle de source : Options.

2	S'il n'est pas déjà sélectionné, sélectionnez l'onglet Projet.

3	Indiquez le nom et l'emplacement de votre répertoire d'archives dans le champ Nouveau répertoire d'archive.

4	Cliquez sur Ajouter nouveau répertoire à liste, puis sur Fermer pour fermer la boîte de dialogue.


Vous ne pouvez ajouter des répertoires d'archive qu'après avoir défini le paramètre DEV2000_PROJECT dans le fichier oracle.ini. Sous Microsoft Windows, définissez ce paramètre de la manière suivante :

DEV2000_PROJECT=C:\PVCS\PROJECT1\PROJECT1.CFG

Pour éditer le paramètre DEV2000_PROJECT, utilisez le fichier Oracle.ini sous Windows 3.1, et la base de registres sous Windows 95/98 et NT.


Archivage d'un fichier

  Etape suivante	  Rubriques connexes

Pour archiver un fichier :

1	Choisissez Fichier [image] Administration [image] Archiver pour afficher la boîte de dialogue Contrôle de source : archivage.

2	Entrez le nom du fichier à archiver dans la boîte de texte Fichier de travail.

3	Indiquez l'emplacement de votre archive dans le champ Archive.

4	(Facultatif) Fournissez un Libellé de version, un Groupe de promotion et une Description.

5	(Facultatif) Cliquez sur la case à cocher Garder le fichier verrouillé si vous voulez qu'une copie modifiable du fichier soit disponible localement, même après son archivage. Ce type de copie permet, sans avoir à extraire le fichier, de le modifier et d'archiver les modifications ultérieures du fichier sans avoir à l'extraire.

6	Cliquez sur OK pour archiver votre fichier.

PVCS archive le fichier.


Extraction d'un fichier

  Etape suivante	  Rubriques connexes

Pour extraire un fichier :

1	Choisissez Fichier [image] Administration [image] Extraire pour afficher la boîte de dialogue Contrôle de source : extraction.

2	Indiquez l'emplacement de l'archive source dans le champ Depuis l'archive.

3	Entrez dans la boîte de texte Nom de fichier le nom du fichier que vous voulez extraire.

4	Sélectionnez une révision de fichier dans le champ Révisions.

5	(Facultatif) Indiquez la destination en entrant un chemin dans le champ Destination.

6	(Facultatif) Pour verrouiller le fichier que vous extrayez, choisissez le Groupe de promotion de niveau Développement qui sera attribué à la révision en cours d'extraction.

7	(Facultatif) Cliquez sur la case à cocher Verrouiller ce fichier Remarque :

8	(Facultatif) Cliquez sur la case à cocher Ouvrir fichier après extraction. Si cette case est déjà cochée, le fichier extrait sera ouvert dans Designer lorsqu'il aura été extrait de PVCS.

9	Cliquez sur OK pour extraire le fichier.


Si vous voulez modifier un fichier d'archives, vous devez valider la case à cocher Verrouiller ce fichier pour archiver vos modifications. Sinon, la version extraite sera la version en lecture seule.


Création d'un état d'archives

  Rubriques connexes

Pour créer un état d'archives :

1	Choisissez Fichier [image] Administration [image] Gestion des archives et rapports.

2	Cliquez sur l'onglet Etat pour afficher la page Contrôle de source : options Etat.

3	Indiquez l'emplacement de l'archive dans le champ Archive.

4	Indiquez le nom du fichier d'archive dans le champ Fichier source. Pour générer l'état, PVCS compare ce fichier et le fichier cible.

5	Indiquez le nom d'un fichier cible dans le champ Fichier cible.  Remarque

6	Sélectionnez les révisions du fichier dans les champs Révision source et Révision cible, respectivement.

7	Indiquez le nom et l'emplacement de l'état dans le champ Fichier de sortie, puis cliquez sur Exécuter état.

PVCS crée l'état. Si vous avez indiqué un programme de visualisation en utilisant la variable d'environnement DEV2000_SCVIEWER ou le paramètre oracle.ini, ce programme sera appelé pour afficher la sortie. Sinon, utilisez un éditeur pour ouvrir votre fichier état.


Si vous comparez deux révisions stockées dans la même archive, entrez le nom du fichier d'archive que vous avez fourni à l'étape 4. Si vous comparez des fichiers d'archive différents, indiquez un fichier d'archive différent dans le champ Fichier cible.


Boîte de dialogue Contrôle de source : Archivage

  Rubriques connexes

Permet de fusionner le fichier indiqué dans l'archive indiquée.

Cette boîte de dialogue comporte les options suivantes :

Nom de fichier	Permet d'indiquer le nom du fichier que vous allez archiver. Choisissez Parcourir pour appeler une boîte de dialogue dans laquelle vous pourrez sélectionner un fichier.
Archive	Liste déroulante de toutes les archives disponibles pour le projet en cours. Sélectionnez l'archive dans laquelle le fichier doit être enregistré.
Libellé de version	(Facultatif) Permet d'indiquer le libellé de la version du fichier.
Groupe de promotion	Si vous avez défini un modèle de promotion pour votre projet PVCS, cette liste est activée. Choisissez le groupe de promotion de niveau Développement qui doit être attribué à la révision à archiver.
Description	Permet de décrire les modifications apportées à cette révision. Bien que ce champ soit facultatif, il est conseillé de le remplir pour faciliter l'identification des révisions lors de leur extraction.
Garder le fichier verrouillé ?	Permet d'indiquer si une copie modifiable du fichier d'archivage est disponible localement, même après l'archivage du fichier. Ce type de copie permet, sans avoir à extraire le fichier, de le modifier et d'enregistrer les modifications ultérieures.


Boîte de dialogue Contrôle de source : Extraction

  Rubriques connexes

Permet d'extraire d'une archive le fichier que vous voulez éditer.

Cette boîte de dialogue comprend les options suivantes :

Depuis l'archive	Permet d'indiquer le nom du répertoire d'archive contenant le fichier à extraire.
Nom de fichier	Permet d'indiquer le nom du fichier à extraire du contrôle de source. Choisissez Parcourir pour appeler une boîte de dialogue dans laquelle vous pourrez sélectionner un fichier.
Révisions	Affiche les révisions disponibles ainsi que les libellés de version du fichier sélectionné dans le champ Nom de fichier.
Description	Dresse la liste des descriptions des versions disponibles énumérées dans la liste Révisions.
Répertoire cible	(Facultatif) Permet d'indiquer le répertoire de destination du fichier à extraire.
Groupe de promotion	Si vous avez défini un modèle de promotion pour votre projet PVCS, cette liste est activée. Si vous voulez verrouiller le fichier à extraire, choisissez le groupe de promotion de niveau Développement qui sera attribué à la révision à extraire.
Verrouiller fichier à l'extraction	Permet d'indiquer si le fichier à extraire doit être marqué verrouillé. Un fichier verrouillé est protégé contre les mises à jour par d'autres utilisateurs.
Ouvrir fichier après extraction	Si vous cochez cette case, le fichier sera ouvert dans Designer après avoir été extrait de PVCS.


Boîte de dialogue Contrôle de source : Options

  Rubriques connexes

Cette boîte de dialogue comprend trois onglets :

Options de projet

Options de fichier

Options d'état


Contrôle de source : page Options de projet

  Rubriques connexes

La page Options de projet permet d'ajouter et de supprimer des répertoires d'archives dans votre fichier de configuration de projet.

Cette page comporte les option suivantes :

Projet en cours	Nom du fichier de configuration du projet PVCS en cours. Sa valeur initiale est la valeur de DEV2000_PROJECT dans le fichier oracle.ini. Pour afficher la boîte de dialogue de fichiers de votre système d'exploitation, entrez directement un nom de fichier ou cliquez sur Parcourir.
Nouveau répertoire d'archives	Permet d'indiquer le nom du nouveau répertoire d'archives à ajouter à la liste des répertoires d'archives disponibles dans le projet en cours. Pour afficher la boîte de dialogue de fichiers de votre système d'exploitation entrez un nom de répertoire ou cliquez sur Parcourir.
Liste des répertoires d'archives	Affiche les répertoires d'archives disponibles dans le projet en cours.
Ajouter nouveau répertoire à la liste	Après avoir entré un répertoire d'archives dans la boîte de texte Nouveau répertoire d'archives, cliquez sur Ajouter nouveau répertoire à liste pour ajouter ce répertoire au projet en cours. Une fois  ajouté, le répertoire apparaîtra dans la liste.
Retirer répertoire sélectionné de la liste	Sélectionnez un répertoire d'archives de la liste, puis cliquez sur Supprimer répertoire sélectionné de la liste pour le supprimer du projet.


Contrôle de source : page Options de fichier

  Rubriques connexes

La page Options de fichier permet de verrouiller ou de déverrouiller une archive ou de générer un journal d'activités de cette archive.

Cette page comporte les options suivantes :

Archive	Liste déroulante de tous les répertoires d'archives du fichier de configuration de projet en cours.
Nom de fichier	Permet d'indiquer le fichier d'archives auquel vous voulez accéder. Vous pouvez entrer directement le nom du fichier ou en choisir un à l'aide de Parcourir. Si la configuration de votre projet PVCS prévoit d'ignorer les chemins d'accès au fichier de travail, vous pouvez indiquer soit un fichier de travail, soit un fichier d'archives. Sinon, vous ne pouvez indiquez qu'un fichier d'archives.
Révisions	Cette liste déroulante affiche toutes les révisions et tous les libellés de version du fichier sélectionné. Elle comporte aussi une entrée vide qui indique l'absence de sélection. Si vous sélectionnez une révision, elle sera verrouillée ou non verrouillée. Si vous ne sélectionnez pas de révision, le comportement du programme dépendra de la présence ou de l'absence d'une définition de modèle de promotion. Si vous n'avez pas défini de modèle, la révision sera verrouillée. Si vous avez défini un modèle, la révision attribuée au groupe de promotion indiqué sera verrouillée. En cas de sélection de Déverrouiller sans révision sélectionnée, tous les verrous que vous avez posés sur le fichier seront supprimés.
Groupe de promotion	Si vous avez défini un modèle de promotion pour votre projet PVCS, cette liste est activée et affiche tous les groupes de promotion de niveau Développement de votre modèle de promotion. Lorsque vous verrouillez une révision, le groupe de promotion indiqué dans cette liste lui est attribué.
Nom du fichier de journalisation	Permet d'indiquer le nom du fichier de journalisation.
Type de journalisation	Permet d'indiquer le type des mises à jour à entrer dans le fichier de journalisation indiqué lors d'un archivage ou d'une extraction.
Verrouiller révision	Permet de verrouiller le fichier indiqué dans le champ Nom de fichier, sans l'extraire du contrôle de source. Un fichier verrouillé est protégé contre les mises à jour par d'autres utilisateurs. Si vous sélectionnez une révision de la liste Révisions, elle est verrouillée. Si vous n'en sélectionnez pas, la révision (ou celle attribuée au groupe de promotion indiqué) est verrouillée. Si vous avez défini un modèle de promotion pour votre projet PVCS, le groupe de promotion indiqué est attribué à la révision verrouillée.
Déverrouiller révision	Permet de déverrouiller le fichier indiqué dans le champ Nom de fichier pour permettre à d'autres utilisateurs d'extraire et de modifier le fichier d'archives. Si vous avez sélectionné une révision de la liste Révisions, elle sera déverrouillée. Si vous n'en sélectionnez pas, tous les verrous que vous avez posés sur les révisions du fichier sont libérés.
Générer journalisation	Permet de générer un fichier de journalisation ayant le nom indiqué. Le type d'entrée dans ce fichier journalisation est déterminé par l'option Type de journalisation. Si vous avez indiqué un programme de visualisation en utilisant la variable d'environnement DEV2000_SCVIEWER ou le paramètre oracle.ini, ce programme sera appelé pour afficher la sortie.


Contrôle de source : page Options d'état

  Rubriques connexes

La page Options d'état permet de définir et de créer des états d'archive.

Cette page comporte les options suivantes :

Archive	Liste déroulante de tous les répertoires d'archives du fichier de configuration de projet en cours.
Fichier source	Permet d'indiquer le premier fichier à utiliser pour générer un état des différences. Vous pouvez entrer directement le nom, ou choisir un fichier en utilisant le bouton adjacent Parcourir. Si la configuration de votre projet PVCS prévoit d'ignorer les chemins d'accès au fichier de travail, vous pouvez indiquer soit un fichier de travail, soit un fichier d'archives. Sinon, vous ne pouvez indiquez qu'un fichier d'archives.
Révision source	Liste déroulante de toutes les révisions et de tous les libellés de version du fichier source.
Fichier cible	Permet d'indiquer le nom du fichier cible. Pour générer un état, PVCS compare le fichier source et le fichier cible.
Révision cible	Liste déroulante de toutes les révisions et de tous les libellés de version du fichier cible.
Fichier de sortie	Permet d'indiquer le répertoire de destination et le nom du fichier dans lequel devra être entré l'état des différences découlant de la comparaison de deux fichiers.
Exécuter état	Permet de créer un état en fonction des options indiquées. Si vous avez indiqué un programme de visualisation en utilisant la variable d'environnement DEV2000_SCVIEWER ou le paramètre oracle.ini, ce programme sera appelé pour afficher la sortie.


Messages d'erreur

Les messages d'erreur qui peuvent s'afficher lorsque vous utilisez les boîtes de dialogue d'interface de contrôle de source sont décrits ci-dessous.

D2SCP-001 :	Accès au fichier refusé par le système de fichiers

 Cause :	Vous n'êtes pas autorisé par le système de fichiers à lire des fichiers d'archives, à écrire des fichiers de travail ou à écrire la sortie de l'état ou la sortie journal.

 Action :	Si vous estimez que vous devez avoir accès à ces fichiers, contactez votre administrateur système.

D2SCP-002 :	Privilèges d'accès insuffisants du gestionnaire de version

 Cause :	Vous n'êtes pas autorisé par PVCS à accéder à l'archive que vous avez indiquée. Ce message apparaît également si la modification des répertoires d'archives a été désactivée dans le projet maître et que vous tentiez de les modifier dans l'onglet Options de projet de la boîte de dialogue Options.

 Action :	Si vous estimez que vous devez avoir accès à cette archive, contactez votre administrateur système.

D2SCP-003 :	Cette archive existe déjà

 Cause :	Ce message indique une erreur interne et ne devrait pas apparaître.

 Action :	S'il réapparaît lorsque vous répétez l'opération, contactez le Support technique Oracle.

D2SCP-004 :	Archive spécifiée introuvable

 Cause :	Vous avez entré ou sélectionné un fichier qui n'était pas une archive, alors qu'il fallait indiquer un fichier d'archives. Ce message apparaît généralement lorsque vous sélectionnez le fichier de travail au lieu du fichier d'archives (par exemple, MONAPPLI.FMB au lieu de MONAPPLI.FMV).

 Action :	Utilisez le bouton Parcourir pour choisir un fichier d'archives.

D2SCP-005 :	Nom de fichier, unité ou chemin non valide ou menu de fichier contient des caractères non valides

 Cause :	Le nom de fichier que vous avez entré n'est pas un nom de fichier valide pour le système d'exploitation.

 Action :	Vérifiez la syntaxe du nom de fichier.

D2SCP-006 :	Fichier en cours d'utilisation par un autre processus

 Cause :	Le fichier auquel vous tentez d'accéder a été ouvert par un autre utilisateur PVCS.

 Action :	Si vous attendez un peu avant de tenter à nouveau d'exécuter l'opération, ce message ne devrait plus apparaître.

D2SCP-007 :	Echec de conversion. Le fichier de travail est en lecture seule ou n'est pas pris en charge

 Cause :	Causes possibles :

A.	Votre fichier de travail est en lecture seule. Par exemple, vous extrayez le fichier sans le verrouiller, puis vous le verrouillez dans la boîte de dialogue Options.

B.	Vous avez tenté d'archiver ou d'extraire un fichier d'un type non reconnu.

 Action :	Pour corriger cette erreur, vous pouvez exécuter les opérations suivantes.

A.	Utiliser le Gestionnaire de fichiers ou l'explorateur de Windows pour permettre l'écriture dans le fichier avant de poursuivre.

B.	Archiver ou extraire le fichier en utilisant l'interface PVCS autonome.

Notez que vous pouvez extraire n’importe quel fichier à condition qu’il soit reconnu, car Oracle Developer ne peut que déterminer s'il s'agit d'un type de fichier pris en charge à partir du fichier de travail. Lorsque vous archivez un fichier, le fichier de travail permet à Oracle Developer de tester le fichier avant de l'archiver. Lorsque vous extrayez un fichier, Developper/2000 commence par l'extraire pour obtenir un fichier de travail. Ce n'est qu'à ce stade qu'il teste le fichier. Vous pouvez donc ignorer cette erreur lors d'une extraction si vous savez que le fichier n'est pas un fichier Oracle Developer.

D2SCP-008 :	Valeurs non valides ou insuffisantes

 Cause :	Ce message indique une erreur interne et ne devrait pas apparaître.

 Action :	S'il réapparaît lorsque vous répétez l'opération, contactez le Support technique Oracle.

D2SCP-010 :	Le libellé de version existe déjà

 Cause :	Vous avez indiqué dans la boîte de dialogue Archivage un libellé de version qui existe déjà pour le fichier que vous archivez. PVCS requiert que les libellés de version soient uniques.

 Action :	Changez le libellé. Pour afficher les libellés utilisés, utilisez la fonction Journal de l'onglet Options de fichiers de la boîte de dialogue Options.

D2SCP-011 :	La révision spécifiée n'existe pas

 Cause :	Ce message indique une erreur interne et ne devrait pas apparaître.

 Action :	S'il réapparaît lorsque vous avez répété l'opération, contactez le Support technique Oracle.

D2SCP-012 :	Fichier de configuration spécifié non valide

 Cause :	Causes possibles :

A.	Le fichier que vous avez choisi dans l'onglet Options de projet de la boîte de dialogue Options n'est pas un fichier de configuration PVCS valide.

B.	Si cette erreur apparaît lorsque vous tentez d'accéder à la boîte de dialogue Archivage ou Extraction, le fichier de configuration indiqué dans la variable d'environnement DEV2000_PROJECT n'est pas valide.

 Action :	Pour corriger cette erreur, vous pouvez exécuter les opérations suivantes.

A.	Sélectionner un fichier valide.

B.	Modifier la variable ou utiliser l'onglet Options de projet de la boîte de dialogue Options pour définir un fichier de configuration valide.

D2SCP-013 :	Vous devez d'abord choisir un projet depuis 'Contrôle de source : Options'

 Cause :	Vous avez tenté d'accéder à la boîte de dialogue Archivage ou Extraction sans avoir indiqué de projet, en utilisant soit la variable DEV2000_PROJECT du fichier ORACLE.INI, soit l'onglet Options de projet de la boîte de dialogue Options.

 Action :	Vous devez passer à l'onglet Options de projet et sélectionner un projet avant de poursuivre.

D2SCP-014 :	Mise à jour impossible du fichier de configuration de projet

 Cause :	Vous avez tenté d'ajouter ou de supprimer des répertoires d'archives dans le fichier de configuration de projet, sans être autorisé à écrire dans le fichier ou le répertoire dans lequel se trouve le fichier.

 Action :	Consultez votre administrateur système ou PVCS si vous estimez que vous devriez avoir cette autorisation.

D2SCP-015 :	Révision non verrouillée

 Cause :	Vous avez tenté d'archiver une révision que vous n'avez pas verrouillée, ou de déverrouiller une révision que vous n'avez pas verrouillée (à partir de l'onglet Options de fichier).

 Action :	Si vous avez modifié la révision, verrouillez-la à partir de l'onglet Options de fichier avant de l'archiver.

D2SCP-016 :	Verrouillage impossible de la révision spécifiée

 Cause :	Vous avez tenté d'extraire une révision verrouillée à partir de la boîte de dialogue Extraction ou de verrouiller une révision à partir de l'onglet Options de fichiers, mais PVCS n'a pas pu vous autoriser à effectuer le verrouillage. Causes possibles :

A.	La révision est déjà verrouillée, par vous ou par quelqu'un d'autre.

B.	Votre projet ne permet pas les verrous multiples, et la révision est déjà verrouillée.

C.	Si votre projet comporte un modèle de promotion, le groupe de promotion que vous avez indiqué est peut être déjà attribué à une révision verrouillée.

 Action :	Pour corriger cette erreur, vous pouvez exécuter les opérations suivantes.

A.	Utilisez la fonction de journalisation pour connaître le propriétaire du verrou et, si vous avez déjà verrouillé la révision, extrayez-la sans demander de verrou. Si quelqu'un d'autre a verrouillé le fichier, attendez qu'il le déverrouille avant d'extraire le fichier à modifier.

B.	Attendez que la révision ou le fichier soit disponible, ou envisagez d'autoriser plusieurs verrous par fichier dans votre projet.

C.	Attendez que le groupe de promotion soit disponible (c'est-à-dire ne soit pas attribué à une révision verrouillée) ou utilisez un autre groupe de promotion de niveau Développement.

D2SCP-017 :	Le répertoire spécifié n'existe pas

 Cause :	Vous avez indiqué un répertoire qui n'existe pas. Cette erreur apparaît souvent en cas d'extraction de fichier lorsque l'emplacement dans lequel il a été archivé n'existe pas sur votre poste de travail.

 Action :	Dans ce cas, éditez le fichier Cible pour qu'il pointe sur un répertoire existant.

D2SCP-018 :	Réacheminement impossible de la sortie vers fichier

 Cause :	Le nom de fichier que vous avez indiqué pour la sortie de l'état des différences ou le journal n'est pas valide, ou bien le fichier n'a pas pu être ouvert en écriture.

 Action :	Indiquez un nom de fichier valide et pouvant être utilisé en écriture.

D2SCP-100 :	PVCS Erreur numéro - mot-clé

 Cause :	PVCS a émis une erreur que l'interface de contrôle de source n'a pas pu traiter.

Action :	Reportez-vous à votre documentation PVCS en utilisant le numéro de l'erreur ou son mot-clé, et prenez les mesures nécessaires.


Pourquoi l'interface du gestionnaire de configuration de PVCS n'affiche-t-elle pas les nouveaux fichiers ou les révisions ?

Lorsque j'archive des fichiers et attribue des libellés de version, l'interface du gestionnaire de configuration de PVCS n'affiche pas les nouveaux fichiers ou les révisions. Que faire ?

Le dossier de projet doit être mise à jour par l'utilisation des nouvelles informations figurant dans les archives (nouveaux fichiers et révisions). Pour cela, choisissez Mettre à jour dossier projet dans le menu Projet de niveau supérieur de PVCS. Les nouveaux fichiers et les révisions doivent alors être visibles dans la fenêtre "Dossiers" de PVCS.


Pourquoi les options de menu de contrôle de source ne sont-elles activées que dans un produit ?

Si j'exécute simultanément plusieurs produits, les options de menu de contrôle de source ne sont activées que dans l'un d'entre eux. Pourquoi ?

PVCS sous Windows n'est pas invariant - cela signifie qu'à un moment donné un seul programme (programme activé par PVCS comme Report Builder ou l'interface PVCS elle-même) peut accéder aux services PVCS. Vous devrez sortir du programme dont les menus sont activés, et de celui à partir duquel vous voulez accéder aux services PVCS, puis relancer celui dans lequel vous voulez accéder à PVCS.


Pourquoi le système affiche-t-il un message d'erreur indiquant que PVCS ne peut pas trouver l'archive ?

Lorsque j'ai tenté d'extraire un état, j'ai choisi le fichier .RDV (fichier d'archives), mais je reçois toujours un message indiquant que PVCS ne peut pas trouver l'archive. Que se passe-t-il ?

Même si vous avez choisi un fichier .RDV, il est possible qu'il ne s'agisse pas du fichier d'archives. Report Builder écrit ses fichiers intermédiaires (ASCII) avec le suffixe .RDV avant de les archiver. (Pour tout détail, reportez-vous à A propos de la mise en oeuvre de PVCS  Vérifiez que vous sélectionnez bien un fichier .RDV dans le répertoire d'archives, et non le répertoire de travail. Pour éviter cette confusion, vous pouvez :

•	Définir l'option du projet PVCS de suppression des fichiers de travail après l'archivage. Dans ce cas, les fichiers .RDV intermédiaires d'état ne resteront pas sur votre disque.

•	Modifier la règle relative aux suffixes pour que les fichiers .RDV archivés aient un suffixe différent, par exemple .VRD, ce qui évitera les confusions entre les fichiers .VRD et les fichiers .RDV lors de l'extraction.

•	Configurer votre projet de manière à ignorer les chemins d'accès au fichier de travail lorsque vous explorez les archives, ce qui permet d'indiquer le fichier de travail (dans ce cas, le fichier .RDF) et non le fichier d'archive, lors de l'extraction.

Ces options figurent dans l'interface utilisateur du gestionnaire de configuration PVCS, dans l'option de menu de configuration de projet.


Comment être certain d'utiliser le nom utilisateur approprié lorsque je verrouille un fichier ?

Lorsque je verrouille un fichier (ou que j'extrais un fichier verrouillé) l'ID utilisateur est défini à "UNKNOWN" pour que d'autres utilisateurs puissent archiver ou déverrouiller le fichier. Comment être certain que le nom utilisateur que j'utilise est correct ?

L'option de configuration de projet de PVCS "Login Source" de la section Réseau des options de configuration de projet de PVCS (dans l'interface du gestionnaire de versions de PVCS) évite ce type de problème, car elle permet de définir la façon dont PVCS détermine l'ID utilisateur en cours. Par exemple, avec un réseau NETWARE, vous pouvez demander à PVCS d'utiliser l'ID de connexion NETWARE en cours. Sous Windows NT, vous pouvez utiliser l'ID de connexion NT en choisissant la source de connexion "HOST". Pour plus de détails, consultez votre documentation PVCS.


Comment faire pour sélectionner les fichiers de travail à extraire ?

Y-a-t-il une procédure qui permette de sélectionner des fichiers de travail, et non des fichiers d'archives à extraire ?

Vous pouvez utiliser l'option de configuration de projet de PVCS "Ignore Workfile Path" de la section "Archive Searching" des options de configurations de projet de PVCS (dans l'interface du gestionnaire de versions de PVCS). Si vous activez cette option, vous pourrez sélectionner soit des fichiers de travail soit des fichiers d'archive dans les boîtes de dialogue Extraction et Contrôle de source : Options.


J'ai reçu un message indiquant que VCSDIR n'est pas autorisé dans le fichier de configuration de projet. Pourquoi ?

J'ai configuré mon projet maître de manière à désactiver le changement des répertoires d'archives. Dans l'interface du Gestionnaire de versions de PVCS, je ne peux pas changer les répertoires d'archives d'un sous-projet, ce qui est normal. Mais dans Oracle Developer c'est possible. Par la suite, à partir de l'interface du Gestionnaire de versions de PVCS, un message d'erreur m'a indiqué que VCSDIR n'était pas autorisé dans le fichier de configuration du projet. Que s'est-il passé ?

L'interface du Gestionnaire de versions de PVCS a recherché dans sa racine un fichier MASTER.CFG par défaut, et l'a probablement trouvé. C'est la raison pour laquelle il a généré l'erreur indiquée lorsque vous avez changé les répertoires d'archives. Pour rendre le fichier de configuration maître reconnaissable, vous devez configurer PVCS en utilisant la commande VCONFIG. Cette commande encode le nom de votre fichier de configuration maître dans les bibliothèques PVCS, et garantit que personne ne peut modifier accidentellement la liste des répertoires d'archives. Reportez-vous aux sections "Master Configuration File" et "VCONFIG Command" dans PVCS Command-Line Reference Guide INTERSOLV.


• 9


Accès à des sources de données non Oracle

  Rubriques connexes

Via Oracle Open Client Adapter (OCA), votre application peut se connecter à toute source de données ODBC. Des informations particulières vous sont fournies concernant les sources de données énumérées ci-dessous.

Cliquez sur la source de données à laquelle vous voulez accéder :

Personal Oracle Lite

Microsoft SQL Server  (versions 4.2, 6.0 et 6.5)

Microsoft Access  (version 2.0 et ultérieures)

Oracle Rdb  (versions 5.1, 6.1 et 7.0)

Sybase   (SQL Server version 4.9, System 10 et System 11)

Tandem NonStop SQL

Informix   (SE et Online versions 5.x, 6.x et 7.x)


Préparation pour l'utilisation de OCA (Open Client Adapter)

  Rubriques connexes

Pour configurer votre système en vue de l'utilisation de OCA :

1	Installez le serveur de base de données et le logiciel client nécessaires, y compris les bibliothèques réseau. Configurez votre base de données, créez les comptes de base de données et accordez aux utilisateurs les autorisations d'accès appropriées. Notez que pour certaines sources de données mono-utilisateurs et mono-ordinateurs, comme par exemple Microsoft Access, les notions de serveur ou de client de base de données n'interviennent pas et qu'aucune configuration particulière n'est requise (il vous faut cependant créer le fichier de base de données dans lequel stocker les tables de base de données).

2	Installez sur votre ordinateur client les pilotes ODBC nécessaires et configurez la source de données à l'aide de Microsoft ODBC Administrator (automatiquement installé avec les pilotes). Les pilotes ODBC Intersolv (pour SQL Server, Rdb, Sybase, Informix, Ingres et de nombreuses autres bases de données) sont installables à partir de votre CD d'installation. Vous pouvez également utiliser des pilotes écrits par Microsoft, IBM et d'autres fournisseurs de pilotes ODBC.


Accès à Personal Oracle Lite

  Rubriques connexes 	  Ouvre oca_info.pdf

Pour accéder à Personal Oracle Lite :

1	Configurez votre système pour l'utilisation de OCA (Open Client Adapter).

2	Lisez attentivement les notes de version et la documentation PDF (oca_info.pdf).

3	Exécutez les scripts SQL permettant de créer côté serveur des vues de dictionnaires de données utilisées par les composants de conception pour afficher des noms d'objets de base de données parmi lesquels effectuer une sélection. Remarque

UBT32.EXE utilisateur/motdepasse@ODBC:sourcedonnées[:nombd] @sqlscript  Exemple

Si nombd n'est pas précisé, les vues seront créées dans la base de données " courante " pour la connexion ODBC.

4	Lancez l'application Builder.

5	(Facultatif)  Exécutez les scripts SQL permettant de créer et de remplir les tables de démonstration. Exemple

6	(Form Builder seulement) Définissez à Oui la propriété Clé primaire pour chaque élément de données. Les éléments de données correspondent aux colonnes dans votre source de données.

7	Lorsque vous êtes prêt à vous connecter à la source de données Personal Oracle Lite, entrez la chaîne de connexion suivante dans la boîte de dialogue Connexion :

[utilisateur[/motdepasse]]@ODBC:sourcedonnées[:nombd]  Exemple

Pour plus d'informations sur l'accès à Personal Oracle Lite, reportez-vous à la rubrique oca_info.pdf.


Init_Form est la routine OPENDB qui modifie automatiquement vos propriétés de niveau application Forms afin que votre application Forms puisse communiquer avec une source de données ODBC.


OCA.PLL se trouve dans votre répertoire ORACLE_HOME\oca20. Pour que Form Builder puisse le retrouver, vous devez ajouter le répertoire ORACLE_HOME\oca20 à la variable d'environnement FORMS50_PATH dans la base de registres.


Accès à Microsoft SQL Server

  Rubriques connexes	  Ouvre oca_info.pdf.

Pour accéder à Microsoft SQL Server :

1	Configurez votre système pour l'utilisation de OCA (Open Client Adapter).

2	Lisez attentivement les notes de version et la documentation PDF (oca_info.pdf).

3	Exécutez les scripts SQL permettant de créer côté serveur des vues de dictionnaires de données qui affichent les noms d'objets de base de données parmi lesquels effectuer une sélection au moment de la conception. Remarque

UBT32.EXE utilisateur/motdepasse@ODBC:sourcedonnées[:nombd] @sqlscript  Exemple

Si nombd n'est pas précisé, les vues seront créées dans la base de données " courante " pour la connexion ODBC.

4	Lancez l'application Builder.

5	(Facultatif)  Exécutez les scripts SQL permettant de créer et de remplir les tables de démonstration. Exemple

6	(Form Builder seulement) Définissez à Oui la propriété Clé primaire pour chaque élément de données. Les éléments de données correspondent aux colonnes dans votre source de données.

7	Lorsque vous êtes prêt pour la connexion à la source de données Microsoft SQL Server, entrez la chaîne de connexion suivante dans la boîte de dialogue Connexion :

[utilisateur[/motdepasse]]@ODBC:sourcedonnées[:nombd]  Exemple

Pour plus d'informations sur l'accès à Microsoft SQL Server, reportez-vous à la rubrique oca_info.pdf.


Accès à Rdb
Accès à Oracle Rdb

  Rubriques connexes 	  Ouvre oca_info.pdf

Pour accéder à Oracle Rdb :

1	Configurez votre système pour l'utilisation de OCA (Open Client Adapter).

2	Lisez attentivement les notes de version et la documentation PDF (oca_info.pdf).

3	Exécutez les scripts SQL permettant de créer côté serveur des vues de dictionnaires de données qui affichent les noms d'objets de base de données parmi lesquels effectuer une sélection au moment de la conception. Remarque

UBT32.EXE utilisateur/motdepasse@ODBC:sourcedonnées[:nombd] @sqlscript  Exemple

Si nombd n'est pas précisé, les vues seront créées dans la base de données " courante " pour la connexion ODBC.

4	Lancez l'application Builder.

5	(Facultatif)  Exécutez les scripts SQL permettant de créer et de remplir les tables de démonstration. Exemple

6	(Form Builder seulement). Attachez la bibliothèque OCA.PLL à votre application, puis créez un déclencheur Pre-Form ou When-New-Form-Instance comprenant la routine OPENDB.Init_Form.

7	Lorsque vous êtes prêt pour la connexion à la source de données Oracle Rdb, entrez la chaîne de connexion suivante dans la boîte de dialogue Connexion :

[utilisateur[/motdepasse]]@ODBC:sourcedonnées[:nombd]  Exemple

Pour plus d'informations sur l'accès à Personal Rdb, reportez-vous à la rubrique oca_info.pdf.


Accès à Microsoft Access

  Rubriques connexes 	  Ouvre oca_info.pdf

Pour accéder à Microsoft Access :

1	Configurez votre système pour l'utilisation de OCA (Open Client Adapter).

2	Lisez attentivement les notes de version et la documentation PDF (oca_info.pdf).

3	(Facultatif) Exécutez les scripts SQL permettant de créer et de remplir les tables de démonstration à l'aide de l'utilitaire UBT.

UBT32.EXE utilisateur/motdepasse@ODBC:sourcedonnées[:nombd] @sqlscript  Exemple

Si nombd n'est pas précisé, les vues seront créées dans la base de données " courante " pour la connexion ODBC.

4	Lancez l'application Builder.

5	(Form Builder seulement) Définissez à Oui la propriété Clé primaire pour chaque élément de données. Les éléments de données correspondent aux colonnes dans votre source de données.

6	Lorsque vous êtes prêt pour la connexion à la source de données Microsoft Access, entrez la chaîne de connexion suivante dans la boîte de dialogue Connexion :

[utilisateur[/motdepasse]]@ODBC:sourcedonnées[:nombd]  Exemple

Pour plus d'informations sur l'accès à Microsoft Access, reportez-vous à la rubrique oca_info.pdf.


Accès à Sybase

  Rubriques connexes 	  Ouvre oca_info.pdf.

Pour accéder à Sybase :

1	Configurez votre système pour l'utilisation de OCA (Open Client Adapter).

2	Lisez attentivement les notes de version et la documentation PDF (oca_info.pdf).

3	Exécutez les scripts SQL permettant de créer côté serveur des vues de dictionnaires de données qui affichent les noms d'objets de base de données parmi lesquels effectuer une sélection au moment de la conception. Remarque

UBT32.EXE utilisateur/motdepasse@ODBC:sourcedonnées[:nombd] @sqlscript  Exemple

Si nombd n'est pas précisé, les vues seront créées dans la base de données " courante " pour la connexion ODBC.

4	Lancez l'application Builder.

5	(Facultatif)  Exécutez les scripts SQL permettant de créer et de remplir les tables de démonstration. Exemple

6	(Form Builder seulement) Définissez à Oui la propriété Clé primaire pour chaque élément de données. Les éléments de données correspondent aux colonnes dans votre source de données.

7	Lorsque vous êtes prêt pour la connexion à la source de données Sybase, entrez la chaîne de connexion suivante dans la boîte de dialogue Connexion :

[utilisateur[/motdepasse]]@ODBC:sourcedonnées[:nombd]  Exemple

Pour plus d'informations sur l'accès à Sybase, reportez-vous à la rubrique oca_info.pdf.


Accès à Tandem NonStop SQL

  Rubriques connexes 	  Ouvre oca_info.pdf

Pour accéder à Tandem NonStop SQL :

1	Configurez votre système pour l'utilisation de OCA (Open Client Adapter).

2	Lisez attentivement les notes de version et la documentation PDF (oca_info.pdf).

3	Exécutez les scripts SQL permettant de créer côté serveur des vues de dictionnaires de données qui affichent les noms d'objets de base de données parmi lesquels effectuer une sélection au moment de la conception. Remarque

UBT32.EXE utilisateur/motdepasse@ODBC:sourcedonnées[:nombd] @sqlscript  Exemple

Si nombd n'est pas précisé, les vues seront créées dans la base de données " courante " pour la connexion ODBC.

4	Lancez l'application Builder.

5	(Facultatif)  Exécutez les scripts SQL permettant de créer et de remplir les tables de démonstration. Exemple

6	(Form Builder seulement) Définissez à Oui la propriété Clé primaire pour chaque élément de données. Les éléments de données correspondent aux colonnes dans votre source de données.

7	Lorsque vous êtes prêt pour la connexion à la source de données Tandem NonStop SQL, entrez la chaîne de connexion suivante dans la boîte de dialogue Connexion :

[utilisateur[/motdepasse]]@ODBC:sourcedonnées[:nombd]  Exemple

Pour plus d'informations sur l'accès à Tandem NonStop SQL, reportez-vous à la rubrique oca_info.pdf.


Accès à Informix

  Rubriques connexes 	  Ouvre oca_info.pdf

Pour accéder à Informix :

1	Configurez votre système pour l'utilisation de OCA (Open Client Adapter).

2	Lisez attentivement les notes de version et la documentation PDF (oca_info.pdf).

3	Exécutez les scripts SQL permettant de créer côté serveur des vues de dictionnaires de données qui affichent les noms d'objets de base de données parmi lesquels effectuer une sélection au moment de la conception. Remarque

UBT32.EXE utilisateur/motdepasse@ODBC:sourcedonnées[:nombd] @sqlscript  Exemple

Si nombd n'est pas précisé, les vues seront créées dans la base de données " courante " pour la connexion ODBC.

4	Lancez l'application Builder.

5	(Facultatif)  Exécutez les scripts SQL permettant de créer et de remplir les tables de démonstration. Exemple

6	(Form Builder seulement) Définissez à Oui la propriété Clé primaire pour chaque élément de données. Les éléments de données correspondent aux colonnes dans votre source de données.

7	Lorsque vous êtes prêt pour la connexion à la source de données Informix, entrez la chaîne de connexion suivante dans la boîte de dialogue Connexion :

[utilisateur[/motdepasse]]@ODBC:sourcedonnées[:nombd]  Exemple

Pour plus d'informations sur l'accès à Informix, reportez-vous à la rubrique oca_info.pdf.


A propos de OCA (Open Client Adapter)

  Ouvre oca_info.pdf.

OCA (Oracle Open Client Adapter) pour ODBC permet aux applications sous Microsoft Windows 3.1, Windows 95/98 et Windows NT d'accéder à des sources de données compatibles ODBC via des pilotes ODBC. OCA nécessite que le pilote ODBC soit compatible ODBC niveau 1. OCA utilise également certaines fonctions ODBC de niveau 2 en vue de meilleures performances, si cette possibilité est offerte par le pilote ODBC.

A l'aide d'OCA, une application peut accéder à différentes sources de données de façon homogène, ce qui permet à un développeur de concevoir une application capable de s'exécuter sans modifications sur une source de données parmi plusieurs possibles. L'application peut également être conçue en vue d'une source de données en particulier et tirer parti des fonctions propres à ce système.

OCA s'installe via l'installateur Oracle qui copie tous les fichiers nécessaires dans votre répertoire ORACLE_HOME. Un de ces fichiers, oca.pll, est une bibliothèque de fonctions PL/SQL que vous pouvez utiliser à partir d'applications pour :

•	ouvrir des connexions auxiliaires vers d'autres sources de données en sus de la connexion principale de l'application ;

•	exécuter des instructions SQL arbitraires et des appels de procédures stockées sur une connexion quelconque ;

•	récupérer des jeux de résultats à partir de procédures stockées non Oracle ;

•	obtenir les noms et versions de pilotes DBMS et ODBC d'une connexion donnée ;

•	adapter automatiquement les propriétés Application Forms et Bloc de données au moment de l'exécution, en fonction de la source de données.

Pour en savoir davantage sur ces fonctions, cliquez sur le bouton [image] en tête de cette rubrique.

Pour plus d'informations sur les autres fichiers install+s, reportez-vous au fichier relnotes


Par défaut, oca_info.pdf est installé dans ORACLE_HOME\TOOLS\DOC60\US. Si Adobe Acrobat Reader est installé dans le répertoire par défaut, cliquez sur le bouton [image] en tête de cette rubrique pour afficher ce document. Dans le cas contraire, lancez votre visualiseur PDF et ouvrez oca_info.pdf.


A propos de l'utilitaire UBT

OCA (Oracle Open Client Adapter) pour ODBC comprend un utilitaire de type SQL*Plus nommé UBT (Universal Backend Tester). UBT vous permet de manipuler des commandes SQL à l'intérieur de l'interpréteur ou via des fichiers de commandes.

L'exécutable de l'utilitaire UBT (UBT32.EXE pour Windows NT et Windows 95/98, et UBT.EXE pour Windows 3.1) est installé dans ORACLE_HOME\BIN.

Pour plus d'informations sur Oracle Client Adapter, reportez-vous à oca_info.pdf (comprend des informations sur l'utilitaire UBT).


Les notes sur la version d'OCA se trouvent dans le fichier RELNOTES.TXT du CD d'installation.


Par défaut, les informations relatives à l'accès à Personal Oracle Lite sont installées dans ORACLE_HOME\TOOLS\DOC60\US\oca_info.pdf. Si Adobe Acrobat Reader est installé dans le répertoire par défaut, cliquez sur le bouton [image] en tête de cette rubrique pour afficher ce document. Dans le cas contraire, lancez votre visualiseur PDF et ouvrez oca_info.pdf.


Ceci est facultatif pour le développement d'applications et n'est pas nécessaire au moment de l'exécution. Pour certaines bases de données (par exemple, Microsoft Access), les vues de dictionnaires de données ne peuvent pas être créées du fait d'une présentation inadaptée des informations du catalogue de bases de données et d'une absence de prise en charge de la création de vues. Dans ce cas, vous pouvez entrer les noms d'objets de base de données au moment de la conception au lieu de les sélectionner parmi une liste.


Par défaut, les scripts SQL permettant la création de vues de dictionnaires de données pour Personal Oracle Lite sont installés dans ORACLE_HOME\OCA20\SQL\POLITE :

polvudrp.sql	supprime toutes les anciennes versions des vues.

polvubld.sql	crée les vues nécessaires.


UBT32.EXE scott/tiger@ODBC:polite_ds @polvubld.sql


Par défaut, le script SQL permettant la création de tables de démonstration pour Personal Oracle Lite est installé dans ORACLE_HOME\OCA20\SQL\POLITE :

poldmbld.sql	crée les tables de démonstration.

Le script SQL permettant de remplir les tables de démonstration est installé dans ORACLE_HOME\OCA20\DEMO :

demodata.sql	insère des données dans les tables de démonstration.


UBT32.EXE scott/tiger@ODBC:polite_ds @poldmbld.sql


scott/tiger@ODBC:polite_ds


Par défaut, les informations relatives à l'accès à Microsoft SQL Server sont installées dans ORACLE_HOME\TOOLS\DOC60\US\oca_info.pdf. Si Adobe Acrobat Reader est installé dans le répertoire par défaut, cliquez sur le bouton [image] en tête de cette rubrique pour afficher ce document. Dans le cas contraire, lancez votre visualiseur PDF et ouvrez oca_info.pdf.


Par défaut, les scripts SQL permettant la création de vues de dictionnaires de données pour Microsoft SQL Server sont installés dans ORACLE_HOME\OCA20\SQL\SQLSRV :

sqsvudrp.sql	supprime toutes les anciennes versions des vues.

sqsvubld.sql	pour SQL Server version 4.2, crée les vues nécessaires.

sqs60bld.sql	pour SQL Server version 6.0, crée les vues nécessaires.


UBT32.EXE scott/tiger@ODBC:sqlserver_ds @sqsvubld.sql


Par défaut, le script SQL permettant la création de tables de démonstration pour Microsoft SQL Server est installé dans ORACLE_HOME\OCA20\SQL\SQLSRV :

sqsdmbld.sql	crée les tables de démonstration.

Le script SQL permettant de remplir les tables de démonstration est installé dans ORACLE_HOME\OCA20\DEMO :

demodata.sql	insère des données dans les tables de démonstration.


UBT32.EXE scott/tiger@ODBC:sqlserver_ds @sqsdmbld.sql


scott/tiger@ODBC:sqlserver_ds


Par défaut, les informations relatives à l'accès à Microsoft Access sont installées dans ORACLE_HOME\TOOLS\DOC60\US\oca_info.pdf. Si Adobe Acrobat Reader est installé dans le répertoire par défaut, cliquez sur le bouton [image] en tête de cette rubrique pour afficher ce document. Dans le cas contraire, lancez votre visualiseur PDF et ouvrez oca_info.pdf.


Par défaut, le script SQL permettant la création de tables de démonstration pour Microsoft Access est installé dans ORACLE_HOME\OCA20\SQL\ACCESS :

accdmbld.sql	crée les tables de démonstration.

Le script SQL permettant de remplir les tables de démonstration est installé dans ORACLE_HOME\OCA20\DEMO :

demodata.sql	insère des données dans les tables de démonstration.


UBT32.EXE scott/tiger@ODBC:access_ds @accdmbld.sql


scott/tiger@ODBC:access_ds


Par défaut, les informations relatives à l'accès à Oracle Rdb sont installées dans ORACLE_HOME\TOOLS\DOC60\US\oca_info.pdf. Si Adobe Acrobat Reader est installé dans le répertoire par défaut, cliquez sur le bouton [image] en tête de cette rubrique pour afficher ce document. Dans le cas contraire, lancez votre visualiseur PDF et ouvrez oca_info.pdf.


Par défaut, les scripts SQL permettant la création de vues de dictionnaires de données pour Oracle Rdb sont installés dans ORACLE_HOME\OCA20\SQL\RDB :

rdbvudrp.sql	supprime toutes les anciennes versions des vues.

rdbvubld.sql	crée les vues nécessaires.

rdbdual.sql	crée deux vues (pour la prise en charge de SYSDATE).


UBT32.EXE scott/tiger@ODBC:rdb_ds @rdbvubld.sql


Par défaut, le script SQL permettant la création de tables de démonstration pour Oracle Rdb est installé dans ORACLE_HOME\OCA20\SQL\RDB :

rdbdmbld.sql	crée les tables de démonstration.

Le script SQL permettant de remplir les tables de démonstration est installé dans ORACLE_HOME\OCA20\DEMO :

demodata.sql	insère des données dans les tables de démonstration.


UBT32.EXE scott/tiger@ODBC:rdb_ds @rdbdmbld.sql


scott/tiger@ODBC:rdb_ds


Par défaut, les informations relatives à l'accès à Sybase sont installées dans ORACLE_HOME\TOOLS\DOC60\US\oca_info.pdf. Si Adobe Acrobat Reader est installé dans le répertoire par défaut, cliquez sur le bouton [image] en tête de cette rubrique pour afficher ce document. Dans le cas contraire, lancez votre visualiseur PDF et ouvrez oca_info.pdf.


Par défaut, les scripts SQL permettant la création de vues de dictionnaires de données pour Sybase sont installés dans ORACLE_HOME\OCA20\SQL\SYBASE :

sybvudrp.sql	supprime toutes les anciennes versions des vues.

sybvubld.sql	crée les vues nécessaires.


UBT32.EXE scott/tiger@ODBC:sybase_ds @sybvubld.sql


Par défaut, le script SQL permettant la création de tables de démonstration pour Sybase est installé dans ORACLE_HOME\OCA20\SQL\SYBASE :

sybdmbld.sql	crée les tables de démonstration.

Le script SQL permettant de remplir les tables de démonstration est installé dans ORACLE_HOME\OCA20\DEMO :

demodata.sql	insère des données dans les tables de démonstration.


UBT32.EXE scott/tiger@ODBC:sybase_ds @sybdmbld.sql


scott/tiger@ODBC:sybase_ds


Par défaut, les informations relatives à l'accès à Tandem NonStop SQL sont installées dans ORACLE_HOME\TOOLS\DOC60\US\oca_info.pdf. Si Adobe Acrobat Reader est installé dans le répertoire par défaut, cliquez sur le bouton [image] en tête de cette rubrique pour afficher ce document. Dans le cas contraire, lancez votre visualiseur PDF et ouvrez oca_info.pdf.


Par défaut, les scripts SQL permettant la création de vues de dictionnaires de données pour Tandem NonStop SQL sont installés dans ORACLE_HOME\OCA20\SQL\NONSTOP :

nssvudrp.sql	supprime toutes les anciennes versions des vues.

nssvubld.sql	crée les vues nécessaires.


UBT32.EXE scott/tiger@ODBC:nonstop_ds @nssvubld.sql


Par défaut, le script SQL permettant la création de tables de démonstration pour Tandem NonStop SQL est installé dans ORACLE_HOME\OCA20\SQL\NONSTOP :

nssdmbld.sql	crée les tables de démonstration.

Le script SQL permettant de remplir les tables de démonstration est installé dans ORACLE_HOME\OCA20\DEMO :

demodata.sql	insère des données dans les tables de démonstration.


UBT32.EXE scott/tiger@ODBC:nonstop_ds @nssdmbld.sql


scott/tiger@ODBC:nonstop_ds


Par défaut, les informations relatives à l'accès à Informix sont installées dans ORACLE_HOME\TOOLS\DOC60\US\oca_info.pdf. Si Adobe Acrobat Reader est installé dans le répertoire par défaut, cliquez sur le bouton [image] en tête de cette rubrique pour afficher ce document. Dans le cas contraire, lancez votre visualiseur PDF et ouvrez oca_info.pdf.


Par défaut, les scripts SQL permettant le création de vues de dictionnaires de données et de tables de démonstration pour Informix sont installés dans ORACLE_HOME\OCA20\SQL\INFORMIX :

infvudrp.sql	supprime toutes les anciennes versions des vues.

infvubld.sql	crée les vues nécessaires.


UBT32.EXE scott/tiger@ODBC:informix_ds @infvubld.sql


Par défaut, le script SQL permettant la création de tables de démonstration pour Informix est installé dans ORACLE_HOME\OCA20\SQL\INFORMIX :

infdmbld.sql	crée les tables de démonstration.

Le script SQL permettant de remplir les tables de démonstration est installé dans ORACLE_HOME\OCA20\DEMO :

demodata.sql	insère des données dans les tables de démonstration.


UBT32.EXE scott/tiger@ODBC:informix_ds @infdmbld.sql


scott/tiger@ODBC:informix_ds


Dépannage

Si une application qui fonctionnait avec Oracle échoue avec une autre source de données ODBC, l'explication la plus probable est que vous rencontrez une restriction ou une limitation d'ODBC ou de la source de données.

Pour afficher les instructions SQL émises par OCA et les messages générés par le pilote ODBC ou par la base de données :

1	Vérifiez que l'entrée suivante est définie dans le fichier ORACLE.INI sous Windows 3.1, ou dans la base de registres de Windows NT ou de Windows 95/98 :

•	UB=ORACLE_HOME\OCA20

2	Ajoutez les entrées suivantes dans le fichier ORACLE.INI sous Windows 3.1, ou dans la base de registres de Windows NT ou de Windows 95/98, sous SOFTWARE\ORACLE :

•	OCA_DEBUG_SQL=TRUE

•	OCA_DEBUG_ERROR=TRUE

3	Lancez votre application sur la source de données ODBC pour afficher les instructions SQL ou les messages d'erreur dans la fenêtre de débogage. Cliquez sur OK pour fermer la fenêtre de débogage et poursuivre le traitement.

4	Si vous ne parvenez pas à résoudre l'erreur, appelez l'assistance technique Oracle.


Messages OCA

Code	Libellé du message

30000	General OCA error.

30001	NULL hostdef.

30002	Function not supported.

30003	NULL username in connect string.

30004	NULL hostname in connect string.

30005	All cursors are in use.

30006	Error creating parse tree.

30007	NULL SQL statement.

30008	Memory allocation failed.

30009	Error processing bind variables.

30010	Oracle to ODBC datatype conversion error.

30011	ODBC to Oracle datatype conversion error.

30012	Error binding reference value.

30013	No parameters to bind.

30014	Hostname too long.

30015	Stored procedures not supported for this datasource.

30016	Sequences not supported by this database.

30017	Error logging on to non-Oracle database.

30018	Username or password too long.

30019	Error handling non-Oracle stored procedures.

30020	Stored procedure name is missing.

30021	Error preparing/executing SQL statement.

30022	Error retrieving column.

30023	Error fetching result set.

30024	Error retrieving column descriptors.

30025	Error getting number of columns in result set.

30026	Error retrieving procedure descriptors.

30027	Error setting ODBC connection/statement option.

30028	Error at commit/rollback.

30029	Error binding column.

30030	Error binding parameter.

30031	Error retrieving information about driver/database.

30032	Error freeing memory.

30033	Row status error.

30034	Table not found.

30035	Column not found.

30036	Invalid authorization specification.

30037	Data source not available.

30038	Invalid column number.

30039	Illegal bundled operation combination.

30040	Invalid cursor context.

30041	Bind variable does not exist.

30042	No data found.

30043	Fetched column value is NULL.

30044	Fetched column value was truncated.

30045	Error returning result data.

30046	No data source name specified.

30047	Unsupported transaction isolation level.

30048	Binding arrays not supported.

30049	Not logged on.

30050 	Error freeing SQL statement.

30051	Error fetching data.  You must re-execute after a commit for this datasource.

30052	Parameter value was truncated at execution.

31000	General ODBC error issued by the ODBC driver in use.

Si une erreur se produit et que l'application est incapable de lire le message dans le fichier des messages, vérifiez que l'entrée suivante est définie dans le fichier ORACLE.INI sous Windows 3.1, ou dans la base de registres de Windows NT ou de Windows 95/98 :

•	UB=ORACLE_HOME\OCA20


Fichier PDF
Document PDF

Pour afficher le document PDF, vous devez lancer votre visualiseur PDF et ouvrir le fichier oca_info.pdf à partir du répertoire dans lequel il est installé.


Glossaire

A

    action
    action de débogage
    action définie par l'utilisateur
    action prédéfinie
    ActiveX
    activé
    ADA
    adresse IP (Internet Protocol)
    affichage
    alias
    alignement
    ancêtre
    ancrage
    antécédent
    aperçu
    applet
    application
    arborescence de dépendances
    arborescence de groupe
    architecture client/serveur
    argument
    argument exécutable
    ASCII
    assistant Projet
    attribut
    attribut visuel
    autoriser
    axe continu
    axe de catégorie
    axe de date
    axe de valeurs
    axe discret

 B

    barre de fractionnement
    barre de titre
    barre d'outils
    basculer
    base de données
    base de données distante
    base de données locale
    base de registres
    base de registres globale
    base de registres locale
    base de registres projet
    base de registres utilisateur
    Batch
    bibliothèque
    bibliothèque attachée
    bibliothèque PL/SQL externe
    bloc
    bloc anonyme
    boîte de dialogue
    boîte englobante externe
    boîte englobante interne
    bord
    bordure
    boucle
    bouton
    bouton (...)
    bouton d'option

C

    cache (mémoire cache)
    cadre
    canevas
    caractère générique
    cartouche
    cartourche Web
    case à cocher
    catégorie
    cellule
    cellule de matrice
    CGI
    CGM
    chaîne de connexion
    champ
    champ multiligne
    chiffrement
    cible
    classe de propriétés
    classification
    clause
    clé étrangère
    clé primaire
    client
    CMDFILE
    code de contrôle d'imprimante
    cohérence en lecture
    coller
    colonne
    colonne de formule
    colonne de ventilation
    colonne d'objets
    colonne récapitulative
    colonne REF
    colonne sans cache
    colonnes d'attributs
    commentaire
    compiler
    compiler par lot
    composant
    condition
    connecter (se)
    conteneur OLE
    contrainte
    contrôle VBX
    coordonnées (x, y)
    copier
    corps
    corps de package
    coupe-feu
    couper
    curseur

D

    DATE
    déboguer
    Débogueur
    débordement
    déclencheur
    déclencheur de base de données
    déclencheur de débogage
    déclencheur de format
    déclencheur de ventilation
    désactivé
    descendant
    descendant-ascendant
    descripteur
    Designer
    Designer/2000
    DIANA
    dictionnaire de données
    dimension
    dimension de qualification
    données dépendantes
    données indépendantes
    dupliquer

E

    EBCDIC
    éditeur
    élément
    élément
    élément affiché
    élément d'arrière-plan
    élément de graphique
    élément de premier plan
    élément de projet
    élément d'entrée
    élément graphique
    élément impliqué
    élément liste
    élément texte
    éléments Built-in
    encadrement itératif
    endommager
    enfant
    enregistrement
    environnement
    état de ventilation
    état matriciel
    étendue
    exception
    exécuter
    exporter
    expression

F

    faire glisser
    famille
    fenêtre
    fenêtre modale
    fenêtre sans mode
    fenêtre/vue active
    feuille de style
    feuille de style en cascade
    fichier de liaison
    fichier de projet
    fichier d'exécution
    fichier d'export
    fichier pld
    fichier pll
    fichier pls
    fichier plx
    fichier prt
    fichier rdf
    fichier rep
    fichier rex
    fichier sql
    filtre
    filtre de groupe
    fonction
    fonction de filtre d'interrogation
    fonction en package
    formule
    frère

G

    Generate
    générateur
    générer
    graphique à axes
    graphique de ventilation
    Grille de paramètres d'exécution
    groupe
    groupe ancêtre
    groupe de boutons d'option
    groupe de ventilation
    groupe d'enregistrements
    groupe d'objets
    groupe inter-produit

H

    hériter
    hiérarchie
    hiérarchie des dimensions
    hiérarchiser
    HTML
    HTTP
    hyperlien
    hypertexte

I

    ICD
    icône
    icône de bord/remplissage/texte
    image
    importer
    index
    inscrire
    instruction
    instruction SELECT
    instruction SQL
    interface graphique
    interface Oracle Call Interface
    Internet
    interrogation
    interrogation détail
    interrogation enfant
    interrogation externe
    Intranet

J

    JAR
    Java
    jointure
    justification

K

L

    lancer
    Lanceur
    liaison
    liaison de données
    liaison Web
    libellé
    ligne
    ligne de commande
    ligne de référence
    liste de paramètres
    liste de valeurs
    liste instantanée
    livrer

M

    macro
    macro définie par l'utilisateur
    macro intégrée
    marge
    masque d'attribut
    masque de format
    masqué
    matrice
    matrice imbriquée
    méga-octet (Mo)
    menu détachable
    message d'alerte
    mesure
    mesure personnalisée
    méthode
    mettre à jour
    mode de confinement
    mode flexible
    mode insertion
    mode remplacement
    modèle de champ
    modèle de données
    modèle de graphique
    module
    mot-clé
    motif

N

    Navigateur de projet
    Navigateur d'objet
    navigateur Web
    niveau
    NOCACHE
    noeud
    noeud cible
    noeud de structure de données
    noeud élément
    noeud en-tête
    noeud fichier
    noeud organisation
    noeud projet
    noeud racine
    noeud sous-projet
    nom utilisateur de réserve

O

    objet
    objet aplani
    objet colonne
    objet déstructuré
    objet englobant
    objet ligne
    objet standard
    objets de niveau état
    ODBC
    OLE
    opérateur relationnel
    opérateurs de comparaison
    opérateurs logiques
    opérateurs numériques
    Oracle Designer
    ORACLE_HOME
    origine
    outil
    outil Attribut
    outil Correspondance
    outil Exception
    outil Famille
    outil Haut/Bas
    outil Liste
    outil Niveau
    outil Période
    outil Sélecteur
    outil Sélection enregistrée
    outil Tout
    outil Tri

P

    package
    page
    page de fin
    page de garde
    page logique
    page physique
    page titre
    palette
    palette de couleurs
    palette d'outils
    panneau
    paramètre
    parent
    Pcode
    PDF
    pile
    pile d'appels
    PL/SQL
    plan de coordonnées
    point d'ancrage
    point de contrôle
    point d'insertion
    point d'interruption
    pointeur d'objet
    port
    préférence
    présentation
    présentation de type étiquette de publipostage
    présentation de type formulaire
    présentation de type formulaire-lettre
    présentation de type matrice
    présentation maître-détails
    Presse-papiers
    primitif
    procédure
    procédure bouton
    processus d'arrière-plan
    projet
    propriété
    protocole

Q

    quadrillages
    quitter

R

    racine
    RC4
    RDBMS
    rectangle de délimitation
    référence de lien
    référence lexicale
    régénérer
    regroupement/agrégation
    répertoire virtuel
    Report Server (RWMTS60)
    Reports Background Engine (RWRBE60)
    Reports Queue Manager (RWRQM60)
    Reports Web Cartridge (RWCGI60)
    Reports Web CGI (RWCGI60)
    RTF
    Runtime
    RVB

S

    saut de page
    schéma
    script
    script de l'interpréteur
    script de sélection
    script SQL
    section
    Sélecteur
    sélection
    sélection dynamique enregistrée
    sélection enregistrée
    sélection statique enregistrée
    serveur OLE
    serveur Web
    session
    simultanéité d'accès
    socket
    sortie utilisateur
    source
    source de données
    sous-interrogation associée
    sous-programme
    sous-programme stocké
    sous-projet
    spécification
    spécification de package
    SQL
    structure de code PL/SQL
    structure de code PL/SQL avec valeur
    SYLK
    syntaxe
    système de coordonnées
    système de fichiers virtuel

T

    table
    table d'objets
    tabulaire
    tampon
    TCP
    total de contrôle
    transaction
    type
    type de collecte
    type de données
    type de données Built-in
    type de données CHAR
    type de données Oracle
    type de table
    type de tableau variable
    type de tracé
    type défini par l'utilisateur
    type d'élément
    type d'objet
    type prédéfini

U

    unité de présentation
    unité de programme
    unité de programme stockée
    URL

V

    valeur d'attribut
    valeur de dimension
    valeur ligne de base
    valeur NA
    valeur NULL
    valeur par défaut
    valider (COMMIT)
    variable
    variable de lien
    variable globale
    variable locale
    variable système
    VBX
    Visualiseur
    volet
    vue
    vue de dépendances
    vue de projet
    vue-canevas

W

 Web
    WKS
    WRB
    WWW

X

    XML
    XML au format correct
    XML valide

Y

Z

    zone contextuelle
    zone de liste
    zone de message
    zone de remplissage
    zoom


Dans Project Builder, chaîne de commande fournie par Project Builder ou par l'utilisateur, et s'appliquant à des fichiers d'un type donné. Une action n'est pas restreinte à un seul type de fichier ; par exemple, si l'action Compiler est définie à la fois pour les fichiers d'application Forms et les fichiers source C, la sélection de Compiler le projet compile tous les fichiers fmb et .c à l'aide des outils appropriés. Voir aussi : action prédéfinie, action définie par l'utilisateur.


Langage de programmation de haut niveau élaboré par le Département de la défense américaine pour les systèmes informatiques intégrés.


Fenêtre ou vue dans laquelle l'utilisateur peut entrer des données.


(Oracle Express) Regroupement (ou agrégation) de données de plusieurs valeurs de dimension en une seule valeur, comme le total des unités vendues dans toutes les villes, ou en un ensemble de valeurs plus restreint, comme la moyenne des unités vendues dans les villes de chaque région. Les données sont souvent collectées au niveau de détails le plus bas, puis regroupées en totaux de niveaux supérieurs pour l'analyse.


Fenêtre modale qui vous signale une condition survenue à la suite de votre dernière action. Vous devez répondre à un message d'alerte.


Façon dont des données sont positionnées dans un champ : alignement ou justification à gauche, à droite et au centre d'un champ d'une largeur déterminée.


Nom secondaire utilisé dans une instruction SQL pour référencer une table, une vue ou une colonne.


(Oracle Express) Outil de la boîte de dialogue Sélecteur permettant de sélectionner toutes les valeurs d'une dimension ou toutes les valeurs d'une dimension correspondant à une hiérarchie donnée.


(Oracle Express) Valeur de dimension située au-dessus d'une valeur donnée dans la hiérarchie. La valeur ancêtre correspond à la somme globale des valeurs de ses descendants. L'exemple suivant désigne la valeur de dimension Europe comme l'ancêtre de France, de Lyon et de Paris dans la dimension GEOGRAPHY.


Groupe possédant un autre groupe, directement ou indirectement.


Objet de présentation servant à fixer un point d'un objet sur un point d'un autre objet, ce qui permet de positionner le premier objet par rapport au second.


(Oracle Express) Valeur de dimension particulière utilisée lors de la sélection de valeurs de dimension en fonction de leur relation familiale ou lors de l'exploration d'une hiérarchie.


Unité de programme PL/SQL sans nom ne nécessitant pas la présence explicite des mots-clés BEGIN et END pour délimiter les instructions exécutables. N'ayant pas de nom, les blocs anonymes ne peuvent être référencés par d'autres unités de programme.


Objet apparaissant n'importe où au-dessus d'un autre objet dans l'arborescence de groupe de cet objet. Tout objet est l'antécédent de ses descendants.


Terme Java qui désigne de petits programmes pouvant, au besoin, être importés de manière dynamique dans des pages Web ou des applications.


Un ou plusieurs modules de programme servant à atteindre un résultat donné. Les applications peuvent être imbriquées les unes dans les autres. Par exemple, une application de gestion des stocks d'une entreprise peut comprendre diverses applications Form Builder pour la saisie des données et diverses applications Graphic Builder pour l'affichage des données.


1. Expression facultative transmise à une unité de programme pour que celle-ci la traite.
2. Clauses contenant des mots-clés et leurs valeurs.


Acronyme d'American National Standard Code for Information Interchange.


Ensemble de sous-programmes PL/SQL en lecture seule, généralement intégré à une application pour fournir les sources PL/SQL nécessaires. Les unités de programme figurant dans une bibliothèque attachée sont implicitement chargées lors de leur premier appel par une autre unité de programme au moment de la compilation ou de l'exécution. Elles restent chargées, ce qui permet leur utilisation rapide et réduit les exigences en mémoire lors de l'exécution, tout en améliorant les performances de l'application. Voir aussi : bibliothèque.


1. Voir propriété.
2. Partie ou composant d'une définition de type d'objet Oracle8. Chaque attribut dispose d'un nom et d'un type de données Oracle8. Lorsque vous créez une table d'objets sur la base d'un type d'objet, les colonnes de la table correspondent aux attributs de la définition du type d'objet. Lorsque vous créez un objet colonne d'après le type d'objet dans une table relationnelle, cet objet contient des éléments qui équivalent à des sous-colonnes, chacune d'entre elles correspondant à un attribut de la définition du type d'objet. Dans Oracle Developer, chaque attribut d'objet Oracle8 appartenant à une table est considéré comme un élément de données distinct, comme s'il s'agissait d'une colonne distincte. Cela s'applique aux objets de table et de colonne des tables relationnelles.
3. (Oracle Express) Caractéristique descriptive partagée par les valeurs d'une dimension. Les attributs correspondent à des regroupements logiques qui permettent aux utilisateurs de sélectionner des données de caractéristiques similaires. Par exemple, dans une base de données sur les chaussures, vous pouvez utiliser un attribut de couleur de chaussure pour sélectionner toutes les bottes, tennis ou pantoufles de couleur identique.


Colonnes qui composent un objet colonne (Oracle8).


Dans Graphic Builder, premier élément d'un descripteur d'attribut. Il s'agit d'un masque de 32 bits qui informe la boîte à outils des attributs qui seront définis ou extraits par un appel de fonction ultérieur. Seuls les éléments pour lesquels les bits correspondants sont définis dans le masque d'attribut seront définis ou extraits.


(Oracle Express) Outil de la boîte de dialogue Sélecteur permettant de sélectionner des valeurs de dimension en fonction d'attributs et de valeurs d'attributs. Par exemple, dans une base de données sur les boissons non alcoolisées, vous pouvez sélectionner tous les produits d'un litre. Dans cet exemple, la taille est un attribut et 1 litre est une valeur d'attribut.


(Oracle Express) Valeurs d'un attribut dans une base de données. Par exemple, dans une base de données sur les glaces, les valeurs d'attributs suivantes peuvent appartenir à l'attribut parfum de la dimension Product : vanille, chocolat et fraise. Des valeurs de dimension de différents niveaux dans la dimension Product (marque, forme et taille, par exemple) peuvent avoir une valeur de parfum identique.


Graphique dans lequel les données sont tracées selon leur position sur les bords du graphique, appelés axes. Un graphique à axes peut contenir deux ou trois axes, chacun appartenant à l'un des types suivants : discret, continu ou date.


Partie blanche d'un motif. L'application d'une couleur à l'élément d'arrière-plan se fait à l'aide la palette de couleurs de remplissage.


Processus non interactif fonctionnant dans un environnement de système d'exploitation et effectuant un service ou des actions. Certains produits Oracle utilisent des processus d'arrière-plan, notamment pour effectuer et coordonner des tâches pour les utilisateurs de la base de données, pour traiter et acheminer les messages électroniques, et pour gérer les services d'impression.


Valeur utilisée comme point de départ pour tracer des champs sur l'axe continu d'un graphique.


Exécutable permettant d'exécuter une application en mode de traitement par lots sans utiliser de fenêtres.


Traduire en une fois plusieurs unités de programme PL/SQL afin de pouvoir les exécuter.


Référence à un paramètre utilisée pour remplacer une valeur littérale unique (chaîne de caractères, nombre ou date, par exemple) qui apparaît n'importe où dans un élément PL/SQL ou dans une instruction SQL SELECT. Pour définir une référence de lien, vous devez faire précéder le nom du paramètre par le signe deux-points (:).


Variable globale pouvant être créée et utilisée à l'extérieur d'un package PL/SQL.


1. Dans PL/SQL, unité de programme de base définie par les mots-clés DECLARE, BEGIN, EXCEPTION et END.
2. Dans Form Builder, conteneur logique se rapportant à une table ou à une vue de base de données.


1. Contient les mêmes informations que la spécification d'unité de programme et comprend également la mise en oeuvre effective du sous-programme (c'est-à-dire sa séquence d'actions). Dans la plupart des cas, seul un corps doit être défini pour un programme.
2. Dans Report Builder, partie contenant la présentation de l'état (texte, graphiques, données et calculs). Le corps de l'état figure entre la page de garde et la page de fin.


Texte et/ou graphiques apparaissant dans un état à chaque exécution. Egalement appelé dans certains produits « texte constant » ou « graphiques constants ».


Contour d'un objet de présentation défini par l'utilisateur et servant généralement à mettre celui-ci en évidence. Les bordures sont dessinées de sorte que la moitié de la largeur de la bordure soit à l'extérieur du bord de l'objet et l'autre moitié à l'intérieur.


Voir boîte englobante interne, boîte englobante externe.


Graphique à axes affichant deux catégories de données le long d'un même axe.


Colonne d'interrogation attribuée à un groupe de ventilation.


Groupe servant à ventiler des données d'état ou à les classer par catégories. Toutes les données des colonnes d'interrogation attribuées à un groupe de ventilation apparaissent au-dessus des données des colonnes appartenant à d'autres groupes. Chacun des enregistrements extraits pour un groupe de ventilation n'apparaît qu'une seule fois, tandis que plusieurs enregistrements associés dans d'autres groupes peuvent être affichés.


Etat contenant des catégories qui ventilent les données de l'état.


Bloc PL/SQL qui est exécuté chaque fois qu'un point d'interruption est atteint. Voir aussi : point d'interruption.


Action de débogage pouvant être insérée sur toute ligne source exécutable au sein d'un sous-programme PL/SQL, qui interrompt l'exécution de l'unité de programme pour donner le contrôle à l'Interpréteur PL/SQL. Les points d'interruption permettent d'exécuter un sous-programme en mode pas à pas et de rechercher les erreurs d'exécution. Voir aussi : déclencheur de ventilation.


Composant d'Oracle Developer servant à créer un type particulier de document ; par exemple, Form Builder sert à créer des applications Forms et Report Builder, des états.


Type de données défini et pris en charge par Oracle Server.


Ensemble d'extensions du langage PL/SQL, conçu pour être utilisé avec Oracle Developer. Les éléments Built-in (procédures internes) comprennent les types de données, les procédures, les fonctions, les exceptions et les constantes.


Dans Project Builder, macro livrée avec le produit. Voir aussi : macro.


Zone de mémoire temporaire servant au transfert de données entre l'ordinateur et un périphérique, ou entre des parties d'un ordinateur. Un tampon évite que des informations ne se perdent à cause de vitesses et de synchronisations de transfert différentes, et accélère certaines fonctions.


1. Elément d'interface servant à sélectionner une action, à afficher une boîte de dialogue ou à accuser réception de la condition en cours.
2. Objet d'une application auquel est associée une procédure PL/SQL. La procédure est généralement exécutée lorsque l'utilisateur clique à l'aide de la souris.


Procédure PL/SQL associée à un objet application et s'exécutant lorsqu'un événement de souris particulier se produit sur un élément à l'exécution (clic sur un bouton, par exemple). La procédure se déclenche en établissant une hiérarchie des données extraites contenant un groupe de ventilation.


Zone de mémoire temporaire pour les données d'une base auxquelles les utilisateurs accèdent ou qu'ils modifient, ou pour les données dont Oracle Server a besoin pour prendre en charge les utilisateurs. Les termes « cache » et « mémoire cache » sont utilisés indifféremment.


Interface permettant d'appeler les exécutables d'Oracle Developer à partir d'autres produits Oracle ou d'un programme en langage de troisième génération.


Chaîne d'appels de sous-programme, du point d'entrée initial jusqu'au sous-programme en cours d'exécution. Chaque appel de sous-programme est représenté par un cadre sur la pile d'appels descendante-ascendante dans laquelle les sous-programmes nouvellement entrés sont ajoutés en bas.


  Voir éditeur.


Dans Form Builder, objet d'arrière-plan sur lequel vous placez les objets d'interface dont les utilisateurs vont se servir dans l'application à l'exécution. Une vue-canevas est généralement associée à une fenêtre.


Objets manipulables connectés au client, au serveur d'application ou à la base de données via une API ouverte.


Voir feuille de style.


Libellé servant à différencier des informations par une représentation non hiérarchique ou par subdivisions, plutôt que par des niveaux de sensibilité. La classification permet de restreindre l'accès aux informations.


Voir axe discret.


Instance de données dans un tableur (par exemple, Microsoft Excel).


Acronyme de Common Gateway Interface. Standard de l'industrie servant à exécuter des applications sur un serveur Web. Alors que les documents HTML standard extraits d'un serveur Web sont statiques (le même texte est extrait chaque fois), CGI permet à un programme fonctionnant sur le serveur Web de communiquer avec un autre ordinateur pour générer des documents HTML « dynamiques » en réponse à des informations saisies par l'utilisateur.


Acronyme de Computer Graphics Metafile. Format de fichier reconnu internationalement, servant à stocker et à transférer des graphiques orientés objet d'un système ou d'un programme à un autre.


Type de données Oracle assurant la compatibilité ANSI/ISO. Une colonne de type CHAR a une longueur fixe et peut contenir tout caractère imprimable, comme A, 3, & ou des espaces. Elle peut comprendre de 1 à 255 caractères, ou avoir la valeur Null.


Barre, ligne, symbole ou autre objet graphique représentant une valeur unique pour un champ.


Rectangle de n'importe quelle taille et servant à intégrer les graphiques de Graphic Builder dans une application Forms ou dans un état.


Ensemble d'attributs et de propriétés définissant le format d'un graphique.


Elément d'interface apparaissant sous forme de petit carré, et pouvant être activé ou désactivé.


Algorithme de contrôle d'erreurs.


1. Objet membre d'un groupe, situé immédiatement au-dessous de l'objet groupe dans son arborescence de groupe. Les objets qui composent un groupe sont les enfants de ce groupe. Tout objet est l'enfant de son parent.
2. (Oracle Express) Valeur de dimension, de niveau immédiatement inférieur à celui d'une valeur donnée dans une hiérarchie. Les valeurs enfant servent à calculer la somme globale à l'origine de la valeur parent. Une valeur de dimension peut être enfant de plusieurs parents si la dimension dispose de plusieurs hiérarchies. L'exemple suivant désigne les valeurs de dimension Lyon et Paris comme enfants de France dans la dimension GEOGRAPHY.


Voir interrogation détail.


Niveau hiérarchique indiquant la sensibilité des informations libellées. La classification sert à restreindre l'accès aux informations.


Partie d'une instruction SQL, qui ne constitue pas l'intégralité de l'instruction ; une « clause WHERE », par exemple.


Utilisateur, application logicielle ou ordinateur demandant des services, des données ou l'exécution d'un programme à une autre application ou à un autre ordinateur (le serveur). Dans un environnement client-serveur, le client est le processus utilisateur. Dans un environnement réseau, le client est le processus utilisateur local, et le serveur peut être local ou distant.


Séparation du traitement entre deux unités centrales. La première agit en tant que serveur : elle fournit des services, et le client (l'autre unité centrale) demande et reçoit ces services. Toutes les opérations de gestion de données partagées peuvent être traitées par l'ordinateur qui exécute le système de gestion de bases de données, tandis que les postes de travail sur lesquels fonctionne l'application de base de données interprètent et affichent les données.


Mémoire tampon. Un objet reste dans le Presse-papiers jusqu'à ce que l'utilisateur coupe ou copie un autre objet, ou quitte l'application.


Type de données défini par l'utilisateur, décrivant une unité de données constituée d'un nombre indéterminé d'éléments dont le type de données est identique. Les types de tableau variable et les types de table sont des types de collecte. (Oracle8)


Argument permettant d'indiquer un fichier qui contient un ensemble d'arguments de ligne de commande pour les exécutables Oracle Developer.


Contient toutes les couleurs disponibles pour le système de fenêtres, pour la surface de dessin, ou pour une fenêtre et ses vues.


1. Espace vertical dans une table de base de données, représentant un domaine de données particulier. Une colonne possède un nom (ENAME, par exemple) et un type de données propre (CHAR, par exemple). Dans une table d'informations sur le personnel, par exemple, les noms des employés peuvent constituer une colonne. Une colonne de groupe d'enregistrements représente une colonne de base de données.
2. Dans Report Builder, objet modèle de données créé automatiquement pour chaque expression de colonne dans la liste SELECT d'une interrogation, ou créé manuellement pour exécuter des récapitulatifs et des formules, ou tenir lieu de marque de réservation.


Dans une table relationnelle ou une table d'objets Oracle8, colonne dont la définition dépend d'un type d'objet. La colonne est une colonne composite et ses différentes parties correspondent aux attributs du type d'objet.


Ligne de commande du système d'exploitation. La plupart des produits Oracle peuvent être appelés à partir d'une ligne de commande à l'aide d'un certain nombre d'arguments exécutables.


Elément de langage permettant d'insérer un ensemble d'explications dans un programme sans affecter l'exécution de ce programme.


Modifier de façon permanente les données de la base de données. Avant que les modifications ne soient stockées, les anciennes données et les nouvelles cohabitent, ce qui vous permet de stocker les modifications ou de restaurer les données antérieures.


(Oracle Express)

>	Supérieur à

<	Inférieur à

=	Egal à

<=	Inférieur ou égal à

>=	Supérieur ou égal à

<>	Différent de

Pour les nombres, les opérandes sont arrondis au type le moins courant (Integer est prioritaire sur Long, lui-même prioritaire sur Single, qui est prioritaire sur Double). Pour les chaînes, la comparaison distingue les majuscules des minuscules et dépend de la séquence lexicographique utilisée dans la langue indiquée dans le Panneau de configuration de Windows. Le résultat est 0 pour FALSE et -1 pour TRUE.


Traduire un programme source vers un format binaire exécutable. Les unités de programme PL/SQL doivent être compilées avant de pouvoir être exécutées.


Objet cible particulier faisant partie d'une application plus vaste : un formulaire dans un système de saisie de commandes ou une bibliothèque partagée entre de nombreux autres éléments, par exemple. Voir aussi : cible.


Accès simultané aux mêmes données par plusieurs utilisateurs exécutant des applications de base de données différentes ou identiques. Dans un logiciel de base de données, la simultanéité d'accès nécessite une logique supplémentaire pour que les utilisateurs puissent se servir de données homogènes et que toutes les modifications soient effectuées dans le bon ordre.


Expression pouvant prendre deux valeurs, vrai ou faux, comme X> 100. Vous pouvez, par exemple, définir une condition dans une interrogation pour que l'interrogation n'affiche que les lignes dont la valeur est Vrai dans votre expression.


Mode de l'Editeur de présentation empêchant les objets enfants d'être déplacés ou redimensionnés à l'intérieur ou à l'extérieur de leurs objets parents.


Accéder à une base de données. Vous devez vous connecter pour créer ou modifier des interrogations, ou pour accéder à une application stockée dans une base de données.


Ensemble de paramètres, notamment un protocole, utilisés par SQL*Net pour établir la connexion à une instance Oracle particulière sur le réseau.


Règle ou restriction concernant une donnée (telle que la restriction NOT NULL sur une colonne) appliquée au niveau de la base de données, au lieu du niveau de l'objet ou de l'application.


Structure de code PL/SQL. Il existe deux types de structure : la structure sans valeur qui ne renvoie pas de valeur et la structure avec valeur qui en renvoie une.


Zone de travail dans laquelle Oracle Server stocke l'instruction SQL en cours et, s'il s'agit d'une interrogation, les en-têtes de colonne de résultat et une ligne du résultat. Egalement appelé curseur.


Axe matérialisant des valeurs de début et de fin. Ces valeurs sont ainsi mathématiquement liées. Les données dépendantes sont généralement tracées le long de cet axe, également appelé axe de valeurs.


Chacun des quatre angles du rectangle virtuel constituant la forme idéale d'un objet. Lorsque vous sélectionnez un objet dans la présentation, ses points de contrôle s'affichent. Vous pouvez, selon l'objet sélectionné, modifier ce dernier en faisant glisser l'un de ses points de contrôle.


Grille bidimensionnelle sur laquelle l'utilisateur dessine.


Système de référence (abscisse et ordonnée) servant à déterminer la position et la taille des objets dans l'Editeur de présentation. Deux systèmes de coordonnées sont disponibles : 1) le système de type caractère, qui utilise la taille de cellule de caractère natif de la plate-forme et 2) le système de type réel, pouvant être exprimé en pixels, en centimètres, en pouces ou en points.


Valeurs définissant la position des objets dans une présentation. Les coordonnées x et y déterminent la position horizontale (x) et verticale (y) des objets.


Reproduire dans le Presse-papiers un objet sélectionné afin de le coller éventuellement à un autre emplacement d'un éditeur.


Sous-interrogation basée sur les mêmes tables que l'interrogation parent (c'est-à-dire faisant référence aux colonnes des tables comprises dans son interrogation parent).


Groupe propriétaire d'au moins deux autres groupes, qui calcule la corrélation entre les produits.


Voir cellule de matrice.


1. Petite icône matérialisant la position de la souris. La forme du curseur varie en fonction de l'outil sélectionné.
2. Pointeur interne vers les données extraites par une interrogation. Un curseur pointe vers une seule ligne de données à la fois ; vous pouvez toutefois utiliser des sous-programmes intégrés pour placer le curseur sur n'importe quelle ligne de l'ensemble de données.


(Oracle Express) Formule créée par un utilisateur, permettant d'affiner l'analyse des données. Vous pouvez créer des mesures personnalisées à l'aide des mesures standard de la base de données. Par exemple, si la base de données contient la mesure Volume Share, vous pouvez l'utiliser pour créer une mesure personnalisée appelée Volume Share Year Ago. Cette mesure vous permet de visualiser la part absolue d'un produit pour l'année précédente.


Supprimer un ou plusieurs objets et les stocker dans le Presse-papiers afin de les coller éventuellement à un autre emplacement d'un éditeur.


Une vue est endommagée lorsqu'elle est totalement ou partiellement masquée par une autre.


Ensemble de tables et de vues appartenant à l'administrateur de bases de données. Le dictionnaire de données est une source d'informations centrale pour Oracle Server et d'autres bases de données relationnelles.


Objet modèle de données servant à définir une relation maître-détail (parent-enfant) entre un groupe et une interrogation.


Modèle relationnel définissant les données à extraire de la base de données, les valeurs à calculer et le mode de classement de données à utiliser dans un état. Les interrogations, les groupes, les colonnes, les paramètres et les liens sont les objets de Report Builder qui définissent le modèle de données.


Source pour les données renvoyées par une interrogation, y compris les objets de base de données tels que les tables, les vues, les synonymes, les clichés et les interrogations stockées sous forme de vues.


Dans Project Builder, noeud du Navigateur de projet indiquant un élément de projet qui gère la structure d'un projet ouvert. Le noeud Base de registres globale, par exemple, indique la base de registres globale, qui contient la liste des registres locaux et la liste des définitions de type global.


Ensemble de tables dictionnaire et de tables utilisateur traité comme une unité.


Bloc PL/SQL stocké, implicitement exécuté lorsqu'une instruction déclencheur INSERT, UPDATE ou DELETE est émise sur la table associée dans la base de données. Voir aussi : déclencheur de débogage.


Type standard de données. Les types de données Oracle sont CHAR, VARCHAR2, DATE, NUMBER, LONG, RAW et LONG RAW.


Type de données Oracle Server. Une colonne date peut contenir une date et une heure, comprises entre le 1er janvier 4712 avant Jésus-Christ et le 31 décembre 4712 après Jésus-Christ.


Axe matérialisant des valeurs de date de début et de fin.


Détecter, diagnostiquer et éliminer les erreurs d'exécution dans les programmes.


Dans un sous-programme PL/SQL, événement défini par l'utilisateur et servant à éliminer les erreurs d'exécution.


Action de débogage conditionnelle pouvant être placée dans n'importe quelle ligne source exécutable d'un sous-programme PL/SQL. Si la condition indiquée est remplie, l'action associée est déclenchée avant la reprise de l'exécution du sous-programme. Voir aussi : déclencheur de base de données.


Fonctionnalité Procedure Builder intégrée à Oracle Developer, et utilisée à des fins de test et de débogage.


Dans Oracle8, les types d'objet et les objets sont composés ; ils contiennent des parties ou attributs. Oracle Developer traite chaque partie/attribut comme un élément de données indépendant pouvant être sélectionné de manière individuelle. Ce traitement produit un objet déstructuré (parfois appelé objet aplani). L'objet n'est pas une entité homogène dans l'environnement Oracle Developer.


Données dont la valeur dépend de celles d'autres données. L'ancienneté d'un employé, par exemple, peut avoir la valeur 10, qui dépend de la valeur du nom de l'employé. Egalement appelé données de type valeur.


Valeur fournie par le système si l'utilisateur n'indique pas de valeur pour un paramètre ou un attribut de commande obligatoire.


Préparer une application afin d'obtenir une application terminée, prête à être distribuée et déployée.


Mécanisme utilisé par Project Builder pour déterminer la façon de compiler les fichiers qui sont référencés dans les projets. Les éléments situés dans la partie supérieure gauche de l'arborescence dépendent des éléments situés dans la partie inférieure droite ; ainsi, par exemple, si un fichier d'en-tête est obsolète ou si sa date est postérieure à celle du fichier exécutable que ce fichier d'en-tête sert à générer, Project Builder régénère le fichier exécutable selon une commande Build. Les dépendances s'appliquent également aux sous-projets. Si, par exemple, un sous-projet de fonctions de bibliothèque a été régénéré, Project Builder « sait » que le projet dépendant devra être régénéré pour que les fonctions de bibliothèque mises à jour puissent être utilisées. Voir aussi : vue de dépendances.


Dans Project Builder, affiche des fichiers dans le Navigateur de projet, dans leur ordre de dépendance respectif avec des noeuds de projet au sommet de la hiérarchie, suivis par des noeuds cible, eux-mêmes suivis par des composants pouvant être générés à partir de ces cibles. Par exemple, un formulaire exécutable sera suivi du fichier .fmb qui en dépend, lui-même suivi de la bibliothèque utilisée pour une procédure USEREXIT, etc. Voir aussi : affichage de projet, cible.


1. Objet qui, dans l'arborescence de groupe d'un autre objet, apparaît au-dessous de cet objet. Tout objet est le descendant de ses antécédents.
2. (Oracle Express) Valeur de dimension de niveau inférieur à celui d'une valeur donnée dans une hiérarchie. Les valeurs des descendants servent à calculer la somme globale d'un ancêtre. L'exemple suivant désigne les valeurs de dimension France, Lyon et Paris comme les descendants d'Europe dans la dimension GEOGRAPHY.


Interface utilisée pour concevoir les différents composants d'une application Oracle Developer.


Voir Oracle Designer


Ensemble d'outils de modélisation, de conception et de génération d'applications. Oracle Designer vous permet de générer des applications Forms et des menus depuis des définitions de module enregistrées dans le référentiel Oracle.


Au cours de la définition d'un état maître-détail, l'interrogation détail extrait tous les enregistrements associés pour chacun des enregistrements extrait par l'interrogation maîtresse ou parent.


Fenêtre ou écran partiel dans lequel vous devez entrer des informations pour compléter une opération.


Représentation intermédiaire d'une unité de programme générée par le compilateur. La représentation DIANA comprend toutes les informations syntaxiques et sémantiques d'une unité de programme compilée. Afin de compiler une référence à une unité de programme, le compilateur doit pouvoir accéder à la représentation DIANA de l'unité de programme référencée. Si, par exemple, l'unité de programme A appelle l'unité de programme B, la représentation DIANA pour B doit être disponible avant que A ne puisse être compilée.


(Oracle Express) Type d'objet de base de données qui répertorie les valeurs correspondant à des catégories de données. Une dimension joue le rôle d'index dans l'identification des valeurs d'une variable. Par exemple, si vous possédez des données de vente avec une valeur différente par mois, ce type de données a une dimension MONTH : les données sont organisées par mois. Une dimension peut être assimilée à la clé d'une base de données relationnelle.

Tout élément de données d'une variable multidimensionnelle peut être sélectionné dans sa totalité de manière individuelle par indication d'un membre de chacune des dimensions de la variable. Par exemple, si une variable ventes comporte les dimensions MONTH, PRODUCT et MARKET, et que vous indiquiez Janvier pour la dimension MONTH, Stéréos pour la dimension PRODUCT et Est pour la dimension MARKET, vous désignez une cellule unique de la variable. Ainsi, les dimensions permettent d'organiser des données, et de les sélectionner rapidement et intuitivement afin de les extraire, de les mettre à jour et d'effectuer des calculs.

Une dimension peut être simple (valeurs de texte simple ou valeurs entières) ou associée (valeurs correspondant à des combinaisons de valeurs d'autres dimensions). Un composite n'est pas une dimension, mais un objet interne de type associé, considéré comme une dimension par Express pour la gestion des données rares.


(Oracle Express) Elément de la liste constituant une dimension. Par exemple, une société d'informatique peut disposer des valeurs de dimension LAPPC et DESKPC dans la dimension PRODUCT. Les valeurs de la dimension GEOGRAPHY peuvent comprendre Boston et Paris. Les valeurs de la dimension TIME peuvent inclure MAI96 et JAN97.


Etat d'un élément d'interface (option de menu ou bouton, par exemple) indiquant que ce dernier ne peut pas être utilisé dans le contexte actuel ; il ne réagit pas aux sollicitations du clavier ou de la souris.


Axe matérialisant des valeurs distinctes à intervalles fixes. Ces valeurs ne sont pas mathématiquement liées. Les données indépendantes sont généralement tracées le long de cet axe, également appelé axe de catégorie.


Document Graphic Builder contenant indifféremment des graphiques, des images, des objets texte et des formes.


Dans Form Builder, élément stockant ou affichant des informations qui doivent être extraites ou attribuées par programme avec PL/SQL.


Dans une pile d'appels, principe selon lequel les nouveaux sous-programmes entrés sont ajoutés au bas de la pile. Le premier cadre, correspondant au point d'entrée du programme initial, se trouve en haut de la pile, alors que le dernier cadre, associé à l'appel de sous-programme le plus profondément imbriqué, se trouve au bas de la pile.


Appuyer sur un bouton de la souris et le maintenir enfoncé tout en faisant glisser le curseur jusqu'à un endroit particulier d'une fenêtre.


(Oracle Express) Parcourir les différents niveaux de regroupement d'une dimension hiérarchisée. Lorsque vous sélectionnez des valeurs de dimension ou que vous visualisez des données, vous pouvez développer ou réduire la hiérarchie d'une dimension en la hiérarchisant vers le bas ou vers le haut. La hiérarchisation vers le bas développe la vue en incluant les valeurs enfants associées aux valeurs parents dans la hiérarchie de la dimension. La hiérarchisation vers le haut réduit la liste des valeurs descendantes associées à une valeur parent dans la hiérarchie de la dimension.

Vous pouvez cliquer sur l'icône représentant le signe plus ( [image]) pour effectuer une hiérarchisation vers le bas (développement) ou sur l'icône représentant le signe moins ( [image]) pour effectuer une hiérarchisation vers le haut (réduction).

Dans le Sélecteur, vous pouvez cliquer sur l'icône de hiérarchisation ( [image]) pour afficher la boîte de dialogue de hiérarchisation vers le bas afin de sélectionner un niveau de détails pour toute la dimension.


Option permettant de copier des objets directement dans la présentation, sans modifier le contenu du Presse-papiers.


(Oracle Express) Sélection enregistrée qui peut prendre différentes valeurs de dimension à chaque évaluation. Les valeurs de dimension sélectionnées peuvent varier d'une utilisation à l'autre. A l'inverse, une sélection statique enregistrée est une liste invariable de valeurs de dimension. Un script de sélection dynamique enregistrée peut comprendre « Sélectionnez les trois derniers mois », alors que le script d'une sélection statique enregistrée peut contenir « Sélectionnez février 1996, mars 1996 et avril 1996 ».


Acronyme d'Extended Binary-Coded Decimal Interchange Code.


Limite d'un objet.


Icône de la palette d'outils de l'Editeur de présentation, indiquant les paramètres en cours pour les motifs et les couleurs de bord, de remplissage et de texte.


Zone de travail dans laquelle vous effectuez un certain nombre de tâches, comme créer une unité de programme ou concevoir une application.


Notion pour laquelle vous pouvez avoir à enregistrer des informations. Les éléments sont décrits à l'aide d'attributs et d'associations à d'autres éléments.


Tout élément contenu dans le dictionnaire est classé selon le type auquel il appartient. Exemples de type d'élément : entité, attribut, module de programme, table, diagramme, texte, zone, etc. Leurs occurrences ou leurs instances sont appelées éléments.


(Oracle Express) Affiche une boîte de dialogue en rapport avec la tâche en cours, en général pour permettre la sélection d'une ou de plusieurs valeurs requises.


Etat d'un élément d'interface (option de menu ou bouton, par exemple) indiquant que ce dernier peut être utilisé dans le contexte actuel, et réagit aux sollicitations du clavier ou de la souris.


Objet qui en contient un autre. Un objet est considéré comme inclus dans un autre seulement si toutes les conditions suivantes sont respectées : les deux objets appartiennent à la même zone (corps, marge, page de garde ou page de fin), l'objet situé le plus à l'extérieur est un cadre ou un encadrement itératif, l'objet le plus à l'extérieur est situé derrière l'autre objet et l'objet le plus à l'intérieur tient entièrement dans les limites de l'autre objet.


Action de rendre indéchiffrables (non décodables) des données de telle sorte que seul le destinataire voulu puisse les déchiffrer (décoder) et les lire.


Système informatisé de l'utilisateur, y compris les outils généralement utilisés et leur configuration. Pour Project Builder, désigne le sous-ensemble d'outils utilisés pour réaliser diverses tâches relatives au développement d'applications Oracle Developer.


Condition d'avertissement ou d'erreur générée par un sous-programme PL/SQL.


(Oracle Express) Outil de la boîte de dialogue Sélecteur qui permet à l'utilisateur de sélectionner les valeurs de dimension associées aux données répondant aux limites qu'il indique. Par exemple, l'utilisateur peut sélectionner tous les produits dont les ventes en dollars dépassent $ 10 000 dans la semaine finissant le 23 décembre 1995, sur le marché de Boston.


Argument pouvant être communiqué à l'exécutable d'un produit, comme 'OPENFILE=mon_périph' et 'PRINT=YES'. Ces arguments sont généralement indiqués lorsque l'exécutable est appelé à partir d'une ligne de commande.


Voir lancer.


Stocker un exemplaire d'un objet, d'un module, ou du texte ou de l'image sélectionné, dans un fichier ou dans une base de données. Dans Project Builder, processus d'écriture d'un fichier contenant des définitions de projet, de type, d'action et/ou de macro dans un format portable à distribuer à d'autres utilisateurs susceptibles de travailler sur des plates-formes hétérogènes. Voir aussi : fichier d'export, importer.


Dans Project Builder, fichier partageable et portable créé par l'exportation d'un projet.


1. Elément PL/SQL regroupant des variables, des constantes, des valeurs litéralles et des opérations sur leurs valeurs.
2. (Oracle Express) Une ou plusieurs valeurs de données indiquées dans un programme en langage Express. Par exemple, vous pouvez désigner des expressions comme arguments de programmes ou comme fonctions. Une expression peut être l'un des éléments suivants :

•	une valeur littérale unique (par exemple, 10) ;

•	une variable ou une formule comportant une ou plusieurs valeurs ;

•	une fonction renvoyant une ou plusieurs valeurs ;

•	un calcul associant des valeurs (variables, formules ou fonctions) à des opérateurs arithmétiques ou booléens.


Voir bibliothèque.


Instruction SQL SELECT au format ANSI standard pouvant être référencée par d'autres produits Oracle.


(Oracle Express) Groupe de valeurs de dimension connexes qui correspondent aux niveaux de hiérarchie d'une dimension. Les valeurs de dimension d'une famille peuvent être apparentées comme ancêtre, parent, enfant et descendant. L'exemple suivant désigne les relations familiales de la valeur de dimension France dans la dimension GEOGRAPHY.


(Oracle Express) Outil de la boîte de dialogue Sélecteur permettant à l'utilisateur de sélectionner une famille de valeurs de dimension pour une hiérarchie donnée. Une famille comprend une valeur parent et toutes les valeurs de dimension descendantes. Par exemple, l'utilisateur peut sélectionner tous les membres de la famille situés en dessous du niveau de marché de Chicago dans la dimension Geography.


1. Elément d'interface dans lequel des données peuvent être saisies, modifiées ou supprimées. 2. Dans Graphic Builder ou Report Builder, objet définissant le mode de présentation des données d'une colonne d'interrogation.


Dans Graphic Builder, ensemble d'attributs et de propriétés déterminant le mode de représentation des données dépendantes (valeurs) sous forme de champs de graphique tels que des barres ou des lignes.


Dans Project Builder, noeud du Navigateur de projet indiquant un fichier stocké dans le système de fichiers. Par exemple, les noeuds de base de registres globale et de base de registres locale correspondent aux fichiers des bases de registres globale et locale.


Zone d'un objet à laquelle un remplissage (couleur ou motif) doit être appliqué.


Fonction PL/SQL ou fonction anonyme limitant les données affichées par un groupe.


Ordinateur réglant depuis l'extérieur l'accès aux ordinateurs d'un réseau local et gérant l'accès aux ordinateurs extérieurs depuis le réseau local.


Voir objet déstructuré.


Mode de l'Editeur de présentation redimensionnant ou réduisant automatiquement les objets parents lorsque les objets enfants sont déplacés ou redimensionnés, et ajustant l'emplacement des autres objets de présentation qui, sinon, pourraient être affectés par ce déplacement ou ce redimensionnement.


Etat d'une entité pouvant répondre aux entrées de l'utilisateur ou du client. Si une entité est la cible des entrées (point d'insertion), elle peut recevoir des événements lorsque l'utilisateur appuie sur une touche. Si un affichage de dessin est la cible des entrées (point d'insertion), il peut répondre aux routines client affectant le dessin.


Partie noire d'un motif. L'application d'une couleur à l'élément de premier plan se fait à l'aide la palette de couleurs de bord.


Valeur ou colonne d'une table faisant référence à une clé primaire d'une autre table.


Dans Report Builder, type de présentation par défaut dans lequel les libellés sont affichés à gauche des champs ; chaque enregistrement est imprimé sur une page logique distincte.


Dans Report Builder, type de présentation par défaut mélangeant les objets standard et les champs, insérant un retour à la ligne au changement de mot.


(Propriétés de champ) Paramètre définissant l'aspect de la valeur d'un champ. Par exemple, un masque de format peut être utilisé pour indiquer l'affichage de montants en devise et de dates.


Fonction PL/SQL permettant de modifier dynamiquement les attributs de formatage d'un objet.


(Oracle Express) Type d'objet de base de données représentant une expression, une procédure ou un calcul stockés à l'origine d'une valeur. Une formule permet de définir et d'enregistrer les relations complexes ou fréquemment utilisées dans les données sans enregistrer de nouveau les données. Chaque fois que vous utilisez une formule, Express lance la procédure ou effectue le calcul requis pour créer la valeur.


Colonne créée par l'utilisateur extrayant ses données à l'aide d'une fonction ou d'une expression PL/SQL, d'une sortie utilisateur, d'une instruction SQL ou de toute combinaison de ces éléments.


1. Dans Graphic Builder, partie d'un modèle de graphique définissant la structure de base d'un graphique, mais pas le mode de tracé des données.
2. Dans Report Builder, objet de présentation servant à englober d'autres objets de présentation et à contrôler le formatage, la fréquence et le positionnement de plusieurs objets simultanément.


Sous-programme PL/SQL qui exécute la suite d'actions indiquée, puis renvoie une valeur. Peut résider et être exécuté sur le client et sur le serveur de base de données.


Enregistrer une application au format binaire dans une base de données ou un fichier pouvant être exécuté par des exécutables Runtime et Batch.


Exécutable Form Builder servant à enregistrer une application dans un fichier ou dans une base de données au format binaire.


Base de registres de Project Builder stockant des informations applicables à l'intégralité d'une installation Oracle Developer. Ces informations sont limitées aux définitions de type et à leurs actions, ainsi qu'aux propriétés prédéfinies ou définies par l'utilisateur. L'utilisation de cette base de registres est facultative ; ses fonctions peuvent être exécutées à l'aide de chaque base de registres utilisateur. Voir aussi : base de registres, base de registres utilisateur.


Conteneur logique existant dans une application. Lorsqu'une application utilise une variable globale, elle conserve la variable jusqu'à sa sortie ou jusqu'à ce qu'un autre objet la supprime explicitement.


Accorder à un utilisateur l'accès à un module. Seul le créateur d'un module peut en autoriser l'accès aux autres utilisateurs.


Dans Graphic Builder, ensemble de lignes divisant une surface en carrés dans l'Editeur de présentation.


1. Objet composé de plusieurs autres objets.
2. Dans Report Builder, objet modèle de données créé automatiquement (pour contenir toutes les colonnes sélectionnées par une interrogation) ou créé par l'utilisateur (pour modifier la hiérarchie des données figurant dans un état) ; il sert principalement à créer des points d'interruption dans un état, ainsi qu'à réinitialiser des calculs.
3. Dans Project Builder, ensemble d'éléments apparentés accessibles à partir des sous-menus du Lanceur. Les groupes permettent à l'utilisateur de configurer le Lanceur de façon semblable au menu Démarrer de Windows 95, composé de groupes arbitraires contenant d'autres éléments ou groupes. Par exemple, un utilisateur peut définir un groupe appelé Doc projet, contenant l'échéancier d'un projet, la liste des activités, les spécifications de composant, etc. ; certains fichiers peuvent être de type .TXT, d'autres de type .DOC.


Fonction PL/SQL limitant les données affichées par un groupe.


Modèle hiérarchique, semblable à un arbre généalogique, décrivant les relations entre les objets groupe et les objets qui les composent.


Interface utilisateur faisant appel à des représentations graphiques, et non uniquement à des mots, pour dialoguer avec un programme. Les programmes à interface graphique fonctionnent avec un système de fenêtres (comme X Windows, Microsoft Windows, Apple Macintosh, etc.). Ces programmes affichent notamment des icônes et des boutons. Les utilisateurs contrôlent ce type de programme principalement à l'aide d'un pointeur à l'écran, (commandé par une souris). Egalement appelée interface bitmap.


Pointeur interne vers un objet application. Pour référencer un objet dans une unité de programme PL/SQL, vous devez transmettre son pointeur comme argument au sous-programme approprié.


Zone d'état facultative pouvant contenir des éléments d'introduction d'état, y compris du texte, des graphiques, des données et des calculs. La page de garde apparaît en premier, avant le corps et la page de fin.


Noeud du Navigateur d'objet indiquant un type d'objet pouvant être contenu dans un état ou y être associé. La sélection d'un noeud en-tête ne sélectionne pas un objet dans l'état.


(Propriétés de champ) Propriété indiquant si Report Builder supprimera le champ indiqué à son emplacement dans la présentation. Si la valeur Masqué est indiquée, la valeur du champ ne figurera qu'à l'endroit référencé dans les objets texte (à l'aide de &fieldname).


(Oracle Express) Méthode d'organisation et de structuration des données. Une hiérarchie existe lorsque les valeurs d'une dimension sont organisées en niveaux, chaque niveau correspondant à la somme globale des données du niveau inférieur. Certaines dimensions peuvent appartenir à plusieurs hiérarchies.

L'exemple suivant présente une hiérarchie de la dimension GEOGRAPHY, dans laquelle les valeurs de dimension sont organisées sur cinq niveaux. Les données du niveau Customers sont classées par groupe dans le niveau Cities, lui-même réparti entre les niveaux Countries/Areas, Continents/Regions et Global.


Acronyme de Hypertext Markup Language. Langage ASCII fondé sur des balises, et servant à indiquer le contenu et les liens à d'autres documents sur des serveurs Web Internet. Les utilisateurs disposant de navigateurs Web affichent les documents HTLM et suivent les liens pour afficher les autres documents.


Acronyme de Hypertext Transfer Protocol. Protocole utilisé pour acheminer le trafic WWW entre un ordinateur doté d'un navigateur WWW et le serveur WWW auquel cet ordinateur accède.


Référence (lien) entre un point donné d'un document et un autre document, ou un autre endroit du même document. Un navigateur Web affiche généralement un hyperlien de façon distincte (dans une couleur, une police ou un style différent). Lorsque les utilisateurs activent des hyperliens (en cliquant dessus avec la souris), le navigateur affiche la cible du lien.


Ensemble de documents contenant des références croisées qui permettent aux utilisateurs de se déplacer facilement d'un document à un autre à l'aide d'un navigateur Web.


Références croisées, qui permettent aux utilisateurs de se déplacer facilement d'un document à un autre à l'aide d'un navigateur Web.


Acronyme d'Interface C Definition. Interface de programmation d'applications PL/SQL à fonctionnalité mise en oeuvre en langage C.


Représentation graphique d'une fenêtre ou d'un outil.


Objet bitmap pouvant être stocké et chargé dans une application. Le client ne peut pas modifier une image importée.


Dans Project Builder, élément de projet, résultant généralement d'une génération automatique, que Project Builder reconnaît et pour lequel il crée automatiquement des entrées dans le Navigateur de projet. Par exemple, Project Builder peut reconnaître des fichiers .obj, générés à une étape intermédiaire de la compilation des fichiers source C, et créer des entrées pour ces fichiers dans le Navigateur d'objet. Bien que la réinitialisation des propriétés d'un élément impliqué soit d'usage restreint (la compilation suivante détruira les modifications), les éléments impliqués peuvent être utiles, car ils peuvent être contrôlés à l'aide des fonctions d'édition, d'affichage et d'impression. Voir aussi : élément, action.


1. Lire un module depuis le système de fichiers ou la base de données, puis l'intégrer dans une application.
2. Lire un fichier contenant des informations sur un projet.


Données dont la valeur ne dépend pas de celle d'autres données. Le nom d'un employé peut avoir, par exemple, la valeur Dupont, qui est indépendante des valeurs des noms des autres employés ou des données associées. Egalement appelées données de catégorie.


Structure facultative associée à une table utilisée par Oracle Server pour localiser rapidement des lignes de la table et (facultatif) pour s'assurer que chacune des lignes est unique.


Dans Project Builder, obtenir des informations d'un noeud ancêtre d'une arborescence de dépendances afin de définir une action, un type, une macro ou une propriété. Si des attributs apparentés existent dans le noeud ancêtre, ils peuvent être hérités. Ainsi, des éléments de système de fichiers tels que des formulaires ou des documents peuvent hériter de définitions d'action de sous-projets, de projets, de la base de registres utilisateur ou de la base de registres globale ; les projets peuvent hériter les définitions de type des bases de registres locale ou globale, et ainsi de suite.


Rectangle virtuel constituant la forme idéale d'un objet et reliant ses quatre points de contrôle, indépendamment de l'épaisseur de bord et des autres paramètres d'attribut.


Fichier servant à générer une cible : par exemple, un fichier .FMB est l'élément d'entrée d'un fichier .FMX. Egalement appelé source.


Mode selon lequel chaque caractère entré est inséré à l'emplacement du curseur, déplaçant vers la droite les caractères suivants. Contraire de mode remplacement.


Réseau mondial d'ordinateurs fondé sur TCP/IP.


Fichier contenant tout ensemble de sources PL/SQL, de commandes Procedure Builder et d'instructions SQL.


Réseau TCP/IP interne dont l'accès est restreint (via un coupe-feu) au personnel d'une entreprise ou d'une organisation. Un réseau Intranet offre à une organisation des services semblables à ceux fournis par Internet, sans que les utilisateurs soient nécessairement connectés à Internet. L'exemple classique d'un réseau Intranet consiste en une société qui configure des serveurs Web sur un réseau interne pour diffuser des informations ou des applications au sein de la société.


Numéro constitué de quatre groupes contenant au maximum trois chiffres, identifiant un ordinateur sur Internet.


Dans Project Builder, objet dans le système de fichiers associé au projet, tel qu'une application Forms ou un document, pointé sur un noeud du Navigateur de projet ou représentant ce noeud.


Dans Project Builder, entrée de la fenêtre Navigateur d'objet représentée par une icône et un titre descriptif. Ces noeuds pointent sur des éléments réels dans le système de fichiers, tels que des fichiers et des documents Form Builder. Voir aussi : noeud, élément.


Acronyme de Java ARchive. Fichier servant à réunir un grand nombre de fichiers (fichiers de classe Java, images, etc.) dans un seul fichier.


Langage informatique prenant en charge la programmation pour Internet sous forme d'« applets » indépendantes de la plate-forme.


Combinaison des données de plusieurs tables dans une instruction SELECT unique.


  Voir alignement.


1. Partie de la syntaxe d'une ligne de commande devant être fournie avec un argument correspondant.  2. Partie obligatoire d'un élément PL/SQL.


Texte identifiant les valeurs ou la signification des objets visuels d'une application.


(Oracle Express) Position dans une hiérarchie de dimension. Chaque niveau situé au-dessus du niveau de base correspond à la somme globale des données du niveau inférieur. Par exemple, la dimension TIME peut comporter des niveaux croissants comme Months, Quarter et Year. A l'intérieur d'une hiérarchie de dimension, la valeur d'un niveau de dimension dispose d'une relation familiale avec les valeurs de dimension des niveaux immédiatement supérieur et inférieur.


(Oracle Express) Outil de la boîte de dialogue Sélecteur permettant à l'utilisateur de sélectionner des valeurs de dimension en fonction de leur niveau dans une hiérarchie donnée. Par exemple, l'utilisateur peut sélectionner toutes les valeurs de dimension du niveau Key Account de la dimension Geography.


Zone d'un éditeur dans laquelle vous pouvez créer, modifier, positionner ou supprimer des objets.


Unité de mesure permettant d'assurer une uniformité de présentation entre les différents dispositifs d'affichage. Sert à indiquer un emplacement dans la présentation ou les dimensions d'un objet.


Référence à un paramètre, utilisée pour représenter une chaîne de texte dans une instruction SQL SELECT. Pour créer une référence lexicale, vous devez faire précéder le nom du paramètre d'une esperluète (&).


Ensemble constitué d'unités de programme PL/SQL stockées dans le système de fichiers client ou dans une base de données. Les unités de programme figurant dans une bibliothèque peuvent être référencées par plusieurs applications à la fois. A la différence des unités de programme stockées, qui résident et sont exécutées dans la base de données, les unités de programmes figurant dans une bibliothèque sont toujours chargées et exécutées au sein du moteur PL/SQL du côté client. Pour faire référence à des unités de programme figurant dans une bibliothèque, vous devez au préalable attacher la bibliothèque. Voir aussi : bibliothèque attachée.


Objet modèle de données servant à définir une relation maître-détail (parent-enfant) entre un groupe et une interrogation.


Nom d'un fichier auquel est associé un objet texte standard. A l'exécution, Report Builder importe le contenu du fichier dans la présentation de votre état.


Liste d'éléments dans une boîte de dialogue. Vous pouvez normalement la faire défiler et y effectuer une sélection.


Dans Form Builder, élément affichant une liste de choix.


Egalement appelée LOV. Fenêtre instantanée, que l'utilisateur peut faire défiler, affichant une liste de sélection monocolonne ou multicolonne.


(Oracle Express) Outil de la boîte de dialogue Sélecteur permettant de sélectionner des valeurs dans la liste des valeurs actuellement sélectionnées dans la dimension.


1. Base de données de l'ordinateur exécutant l'application. 2. Base de données à laquelle une application est connectée. Cette base de données analyse et exécute toutes les instructions SQL générées par l'application.


Voir base de registres utilisateur.


Variable PL/SQL déclarée uniquement pour l'unité de programme en cours.


(Oracle Express)

Not	Non unaire - Opérande de type Integer ou Long. L'opération est effectuée au niveau du bit (complément à 1).

And	Et - Opérande de type Integer ou Long. L'opération est effectuée au niveau du bit.

Or	Ou inclusif - Opérandes de type Integer ou Long. L'opération est effectuée au niveau du bit.

Xor	Ou exclusif - Opérandes de type Integer ou Long. L'opération est effectuée au niveau du bit.

Eqv	Equivalence - Opérandes de type Integer ou Long. L'opération est effectuée au niveau du bit. (A Eqv B) est identique à (Not (A Xor B)).

Imp	Implication - Opérandes de type Integer ou Long. L'opération est effectuée au niveau du bit. (A Imp B) est identique à ((Not A) OR B).


Une page de votre état proprement dit (peut être affichée sur une ou plusieurs pages physiques).


Dans un sous-programme PL/SQL, instruction conditionnelle qui est répétée jusqu'à ce que la condition ne soit plus remplie.


Dans Project Builder, variable de type spécifique pouvant être utilisée pour personnaliser et développer des actions. Une macro peut être une constante ou une expression simple (qui à son tour peut contenir d'autres constantes et/ou d'autres expressions). Le recours aux macros offre une grande souplesse pour l'émission d'options de commande et permet à l'utilisateur de modifier des ensembles de commandes en modifiant la définition d'une propriété.


Présentation par défaut affichant les enregistrements sur une ou plusieurs colonnes dans une page. Les champs apparaissent directement les uns en dessous des autres dans un encadrement itératif unique.


Zone d'état facultative apparaissant en haut et en bas de chacune des pages logiques dans la zone du corps. Une marge peut comporter tout objet de présentation, mais contient en général un texte standard et des champs (pour les numéros de page, les totaux de page, les totaux globaux, ainsi que la date et l'heure).


Présentation par défaut dans laquelle les enregistrements détail apparaissent en dessous des enregistrements maître. Les enregistrements maître ont une présentation de type formulaire, et les enregistrements détail, une présentation de type tabulaire.


(Oracle Express) Outil de la boîte de dialogue Sélecteur permettant à l'utilisateur de sélectionner des valeurs de dimension en faisant correspondre les caractères des noms des valeurs de dimension et ceux qu'il indique. Par exemple, l'utilisateur peut sélectionner toutes les valeurs de dimension du niveau Brand de la dimension Product qui contiennent les caractères « nouveau ».


Orientation itérative affichant chacun des enregistrements d'un encadrement itératif sous la forme d'une cellule de matrice.


Présentation par défaut, semblable à une grille, formatant les quatre ensembles de données nécessaires à un état matriciel ; un premier ensemble de données s'affiche sous la forme d'une ligne de libellés, un deuxième sous la forme d'une colonne de libellés, un troisième crée la grille et un quatrième remplit les cellules de la grille.


Matrice de quatre ensembles de données : un ensemble de données s'affiche de gauche à droite de la page ; un deuxième ensemble s'affiche de haut en bas de la page ; un troisième contient une référence inter-produit déterminant tous les emplacements possibles dans lesquels les données verticales et horizontales sont liées, et plaçant une cellule à ces emplacements ; et un quatrième s'affiche sous forme de « filtre » de cellules.


(Oracle Express) Données pouvant être examinées et analysées, comme les données de vente ou de coût. Vous pouvez sélectionner et afficher les données d'une mesure. Les mesures peuvent être stockées comme variables ou relations, ou calculées à l'aide de formules.


Unité de mémoire égale à 1 048 576 octets (1 024 x 1 024). Souvent arrondie à un million d'octets.


Fenêtre modale qui vous signale une condition survenue à la suite de votre dernière action. Vous devez répondre à une zone de message.


Code exécutable attaché à un objet Oracle8 via sa définition de type d'objet.


Fenêtre exigeant une réponse de l'utilisateur pour que l'application poursuive son traitement.


Fenêtre non restreinte pouvant avoir autant de fonctions que le gestionnaire de fenêtres Runtime peut en prendre en charge.


1. Objet pouvant être partagé par plusieurs applications. Les interrogations externes et les bibliothèques PL/SQL constituent des modules.  2. Dans Form Builder, composant principal d'une application (un module Menu, par exemple).


Champ d'une fenêtre ou d'une boîte de dialogue comprenant plusieurs lignes, dans lequel l'utilisateur peut faire défiler verticalement les informations.


(Oracle Express) Valeur de données spéciale indiquant que les données sont non disponibles (Not Available - NA). NA est utilisée pour toute cellule à laquelle aucune valeur de données précise n'a été affectée ou pour laquelle les données n'ont pas été calculées.


Etat matriciel dans lequel les dimensions verticale et/ou horizontale contiennent une ou plusieurs relations maître-détail. Le nombre d'imbrications autorisées est illimité.


Type de données indiquant que les données seront extraites lorsque la page sur laquelle elles figurent sera formatée (au lieu d'être extraites et mises en mémoire cache avant d'être formatées).


1. Emplacement spécifique dans la hiérarchie d'objets du Navigateur d'objet. Les noeuds peuvent être développés pour présenter des informations sur un objet, telles que des références croisées à d'autres objets.  2. Dans Project Builder, entrée du Navigateur de projet. Voir aussi : élément, noeud élément, noeud organisation.


Colonne d'état référençant une colonne de base de données de type NOCACHE.


Indique l'absence de valeur.


(Oracle Express)

^	Exposant.

-,+	Moins et plus unaires.

*, /	Multiplication ou division numérique. Pour la division, le résultat est un double.

\	Division entière. Les opérandes peuvent être de type Integer ou Long.

Mod	Modulo ou reste. Les opérandes peuvent être de type Integer ou Long.

-, +	Addition et soustraction numériques. L'opérateur + peut également être utilisé pour concaténer des chaînes.


1. Elément pouvant être placé dans la présentation. Les éléments suivants sont des objets : rectangle, trait, ellipse, arc, polygone, ligne polygonale, rectangle arrondi, forme libre, graphique, texte, symbole et champ texte. 2. Dans Oracle8, instance d'un type d'objet. Un objet peut être une ligne d'une table d'objets ou une partie de ligne d'un objet colonne d'une table relationnelle.


Voir objet colonne.


Conteneur d'un groupe d'objets, servant à autoriser la copie ou la référence des objets apparentés.


Voir descripteur.


Fenêtre contenant la liste hiérarchique des objets de la session en cours. Elle apparaît sous la forme d'un plan qui permet à l'utilisateur d'effectuer diverses tâches : création, édition, changement de nom et suppression d'objets, par exemple.


Dans Oracle8, table dont la définition est fondée sur un type d'objet. Chaque attribut du type d'objet devient une colonne de la table d'objets. Chaque ligne de la table correspond à un objet Oracle8 distinct.


Dans Oracle8, définition ou modèle fourni par l'utilisateur permettant de construire des objets. Un type d'objet est une entité composite constituée d'attributs. Chaque attribut dispose d'un nom et d'un type de données, et le type d'objet en tant qu'entité possède un nom. Un type d'objet peut également inclure une ou plusieurs méthodes.


Acronyme d'Open Database Connectivity. Norme d'accès à divers systèmes de base de données. Une application peut soumettre des instructions à ODBC à l'aide de SQL ODBC. ODBC traduit ensuite ces instructions dans un format utilisable par la base de données. Oracle Open Client Adapter (OCA) permet à une application d'accéder à divers systèmes de gestion de base de données en utilisant toujours la même méthode. Un développeur d'applications peut ainsi développer, compiler et livrer une application sans cibler un système de gestion de base de données particulier.


Acronyme d'Object Linking and Embedding.


Application permettant de stocker et d'afficher des objets OLE.


Application permettant de créer des objets OLE.


Voir type de données intégré.


Variable d'environnement indiquant le répertoire principal des produits Oracle.


Entrée du Navigateur d'objet, telle que Types, Projets, Fichiers d'application Forms, etc., permettant de structurer le Navigateur et indiquant les types de fichier des éléments enfants. Le noeud organisation peut également désigner une structure de données pour certains types d'objet de système de fichiers.


Position déterminée par des coordonnées x et y. L'origine d'une vue indique l'emplacement de la vue sur son canevas parent. L'origine d'un canevas indique l'emplacement du dessin sur une vue dessinée.


Le plus petit rectangle virtuel entourant complètement un objet.


Action se produisant lorsque le contenu d'un objet ne tient pas dans la page logique en cours. En cas de débordement, une partie du contenu passe à la page logique suivante.


Fonction PL/SQL, fournie avec Oracle Developer, pouvant être référencée en tout endroit d'une unité de programme.


Méthode d'encapsulage et de stockage de procédures, de fonctions, de variables et d'autres éléments de package apparentés sous la forme d'une unité unique dans la base de données. Les packages offrent des avantages structurels aux administrateurs de base de données ou aux développeurs d'applications, et augmentent les fonctionnalités et les performances de la base de données.


Le corps de package comprend la mise en oeuvre réelle du package, qui peut comporter des sous-programmes privés et des types de données. Il est facultatif si le package ne se compose que de déclarations.


La spécification de package déclare l'interface publique au package, c'est-à-dire les types de données et les sous-programmes pouvant être référencés par d'autres unités de programme.


(Oracle Express) 1. Tranche de données incluse dans un état. Les pages supplémentaires affichent des tranches de données supplémentaires.

La figure suivante montre trois pages de données.

2. Dans Express, une page peut également désigner une unité de stockage dans une base de données Express.


(Oracle Express) Aperçu des données sélectionnées pour une interrogation, telles qu'elles apparaîtront dans votre tableur. La présentation de la page comporte trois directions : De gauche à droite, De haut en bas et Page. Elles indiquent la manière dont le cube de données multidimensionnel défini par l'interrogation sera représenté dans le tableur en deux dimensions. Les mosaïques de dimension indiquent le nom et la position des dimensions. Une mosaïque de dimension de type De gauche à droite indique que cette dimension est affichée sous forme de colonne. Une mosaïque de dimension de type De haut en bas indique que cette dimension apparaît sous forme de ligne. Une dimension de type Page indique que cette dimension est affichée dans une zone de page, au-dessus des résultats.


Paramètre qui définit si l'objet en cours et ses enfants doivent être déplacés vers la page logique suivante. Vous pouvez demander que les sauts de page se produisent avant ou après l'objet en cours dans la sortie d'état.


Elément d'interface affichant les outils, les couleurs ou les motifs disponibles dans un éditeur.


Partie distincte d'un éditeur, généralement redimensionnable, où les opérations sont exécutées.


Nombre de pages physiques nécessaires pour imprimer une page logique.


1. Elément PL/SQL utilisé pour transmettre des informations à un sous-programme. Par exemple, dans le sous-programme appelé MYPROC (x), x est un paramètre.  2. Dans Oracle Developer, les paramètres permettent de transmettre des informations d'un composant à un autre (entre Form Builder et Graphic Builder, par exemple).  3. Variable pouvant être modifiée à l'exécution.


Groupe comprenant des noms de paramètre et les valeurs associées, utilisé pour transmettre des informations entre les composants d'Oracle Developer.


1. Objet situé immédiatement au-dessus d'un autre dans son arborescence de groupe. Un objet groupe est le parent de chacun des objets qui le composent. Chaque objet est le parent de ses enfants.
2. (Oracle Express) Valeur de dimension de niveau immédiatement supérieur à celui d'une valeur donnée dans une hiérarchie. La valeur parent correspond à la somme globale des valeurs de ses enfants. L'exemple suivant désigne la valeur de dimension France comme parent de Lyon et de Paris dans la dimension GEOGRAPHY.


Placer le contenu du Presse-papiers (objet coupé ou copié) à l'emplacement du curseur.


Propriété graphique pouvant être appliquée au bord ou au remplissage de la plupart des objets.


Code machine ou liste d'instructions pour une unité de programme compilée.


Acronyme de Portable Document Format. Format de fichier (natif pour Adobe Acrobat) servant à représenter des documents de façon indépendante de l'application, du matériel et du système d'exploitation utilisés pour créer les documents. Un fichier PDF peut décrire des documents contenant indifféremment du texte, des graphiques et des images, dans un format indépendant de l'unité et de la résolution.


Taille de la page à l'impression.


Type d'élément utilisé pour matérialiser un champ dans un graphique, tel qu'une barre, une ligne ou un symbole.


Extension (propriété d'Oracle) du langage SQL. Elle ajoute des éléments de procédure et d'autres éléments SQL permettant de concevoir des applications.


Fichier de script de l'interpréteur Procedure Builder.


Fichier de bibliothèque PL/SQL contenant un code source et un code compilé. Vous pouvez ouvrir ce fichier dans Procedure Builder pour le modifier.


Fichier texte contenant le code source PL/SQL d'une seule unité de programme.


Fichier de bibliothèque Runtime PL/SQL contenant uniquement du code exécutable. Vous ne pouvez ni l'ouvrir ni le modifier dans Procedure Builder.


Liste qui apparaît lorsque l'utilisateur effectue une opération particulière.


Numéro utilisé par TCP pour aiguiller des données envoyées ou reçues par un programme donné.


Action livrée avec Project Builder, automatiquement mise à la disposition de l'utilisateur via une option de menu ou un bouton de barre d'outils. Les actions prédéfinies comprennent Build, Deliver, et plusieurs options de gestion des archives et des rapports. Si une action prédéfinie est créée pour un type de fichier pris en charge, elle est appelée pour tout élément de ce type sélectionné, lorsque l'utilisateur appelle l'action à partir de Project Builder. Voir aussi : action, action définie par l'utilisateur.


Voir type de données intégré.


Paramètre affectant le comportement de l'interface de l'application.


(Oracle Express) Affiche le script qui serait généré si vous acceptiez les critères en cours. Dans la boîte de dialogue des outils du Sélecteur, vous pouvez prévisualiser votre sélection en cliquant sur le bouton Aperçu.


Interface vous permettant de visualiser et de parcourir en ligne la sortie d'état.


Colonne d'une table de base de données dont les membres se composent de valeurs uniques pouvant être utilisées pour identifier une ligne dans une table.


Voir type de données intégré.


Dans un fichier de définition d'imprimante, séquence d'échappement à laquelle vous attribuez un code d'imprimante pouvant être référencé dans un état.


Fichier contenant une définition d'imprimante au format texte (ASCII ou EBCDIC, par exemple).


Sous-programme PL/SQL qui exécute la suite d'actions indiquée. Peut résider et être exécuté sur le client et sur le serveur de base de données.


Structure de code PL/SQL pouvant être reconnue de manière indépendante et traitée par le programme de compilation PL/SQL. Les blocs anonymes, les spécifications et corps de sous-programme (procédures et fonctions), et les spécifications et corps de package sont des types d'unité de programme. Les unités de programme peuvent résider et être exécutées sur le client et sur le serveur de base de données. Voir aussi : unité de programme stockée.


Structure de données de base créée par Project Builder. Les projets sont des ensembles de pointeurs désignant tous les fichiers que vous considérez comme faisant partie de votre application ou que vous voulez regrouper de manière conceptuelle. Vous pouvez définir les éditeurs, les compilateurs et les autres outils que vous utilisez pour travailler avec les éléments d'un projet. Toutes les informations relatives au projet sont stockées dans une base de registres projet. Voir aussi : élément de projet, fichier de projet, exporter.


Dans Project Builder, les fichiers de projet sont tous les fichiers associés à une application. Ils peuvent être de tout type (formulaires, états, affichages, modules 3GL, documentation et scripts de test). Voir aussi : projet, élément de projet.


Dans Project Builder, tout élément pour lequel des propriétés peuvent être définies, y compris les entités stockées dans le noeud Projets, les types, les actions et les macros. Voir aussi : projet, fichier de projet.


Fenêtre contenant la liste hiérarchique des éléments de projet pour la session en cours. Cette liste apparaît sous forme de plan, qui permet à l'utilisateur d'effectuer diverses tâches : création, édition, changement de nom et suppression d'objets, par exemple. Bien que l'utilisateur ne puisse en afficher qu'un à la fois, il peut choisir entre deux schémas d'organisation des objets.


Noeud de niveau supérieur d'un projet. Il représente le fichier de projet ou pointe vers ce fichier. Voir aussi : projet, fichier de projet.


Dans Project Builder, fichier stockant toutes les informations relatives à un projet : les fichiers qui en font partie, les types, les actions et les macros définis pour ce projet, etc.


Vue de projets affichant les objets par type et par relation projet/sous-projet. Les projets sont classés dans l'ordre alphabétique par fichier de projet, puis par catégorie. Voir aussi : vue de dépendances, projet, fichier de projet, vue.


Boîte de dialogue permettant à l'utilisateur de créer plus facilement un nouveau projet ou sous-projet.


Caractéristique d'un objet déterminant le comportement ou l'aspect de cet objet.


Objet nommé contenant une liste de propriétés et leurs définitions, qui sert à contrôler de manière globale l'aspect et le fonctionnement des objets fondés sur cette classe.


Chaîne pouvant être saisie lors de la connexion à un serveur ou à une base de données, qui permet de vous connecter à un serveur ou à une base de données distante.


(Oracle Express) Lorsque vous sélectionnez des valeurs pour l'une des dimensions d'une mesure, les autres dimensions de cette mesure sont appelées dimensions qualificatives.

Supposez que la mesure Sales comporte les dimensions Product, Month et Geography. Si vous sélectionnez les dix premières villes en fonction des ventes, vous devez également indiquer le produit et le mois qui sont pris en compte dans votre comparaison des valeurs de vente. Dans ce cas, Product et Month sont les dimensions qualificatives.


Instruction SQL SELECT indiquant les données à extraire d'une ou de plusieurs tables ou vues d'une base de données.


Fonction PL/SQL qui, lors de son exécution, filtre les données extraites par une interrogation. Seules les données répondant aux conditions indiquées dans la fonction sont tracées.


Option mettant fin à la session en cours et ramenant l'utilisateur au système d'exploitation. Sur certains systèmes, Quitter correspond à « Exit ».


Contrôle (semblable à une case à cocher) apparaissant par groupes de deux ou plus, dont un seul peut être « actif » à un moment donné.


Groupe de deux boutons d'option ou plus, dont un seul peut être actif à un moment donné.


(Oracle Express) Outil de la boîte de dialogue Sélecteur permettant à l'utilisateur de sélectionner des périodes consécutives comme valeurs de dimension. Ces périodes peuvent être basées sur l'un des éléments suivants :

•	un nombre précis des périodes les plus récentes ;

•	une période de départ et une période plus récente ;

•	des périodes de début et de fin.

Par exemple, l'utilisateur peut sélectionner des valeurs de dimension pour la période allant de la semaine qui se termine le 25 novembre 1996 à celle qui se termine le 30 décembre 1996.


Chiffre désigné par RSA Data Security, Inc. et qui peut accepter des clés d'une longueur arbitraire. Il s'agit essentiellement d'un générateur de nombres pseudo-aléatoires, la sortie du générateur étant traitée par l'opération Ou exclusif (Xor) avec le flux de données afin de produire les données codées. Une même clé RC4 ne doit donc jamais être utilisée pour coder deux flux de données différents.


Acronyme de Relational Database Management System (système de gestion de base de données relationnelle - SGBDR). Système de base de données permettant de définir des structures de données, des opérations de stockage et d'extraction, ainsi que des contraintes d'intégrité. Les données et leurs relations sont structurées sous forme de tables.


Fichier contenant une seule définition d'état au format binaire. Les fichiers .RDF servent à exécuter et à éditer des états.


Fichier contenant une seule définition d'état au format binaire. Les fichiers .REP servent uniquement à exécuter des états. Vous ne pouvez pas les modifier.


Possibilité d'interroger les données d'une base de données depuis un point unique dans le temps.


Une seule ligne, extraite par une instruction SQL SELECT.


Objet de structure de données interne représenté sous forme de colonnes et de lignes, appartenant au module Application Forms dans lequel elles sont définies.


Type de colonne pointant vers les données d'autres objets colonne ou d'autres tables d'objets (Oracle8).


Ligne apparaissant à la valeur indiquée dans un graphique.


(Oracle Express) Rechercher les données les plus récentes d'une base de données Express après l'affichage des résultats de l'interrogation dans votre état. Lorsque vous ouvrez une interrogation Express enregistrée, les résultats sont automatiquement régénérés.


Ajouter la définition d'un type ou d'un nouveau projet à la base de registres globale ou locale. Une fois le nouveau type inscrit aux registres, vous pouvez lui associer des actions, et vous pouvez référencer les fichiers d'un nouveau projet en tant que types spécifiques pour y exécuter des actions. Voir aussi : base de registres.


Fichier de configuration global et/ou propre à un utilisateur, permettant de stocker des définitions de projet et des informations sur l'environnement. Voir aussi : base de registres globale, base de registres utilisateur.


Symbole utilisé dans des critères de recherche pour comparer deux valeurs, comme le signe égal dans « WHERE DEPTNO = 10 ». Les lignes dans lesquelles le résultat de la comparaison est Vrai sont renvoyées dans le résultat (extraites), alors que celles dans lesquelles la comparaison renvoie la valeur Faux sont exclues des résultats.


Base de données résidant sur un autre ordinateur que la base de données locale. En général, il s'agit d'un ordinateur du même réseau, mais sur un noeud différent (c'est-à-dire une base de données que vous utilisez via une liaison de base de données).


Objet de présentation permettant d'afficher des lignes de données extraites pour un groupe.


Mode dans lequel chacun des caractères que vous tapez remplace le caractère existant situé à l'emplacement du curseur. Contraire de mode insertion.


Objets servant à définir le modèle et la présentation des données d'un état. Les objets de niveau état sont attribués à un seul état, et ne peuvent pas être partagés par d'autres états ou d'autres produits Oracle. Ces objets comprennent les états, les interrogations, les interrogations externes, les bibliothèques PL/SQL externes, les groupes, les colonnes, les paramètres, les liaisons, les encadrements, les encadrements itératifs, les champs, les textes standard et les points d'ancrage.


Disponible sous Windows NT et Windows 95 uniquement. Attend une ligne de commande pour exécuter un état, puis place cet état dans sa file d'attente pour l'exécuter à l'arrière-plan sur le serveur local. En général, les lignes de commande sont reçues depuis Form Builder ou Graphics Builder via RUN_PRODUCT, ou reçues d'un autre état via SRW.RUN_REPORT. Vous pouvez également utiliser RWISV60 pour soumettre un état au moteur d'état d'arrière-plan (Reports Background Engine).


Permet de mettre à jour l'horodatage et les informations des états gérés par Report Server.


Disponible sous Windows NT, Windows 95 et UNIX. Permet d'exécuter des états sur un serveur distant. Met les demandes de travaux dans la file d'attente et vous permet de planifier l'exécution des états. Utilisez RWCLI60 pour envoyer un état à Report Server.


Fournit une interface entre votre serveur Web et Reports Runtime pour vous permettre d'exécuter des états de manière dynamique à partir de votre navigateur Web.


Fournit une connexion entre un serveur Web et Reports Server.


Fichier contenant une définition d'état stockée au format texte (ASCII ou EBCDIC, par exemple). Les fichiers .REX permettent de porter des états d'une plate-forme à une autre. Les fichiers .REX sont désormais inutiles. Ils sont disponibles dans un but de compatibilité avec les versions précédentes.


Acronyme de « rouge, vert, bleu », désignant l'intensité de rouge, de vert et de bleu d'une couleur.


Objet groupe auquel tous les autres objets de l'application appartiennent.


Noeud de niveau supérieur d'un projet, représentant l'environnement de l'utilisateur. Peut correspondre à la base de registres utilisateur ou à la base de registres globale, selon la base choisie pour définir les valeurs par défaut.


1. Ensemble de valeurs de champ d'une table ; par exemple, les champs représentant un employé dans la table EMP.  2. Générer une version Runtime d'une application.


Objet d'une table d'objets Oracle8. Chaque ligne de la table correspond à un objet. Toutefois, dans Oracle Developer, une table d'objets est décomposée en différentes colonnes, si bien que l'objet ligne n'existe plus en tant qu'entité unique (mais seulement sous la forme de ses différents attributs).


Exécuter une version Runtime d'une application ou d'une unité de programme.


Acronyme de Rich Text Format. Format de fichier indépendant de la plate-forme, fondé sur des mots de contrôle, permettant de représenter des textes et des images non formatés sous divers systèmes d'exploitation et dans diverses applications. Le format RTF utilise le jeu de caractères ANSI, PC-8, Macintosh ou IBM PC pour contrôler la représentation et le formatage d'un document à l'écran et à l'impression.


Voir fichier rep.


Interface permettant à l'utilisateur d'afficher une application Runtime et de l'utiliser.


Ecran ou fenêtre pouvant apparaître lors de l'exécution, dans laquelle l'utilisateur peut modifier des options et des paramètres d'impression avant l'exécution d'un état.


(Oracle Express) Ensemble de valeurs de dimension enregistrées en tant que liste de valeurs ou en tant que script. Vous pouvez enregistrer les sélections que vous créez ou l'administrateur de la base de données peut créer des sélections enregistrées que vous pourrez ensuite utiliser.

Les sélections enregistrées permettent de gagner du temps : pour réutiliser une sélection, il suffit d'extraire une sélection enregistrée, sans la créer de nouveau.


(Oracle Express) Outil du Sélecteur permettant d'extraire une sélection de valeurs de dimension enregistrée.


Ensemble d'objets de base de données apparentés, généralement regroupés par ID d'utilisateur de la base de données. Les objets de schéma comprennent les tables, les vues, les séquences, les unités de programme stockées, les synonymes, les index, les groupes et les liaisons de base de données.


Niveau (plage) auquel fonctionne un objet. Dans Project Builder :  1. Décrit la plage de fichiers affectés par les commandes Compiler et Compiler tout, appelées pour des éléments de projet compilables.  2. Décrit la plage de fichiers concernés par les définitions héritables.


Voir scripts SQL, scripts de l'interpréteur.


Dans Report Builder, une ou plusieurs présentations d'un même état dont le public, le format de sortie, la présentation de page, la taille ou l'orientation diffèrent. Par exemple, un seul état peut contenir, dans une section, un récapitulatif destiné aux cadres supérieurs et, dans une autre, un rapport détaillé destiné à chaque directeur.


Instruction SQL indiquant les lignes et les colonnes à extraire d'une ou de plusieurs tables ou vues.


(Oracle Express) Ensemble des valeurs de dimension sélectionnées dans une dimension, ou script contenant les conditions ou les critères permettant d'indiquer ces valeurs.


(Oracle Express) Description des choix effectués par l'utilisateur lors de la sélection des valeurs de dimension, affichée dans la plupart des boîtes de dialogue du Sélecteur. Il s'agit d'une traduction, en langage clair, du script en langage Express.


(Oracle Express) Ensemble d'outils servant à sélectionner les valeurs de dimension à inclure (par exemple, dans un état, une table, un graphique ou une liste de dimensions). Par exemple, vous pouvez utiliser le Sélecteur pour choisir les 10 premières villes en fonction des ventes ou pour choisir les villes dont les ventes ont dépassé le quota de 15 %. Le Sélecteur permet également de trier les valeurs de dimension, et de créer et d'extraire des sélections enregistrées.


(Oracle Express) Boîte de dialogue ou groupe de boîtes de dialogue qui permet de sélectionner ou de trier les valeurs de dimension d'une manière particulière. Chaque outil Sélecteur fait partie du Sélecteur. Vous pouvez utiliser ces outils pour sélectionner des valeurs de dimension selon leur niveau hiérarchique, leurs attributs, les caractères figurant dans le nom de la valeur, etc. Vous pouvez également les utiliser pour trier les valeurs de dimension.


Période s'écoulant entre l'appel d'un exécutable et sa fermeture.


Objet ayant le même objet parent que d'autres dans son arborescence de groupe. Tous les objets appartenant à un même objet groupe sont des objets frères.


Combinaison d'une adresse IP et d'un numéro de port.


(Oracle Express) Outil de la boîte de dialogue Sélecteur permettant de modifier l'ordre des valeurs de dimension dans la sélection affichée. Vous pouvez trier une sélection dans l'ordre croissant ou décroissant, en fonction de l'un des éléments suivants :

•	ordre alphabétique

•	ordre d'apparition dans la base de données

•	valeurs de données

•	ordre ou niveau de hiérarchie

•	période

Vous pouvez également trier une sélection manuellement, en faisant glisser les valeurs de dimension.


Instructions PL/SQL fournies dans un sous-programme ou un package. Vous devez disposer du code source d'une unité de programme pour pouvoir la compiler sous une forme exécutable. Dans Project Builder : types d'entrée nécessaires à la création des types cible.


Définit uniquement les noms, les paramètres et le type de valeur renvoyée (pour les fonctions uniquement) du sous-programme.


Petit rectangle situé au bas de la barre de défilement verticale et à gauche de la barre de défilement horizontale dans un éditeur. Il permet de créer un nouveau panneau à l'aide de la souris et crée une barre de défilement distincte pour chaque panneau.


Interface standard de stockage et d'extraction d'informations dans une base de données relationnelles. SQL est l'acronyme de Structured Query Language.


Fichier contenant une interrogation au format texte (ASCII ou EBCDIC, par exemple).


Fichier contenant des instructions SQL qui permettent d'exécuter rapidement et facilement des fonctions de gestion des bases de données. Les produits Oracle sont livrés avec plusieurs scripts SQL.


Instruction SQL pour Oracle. Une instruction SELECT est un type d'instruction SQL.


Voir pile d'appels.


Elément PL/SQL servant au contrôle conditionnel, itératif et séquentiel, ainsi qu'à la gestion des erreurs. Chaque instruction PL/SQL doit se terminer par un point-virgule (;).


(Oracle Express) Sélection enregistrée contenant les mêmes valeurs de dimension à chaque évaluation. Les sélections statiques enregistrées répertorient les valeurs de dimension à sélectionner, plutôt que les critères de sélection. Par exemple, un script de sélection statique enregistrée peut contenir « Sélectionnez février 1996, mars 1996 et avril 1996 », alors que le script d'une sélection dynamique enregistrée peut indiquer « Sélectionnez les trois derniers mois ».


Procédure, fonction ou package résidant et s'exécutant sur le serveur de base de données Oracle.


Procédure ou fonction résidant et s'exécutant sur le serveur de base de données Oracle.


Extensions HTML fournissant une souplesse de formatage dans les documents HTML. Pour afficher un document HTML avec tous les avantages des feuilles de style, affichez-le dans un navigateur prenant en charge les feuilles de style.


Procédure ou fonction PL/SQL.


Dans Project Builder, projet contenu dans un autre fichier de projet, au lieu d'être stocké dans son propre fichier. Voir aussi : projet.


Dans Project Builder, noeud indiquant un sous-projet. Voir aussi : projet, noeud projet, noeud sous-projet.


Colonne de type récapitulatif calculant des totaux partiels, des totaux globaux, des totaux cumulés et d'autres récapitulatifs des données d'un état, à l'aide des fonctions récapitulatives fournies par Report Builder.


Format de fichier utilisé par le programme Microsoft Excel.


Système ordonné permettant de combiner des commandes, des qualificateurs et des paramètres pour former des chaînes de commande valides.


L'une des variables fournies par Oracle Developer (&Logical Page ou DESTYPE, par exemple).


Ensemble nommé d'informations apparentées, stockées dans une base de données relationnelles ou sur un serveur, dans une grille à deux dimensions composée de lignes et de colonnes.


Type de collecte définissant une unité de données composée d'un ensemble non trié d'éléments dont le type de données est identique. L'unité de données correspondante est une table imbriquée à une seule colonne, dont le type est un type de procédure interne ou un type d'objet. (Oracle8)


Présentation par défaut affichant des libellés en haut de la page et des lignes de données en dessous des libellés.


Dans Project Builder, élément figurant au milieu de l'arborescence des dépendances ; par exemple, un exécutable est une cible (de compilation) pour une bibliothèque, une bibliothèque est une cible pour un groupe d'objets et un objet est une cible pour un fichier source.


Noeud indiquant une cible. Voir aussi : cible.


Acronyme de Transmission Control Protocol. Protocole de communication sous-jacent pour l'échange de demandes HTTP entre clients et serveurs Web.


Sous-menu que l'utilisateur peut sortir de son emplacement d'origine, à l'aide de la souris ou de tout autre périphérique de pointage, puis placer à un autre endroit de l'écran.


Dans Form Builder, élément affichant une valeur de chaîne de caractères.


Zone horizontale située dans la partie supérieure d'une fenêtre, affichant le nom de l'application ou de l'élément d'interface de cette fenêtre.


Voir page de garde.


Activer ou désactiver un paramètre. Vous pouvez, par exemple, afficher ou masquer le Navigateur d'objet.


Bouton portant une icône, servant à créer et à manipuler des objets dans une application.


Ensemble de boutons à icône, permettant d'exécuter des commandes. Ces boutons sont généralement alignés horizontalement dans la partie supérieure de la fenêtre ou verticalement sur le côté de la fenêtre.


Ensemble d'outils.


(Oracle Express) Outil de la boîte de dialogue Sélecteur permettant à l'utilisateur de sélectionner des valeurs de dimension en fonction des premières valeurs de données d'abscisse, des dernières valeurs de données d'ordonnées ou d'une combinaison de ces valeurs. Par exemple, l'utilisateur peut créer une sélection de dimension contenant les produits dont l'élément Volume Sales fait partie des 10 % de produits les plus vendus dans tous les Etats-Unis au cours de la période de quatre semaines se terminant le 30 décembre 1995.


Zone d'état facultative pouvant contenir des informations de clôture de l'état, notamment du texte, des graphiques, des données et des calculs. La page de fin d'état figure en dernier, après la page de garde et le corps.


Séquence d'instructions SQL traitée comme une unité.


Procédure PL/SQL exécutée ou « déclenchée » lors d'un événement particulier.


Description d'un type de fichier (une application Forms, un document, etc.) contenant des informations telles qu'un nom de type et une description. Chaque description ne s'applique qu'à un type de fichier. Il existe en outre quatre métatypes : « updtext » qui s'applique à tous les fichiers texte, « updproj » qui s'applique à tous les fichiers projet, « updlink » qui s'applique à tous les liens de projet et « tous » qui s'applique à tout type de fichier. Les types permettent de définir des actions et des macros.


Modifier des valeurs de données de table, en particulier en modifiant les valeurs de données à l'aide de la commande SQL UPDATE, mais également en supprimant des valeurs à l'aide de la commande SQL DELETE ou en insérant des valeurs à l'aide de la commande INSERT.


Acronyme de Uniform Resource Locator. Adresse utilisée pour indiquer un serveur WWW. Par exemple :
http://www.acme.com/
Cette chaîne indique que l'adresse de l'hôte est www.acme.com. Cette adresse est le plus souvent un nom de fichier, parfois doté d'un long chemin d'accès et généralement accompagné du suffixe de fichier .HTML ou .HTM (pour les noms de fichier DOS).


(user exit) Méthode consistant à passer le contrôle (et parfois des arguments) d'Oracle Developer à un autre produit Oracle ou à un langage de troisième génération, puis à rendre le contrôle (et, éventuellement, renvoyer des arguments) à Oracle Developer.


Action personnalisée définie par un utilisateur de Project Builder. Une action peut s'appliquer à un type de fichier unique ou à tous les types. Voir aussi : action, action prédéfinie.


Voir type d'objet.


Macro personnalisée définie par un utilisateur de Project Builder. Une macro peut permettre de modifier des actions intégrées et des actions définies par l'utilisateur. Voir aussi : macro, macro intégrée, action, action prédéfinie.


Fichier de projet contenant des informations de configuration relatives à un utilisateur. Il permet aux utilisateurs de personnaliser leur environnement de développement. La base de registres utilisateur hérite des informations de type de la base de registres globale et permet de définir de nouveaux types, ainsi que d'ignorer certains aspects des définitions de type stockées dans la base de registres globale. Elle permet également de stocker des informations sur l'environnement et les préférences, comme la chaîne de connexion préférée de l'utilisateur, les paramètres d'interface utilisateur (par exemple, l'option Afficher barre d'outils et certaines informations générales de projet, comme le nom de l'auteur). Voir aussi : base de registres, base de registres globale.


Voir axe continu.


Structure de code PL/SQL renvoyant une valeur. Ces structures comprennent des fonctions et des expressions.


Objet nommé auquel vous pouvez attribuer une valeur, qui sera variable dans le temps.


Type de collecte définissant une unité de données constituée d'un ensemble trié d'éléments dont le type de données est identique. L'unité de données correspondante est un tableau variable ou VARRAY. Le nombre d'éléments d'un VARRAY (taille) est variable. Toutefois, vous devez indiquer une taille maximale lorsque vous déclarez un type de tableau variable.


Extension de fichier Visual Basic utilisée pour les bibliothèques de liens dynamiques réparties sur des fichiers contenant des contrôles VBX prédéfinis.


Widget créé en langage Microsoft Visual Basic et permettant de perfectionner l'interface utilisateur, d'obtenir des entrées utilisateur et d'afficher des sorties (règles, quadrillages et boutons de contrôle, par exemple).


Table virtuelle dont les lignes n'existent pas en réalité dans la base de données, mais qui est fondée sur une table physiquement stockée dans cette base.


Mnémonique de répertoire (principalement un raccourci ou un synonyme) utilisé par le système de fichiers virtuel pour établir la correspondance des fichiers stockés dans le système de fichiers de l'ordinateur hôte.


Mise en correspondance associant les chemins d'accès utilisés dans une URL au système de fichiers mis à jour par le système d'exploitation de l'ordinateur hôte.


Propriétés de police, de couleur et de motif que vous définissez pour les objets affichés dans votre interface d'application.


Voir WWW.


Programme permettant aux utilisateurs de lire des documents HTML et des programmes stockés sur un ordinateur (desservi par un serveur Web).


Programme exécuté sur un serveur Web via Web Request Broker.


Processus serveur (démon HTTP) exécuté sur un site Web, qui renvoie des pages Web en réponse à des demandes HTTP issues de navigateurs Web.


Caractère servant à remplacer « tout caractère » ou « un ensemble de caractères contigus » dans un mot ou une expression.


1. Zone rectangulaire du bureau contenant une application. Chaque fenêtre comporte une zone dans laquelle vous pouvez dialoguer avec l'application. Les fenêtres peuvent être ouvertes, redimensionnées, déplacées, mises en icône ou agrandies pour remplir le bureau.  2. Dans Form Builder, type d'objet pouvant être associé à une vue-canevas.


Format de fichier utilisé par certains tableurs, comme les programmes SQL*Calc ou Lotus 1-2-3.


Acronyme de Web Request Broker Oracle. Offre un environnement d'exécution réparti puissant permettant de développer et de déployer des applications pour le Web. La plate-forme d'exécution WRB permet aux développeurs d'écrire des applications indépendantes des serveurs Web, mais pouvant fonctionner avec un certain nombre de ces serveurs.


Acronyme de World Wide Web. Réseau de serveurs sur Internet, dont chacun possède une ou plusieurs pages d'accueil. Ces pages fournissent des informations et des liens à d'autres documents sur le même serveur et (généralement) sur d'autres.


Développer un objet afin d'agrandir l'espace pour éditer le contenu du champ.


Barre d'outils secondaire, située par défaut le long de la partie supérieure de l'écran du Navigateur de projet, offrant des fonctions simples d'organisation et de lancement d'applications.


 Version la plus récente des contrôles OLE (OCX).


Sortie XML conforme aux principes XML généraux, c'est-à-dire dotée des balises, des imbrications et des inclusions correctes propres à une déclaration XML. Exemple : <?xml version="1.0" encoding="UTF-8"?>.


Un nom utilisateur de réserve permet à l'utilisateur de se connecter à la base de données en utilisant son nom utilisateur personnel au lieu d'utiliser le nom utilisateur correspondant à la base de données Oracle (par exemple, $nom_utilisateur@base_données) lors de l'exécution d'états depuis un navigateur Web.


Acronyme d'Extensible Markup Language. Métalangage qui utilise du code SGML pour définir et structurer les données. Report Builder prend en charge les sorties XML pour permettre la publication sur le Web et l'échange de données électroniques avec des applications tierces. Vous pouvez également utiliser le format XML pour créer des définitions d'état pouvant être exécutées séparément ou fusionnées avec d'autres définitions d'état lors de l'exécution.


Sortie XML dotée d'une structure et d'éléments conformes à une définition de type de document (DTD). Le code XML valide comporte aussi un format correct.


Variables d'environnement

  Rubriques connexes

CA_GPREFS

CA_UPREFS

CUE_PREFS

DEV2000_PROJECT

DEV2000_SOURCECONTROL

DOC60

FORMS60_DEFAULTFONT

FORMS60_EDITOR

FORMSnn_ERROR_DATE/DATETIME_FORMAT

FORMS60_JAVADIR

FORMS60_MAPPING

FORMS60_OUTPUT

FORMSnn_OUTPUT_DATE/DATETIME_FORMAT

FORMS60_PATH

FORMS60_REPFORMAT

FORMS60_TIMEOUT

FORMSnn_USER_DATE/DATETIME_FORMAT

FORMS60_USEREXITS

GRAPHICS60_PATH

INTERRUPT (utilisateurs DOS SQL*Net seulement)

LOCAL

NLS_LANG

OleCreateObjPoolInMemory

OleDoNotUpdateLinks

OleUpdateLinksPrompt

ORACLE_HOME

ORACLE_PATH

ORAINFONAV_DOCPATH

REPORTS60_CGIDIAGBODYTAGS

REPORTS60_CGIDIAGHEADTAGS

REPORTS60_CGIHELP

REPORTS60_CGIMAP

REPORTS60_CGINODIAG

REPORTS60_CGIPATHONLYURL

REPORTS60_COOKIE_EXPIRE

REPORTS60_DB_AUTH

REPORTS60_ENCRYPTION_KEY

REPORTS60_OWSDIAGBODYTAGS

REPORTS60_OWSDIAGHEADTAGS

REPORTS60_OWSHELP

REPORTS60_OWSMAP

REPORTS60_OWSNODIAG

REPORTS60_OWSPATHONLYURL

REPORTS60_PATH

REPORTS60_REPORTS_SERVER

REPORTS60_SYS_AUTH

REPORTS60_TERMINAL

REPORTS60_TMP

REPORTS60_USEREXIT

REMOTE

UI_ICON

USERNAME

WIN_REMOTE_SESSIONS

XMITTR (utilisateurs DOS seulement)


Base de registres (Windows 95 et Windows NT)

  Variables d'environnement

Oracle Installer crée une section ORACLE dans votre base de registres. Cette section contient des paramètres de configuration qui contrôlent notamment le nom du répertoire d'origine Oracle Home, et l'emplacement du fichier de préférences du produit et celui des fichiers d'aide.

Affichage et modification de la base de registres

Vous pouvez afficher et facultativement éditer la base de registres de Microsoft Windows à l'aide de l'Editeur de base de registres. Cet éditeur se trouve dans le répertoire où est installé votre logiciel Windows. Pour lancer l'Editeur, choisissez Démarrer [image] Exécuter, puis tapez REGEDIT et cliquez sur OK.

Dans l'Editeur de base de registres, développez le noeud HKEY_LOCAL_MACHINE, puis le noeud SOFTWARE. Cliquez sur ORACLE pour afficher les paramètres de configuration Oracle.

Vous pouvez modifier les valeurs de paramètre en cliquant deux fois sur le nom de paramètre pour afficher la boîte de dialogue d'édition de chaîne. Changez la valeur dans la boîte Valeur, puis cliquez sur OK pour accepter la nouvelle valeur.


Paramètres de configuration

  Variables d'environnement

Oracle Installer définit automatiquement plusieurs paramètres. Certains d'entre eux sont requis par les produits Oracle, et d'autres vous permettent de personnaliser le comportement des produits.

Paramètres requis

Les paramètres répertoriés dans la présente section sont automatiquement définis ou supprimés par Oracle Installer. Ils sont requis par divers produits pour assurer leur bon fonctionnement.

Attention : Ne modifiez pas la définition des paramètres répertoriés dans la présente section, car vous pourriez altérer le fonctionnement d'un ou de plusieurs produits Oracle.

La présence de nn dans les paramètres répertoriés ci-dessous indique le numéro de version d'un produit ou d'un composant. Ce numéro peut changer lorsque vous passez à une nouvelle version d'un produit Oracle.

Parameter	Valeur par défaut
BROWSERnn	ORACLE_HOME\BROWSE25
DEnn	ORACLE_HOME\TOOLS\COMMON60
FORMSnn	ORACLE_HOME\FORMS60
GRAPHICSnn	ORACLE_HOME\GRAPH60
MMnn	ORACLE_HOME\TOOLS\COMMON60
OCLnn	ORACLE_HOME\GRAPH60
PROnn	ORACLE_HOME\PRO18
RDBMSnn	ORACLE_HOME\RDBMS73
RWnn	ORACLE_HOME\REPORT60
TKnn	ORACLE_HOME\TOOLS\COMMON60
VGSnn	ORACLE_HOME\TOOLS\COMMON60
Paramètres personnalisables

Les paramètres répertoriés dans la présente section contrôlent divers aspects de vos produits Oracle. Vous pouvez en modifier les paramètres pour personnaliser le comportement du produit.

Les sections ci-dessous répertorient la valeur par défaut (le cas échéant) de chacun des paramètres définis automatiquement par Oracle Installer. Les paramètres qui ne sont pas définis automatiquement sont également indiqués. Vous y trouverez également des descriptions de valeurs valides et des exemples de paramétrage.


CA_GPREFS

Valeur par défaut : ORACLE_HOME

Valeurs valides : tout répertoire sur toute unité

Exemple :

CA_GPREFS=C:\orawin95

Ce paramètre indique l'emplacement du fichier des préférences globales CAGPREFS.ORA. Les préférences globales sont partagées par les utilisateurs réseau. En plus de rechercher le répertoire indiqué par le paramètre CA_GPREFS, les produits recherchent également le répertoire en cours pour le fichier AGPREFS.ORA.

Le fichier CAGPREFS.ORA est créé automatiquement par Oracle Installer. Pour modifier les paramètres des préférences globales, faites appel à un éditeur de texte, tel que le Bloc-notes. Les préférences globales définies dans le fichier CAGPREFS.ORA peuvent être remplacées par celles du fichier des préférences locales CAUPREFS.ORA, qui est défini par le paramètre CA_UPREFS.


CA_UPREFS

Valeur par défaut : ORACLE_HOME

Valeurs valides : tout répertoire sur toute unité

Exemple :

CA_UPREFS=C:\orawin95

Ce paramètre indique l'emplacement du fichier des préférences utilisateur CAUPREFS.ORA. Ce fichier met à jour les préférences de vos produits, définies via Outils [image] Options d'outils. En plus de rechercher le répertoire indiqué par le paramètre CA_UPREFS, les produits recherchent également le répertoire en cours pour le fichier CAUPREFS.ORA.

Plusieurs produits Oracle écrivent leurs préférences dans le fichier CAUPREFS.ORA. Pour modifier les paramètres des préférences utilisateur, faites appel à une éditeur de texte, tel que le Bloc-notes. Les préférences utilisateur définies dans le fichier CAUPREFS.ORA remplacent les préférences globales définies dans le fichier CAGPREFS.ORA, qui est défini par le paramètre CA_GPREFS.


CUE_PREFS

Valeur par défaut : ORACLE_HOME

Valeurs valides : tout répertoire sur toute unité

Exemple :

CUE_PREFS=C:\orawin95

Ce paramètre indique l'emplacement du fichier des préférences des Assistants CUEPREF.RES. Ce fichier met à jour les préférences des Assistants que vous pouvez définir dans la boîte de dialogue d'options des Assistants.

Vos préférences sont enregistrées dans le fichier CUEPREF.RES chaque fois que vous quittez une application. Vous ne pouvez pas modifier ce fichier manuellement.


DEV2000_SOURCECONTROL

Valeur par défaut : aucune

Valeurs valides : mots-clés indiquant le système de contrôle de sources à utiliser avec Oracle Developer

Exemple :

DEV2000_SOURCECONTROL=PVCS

Ce paramètre indique le système de contrôle de sources que vous prévoyez d'utiliser avec Oracle Developer. Vous pouvez n'indiquez aucun système de contrôle de sources ou définir ce paramètre à la valeur 'PVCS'. La prise en charge de systèmes de contrôle de sources supplémentaires étant assurée, vous pourrez également indiquer des mots-clés pour les systèmes de contrôle de sources supplémentaires.


DEV2000_PROJECT

Valeur par défaut : aucune

Valeurs valides : mots-clés indiquant le fichier de projet du système de contrôle de sources à utiliser avec Oracle Developer

Exemple :

DEV2000_PROJECT=c:\pvcs\project1\project1.cfg

Ce paramètre indique le nom du fichier de projet pour le système de contrôle de sources sélectionné dans le paramètre DEV2000_SOURCECONTROL.


DOC60

Valeur par défaut : Oracle_Home\tools\doc60

Valeurs valides : tout répertoire sur toute unité

Exemple :

DOC60=c:\orawin95\tools\doc60

Ce paramètre indique l'emplacement des fichiers de documentation en ligne, dont l'aide en ligne, les Assistants et les Aperçus produit.


FORMS60_DEFAULTFONT

Valeur par défaut : aucune

Valeurs valides : chaîne de texte indiquant toute police valide

Exemple :

FORMS60_DEFAULTFONT="MS Sans Serif.8"

Ce paramètre indique la police par défaut utilisée pour les textes standard dans l'Editeur de présentation de Form Builder.


FORMS60_EDITOR

Valeur par défaut : aucune

Valeurs valides : nom et chemin d'un éditeur système

Exemple :

FORMS60_EDITOR=C:\windows\notepad.exe

Ce paramètre définit l'Editeur pouvant être appelé par des éléments multilignes de Form Builder dans les composants Designer ou Runform. Aucun éditeur défini par l'utilisateur ne peut être lancé à moins que ce paramètre ne soit défini.

Remarque : Lorsque vous quittez l'Editeur, le fichier doit être enregistré sous forme de fichier "ASCII seulement". Aucun format natif de système de traitement de texte n'est pris en charge.


FORMSnn_ERROR_DATE/DATETIME_FORMAT

Objectif : ces deux variables d'environnement établissent les masques de format que Forms utilisera lors de la génération des messages d'erreur Runtime émis lorsqu'un utilisateur final saisit une valeur non valide dans un élément de date ou de date/heure.

Valeur par défaut : reportez-vous à la rubrique d'aide concernant les masques de formats de date.

Valeurs valides : tout masque de format de date/de date et heure valide.

Exemple :

FORMS65_ERROR_DATE_FORMAT YYYY/MM/DD


FORMS60_JAVADIR

Valeur par défaut : Oracle_Home\forms60\java

Valeurs valides : nom et chemin de l'environnement d'exécution Oracle Java

Exemple :

FORMS60_JAVADIR=C:\orant\forms60\java

Ce paramètre définit l'emplacement des fichiers d'environnement d'exécution Oracle Java requis pour utiliser les zones Java Bean et pour afficher un aperçu des formulaires Web dans Form Builder.


FORMS60_MAPPING

Valeur par défaut : aucune

Valeurs valides : l'emplacement virtuel de votre répertoire de travail temporaire

Exemple :

FORMS60_MAPPING=http://monhôte.com/webtemp

Pour traiter des images sur le Web, Forms Server transmet des fichiers temporaires JPEG compressés. Si vous utilisez des images ou des icônes dans vos applications Web Forms, vous devez créer un répertoire temporaire et un répertoire virtuel (par exemple, C:\ORANT\WEBTEMP) où Forms Server stocke les images et les autres fichiers de travail. Vous devez également créer les variables d'environnement FORMS60_OUTPUT et FORMS60_MAPPING sur l'ordinateur où Forms Server est exécuté.


FORMS60_OUTPUT

Valeur par défaut : aucune

Valeurs valides : tout répertoire sur toute unité où Forms Server est exécuté

Exemple :

FORMS60_OUTPUT=C:\ORANT\WEBTEMP\

Pour traiter des images sur le Web, Forms Server transmet des fichiers temporaires JPEG compressés. Si vous utilisez des images ou des icônes dans vos applications Web Forms, vous devez créer un répertoire temporaire (par exemple, C:\ORANT\WEBTEMP) où Forms Server stocke les images et les autres fichiers de travail. Vous devez également créer les variables d'environnement FORMS60_OUTPUT et FORMS60_MAPPING sur l'ordinateur où Forms Server est exécuté.


FORMSnn_OUTPUT_DATE/DATETIME_FORMAT

Objectif : ces deux variables d'environnement établissent les masques de format que Forms utilisera lors des opérations de sortie Runtime sur les éléments de date et de date/heure qui ne disposent pas de leur propre masque.

Valeur par défaut : reportez-vous à la rubrique d'aide concernant les masques de formats de date.

Valeurs valides : tout masque de format de date/de date et heure valide.

Exemple :

FORMS65_OUTPUT_DATETIME_FORMAT YYYY/MM/DD HH24:MI:SS


FORMS60_PATH

Valeur par défaut : ORACLE_HOME\FORMS60\PLSQLLIB

Valeurs valides : tout répertoire sur toute unité

Exemple :

FORMS60_PATH=C:\oracle\apps\forms;C:\myfiles

Ce paramètre indique le chemin de recherche pour les fichiers utilisés dans une application Form Builder runtime. Ces fichiers comprennent les fichiers d'application Forms (.fmx), les fichiers de menu (.mmx), les bibliothèques PL/SQL (.pll) et les autres objets que l'application tente de charger depuis un fichier à l'exécution. Par exemple, si vous importez le fichier image scooter.tif, Form Builder effectue sa recherche dans les répertoires indiqués par FORMS60_PATH pour retrouver ce fichier.

FORMS60_PATH peut indiquer plusieurs répertoires. Utilisez un point-virgule pour séparer les noms de répertoire dans une liste de chemins.


FORMS60_REPFORMAT

Valeur par défaut : aucune

Valeurs valides : HTML et PDF

Exemple :

FORMS60_REPFORMAT=HTML

Si vous appelez un navigateur pour exécuter un état de grille via RUN_PRODUCT, vous devez définir la variable d'environnement FORMS60_REPFORMAT. Ce paramètre indique le format de l'état.


FORMS60_TIMEOUT

Valeur par défaut : 15

Valeurs valides : 1 à 1 440 (1 jour)

Exemple :

FORMS60_OUTPUT=1440

Ce paramètre indique le temps écoulé en minutes avant la fermeture du serveur Forms, en l'absence de communication client avec ce serveur.


FORMSnn_USER_DATE/DATETIME_FORMAT

Objectif : ces deux variables d'environnement établissent les masques de format que Forms utilisera lors de l'exécution pour extraire des valeurs des éléments de type DATE et DATETIME lorsque ces derniers ne disposent pas de leur propre masque.

Valeur par défaut : reportez-vous à la rubrique d'aide concernant les masques de formats de date.

Valeurs valides : tout masque de format de date/de date et heure valide. Vous pouvez indiquer plusieurs masques de format en les séparant par des barres verticales. Au moment de l'exécution, lors de la conversion des éléments, les masques de format sont utilisés dans l'ordre indiqué, jusqu'à ce qu'une conversion réussisse (ou jusqu'à ce que tous les masques aient été essayés).

Exemple :

FORMS65_USER_DATE_FORMAT  FXFMDD-MM-RRRR


FORMS60_USEREXITS

Valeur par défaut : aucune

Valeurs valides : toute bibliothèque de liens dynamiques de sortie utilisateur (avec le chemin absolu).

Ce paramètre vous permet de définir plusieurs fichiers DLL de sorte que ceux-ci contiennent des fonctions étrangères pouvant être appelées depuis une interface de sortie utilisateur. Le paramètre FORMS60_USEREXITS inclut une liste de fichiers DLL d'interface utilisateur séparés par des points-virgules.

FORMS60_USEREXITS peut indiquer plusieurs fichiers DLL. Utilisez une barre oblique inverse (\) pour séparer les répertoires dans un chemin, et un point-virgule (;) pour séparer les chemins complets.

Si cette valeur n'est pas définie explicitement, Form Builder prend implicitement la valeur ORACLE_HOME\BIN\F45XTB.DLL.

Exemple :

FORMS60_USEREXITS = C:\mathlib\add.dll;C:\mathlib\mult.dll


GRAPHICS60_PATH

Valeur par défaut : aucune

Valeurs valides : tout répertoire sur toute unité

Exemple :

GRAPHICS60_PATH=C:\oracle\apps\graphics;C:\myfiles

Ce paramètre indique le chemin de recherche pour les fichiers utilisés dans une application Graphics runtime. Ces fichiers comprennent les fichiers d'affichage (.ogr), les images, les interrogations externes et les autres objets que l'application tente de charger depuis un fichier à l'exécution. Par exemple, si vous importez le fichier image scooter.tif, Graphics Builder effectue sa recherche dans les répertoires indiqués par GRAPHICS60_PATH pour retrouver ce fichier.

GRAPHICS60_PATH peut indiquer plusieurs répertoires. Utilisez une barre oblique inverse (\) pour séparer les répertoires dans un chemin, et un point-virgule (;) pour séparer les chemins complets.


INTERRUPT (utilisateurs DOS SQL*Net seulement)

Valeur par défaut : aucune

Valeurs valides : même valeur qu'indiquée dans votre fichier DOS CONFIG.ORA

Ce paramètre indique l'adresse du vecteur d'interruption que les produits DOS Oracle utiliseront. Si vous vous servez d'un pilote de périphérique DOS SQL*Net pour Windows, vérifiez votre fichier CONFIG.ORA situé dans le répertoire principal (home) DOS Oracle. Si le paramètre INTERRUPT est indiqué dans CONFIG.ORA, vous devez le définir dans la base de registres à la même valeur. Si cette variable n'est pas indiquée dans vos fichiers DOS CONFIG.ORA, vous n'avez pas à les définir dans la base de registres.

Remarque : Ne définissez pas le paramètre INTERRUPT à 103 lorsque vous utilisez un produit de gestion mémoire réalisé par des tiers, tel que QEMM, 386MAX, CEMM ou EMM386. Si vous le faites, vous vous exposez à un comportement inattendu après le lancement de SQLPME et de SQL*Net.


LOCAL

Valeur par défaut : aucune

Valeurs valides : tout préfixe de pilote de périphérique SQL*Net valide, dont les paramètres de chaîne de base de données. Pour plus d'informations, reportez-vous à Oracle Network Administrator's Guide.

Ce paramètre indique le pilote de périphérique SQL*Net et la chaîne de connexion complète que le produit utilisera si vous n'indiquez pas de périphérique de communication lorsque vous vous connectez à la base de données à partir du produit.

Si vous utilisez le paramètre LOCAL, ne l'ajoutez pas à la fin du fichier. Les produits Oracle ne reconnaîtraient pas dans ce cas le paramètre LOCAL.

Remarque : Si vous faites appel à un pilote de périphérique DOS SQL*Net pour Windows, assurez-vous que le paramètre LOCAL est défini dans votre fichier CONFIG.ORA du répertoire principal (home) DOS Oracle. Si le paramètre LOCAL est indiqué dans le fichier CONFIG.ORA, vous devez le définir dans la base de registres à la même valeur.


NLS_LANG

Valeur par défaut : AMERICAN_AMERICA.WE8ISO8859P1

Valeurs valides : Reportez-vous à NLS Reference Manual pour obtenir la liste des valeurs disponibles ou consultez le fichier suivant sur votre CD : \bonus\nls\nlsd2r1.wri

Exemple :

NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1

Ce paramètre définit la langue dans laquelle s'affichent les fichiers de messages. La syntaxe pour NLS_LANG est la suivante :

NLS_LANG=<langue>_<pays>.<jeu_car>

où :

langue	Langue ainsi que ses conventions pour l'affichage des messages et des noms de jour et de mois.
pays	Pays ainsi que ses conventions pour le calcul des numéros de semaine et de jour.
Jeu_car	Jeu de caractères utilisé pour les fonctions UPPER, LOWER et INITCAP ainsi que pour le type de tri utilisé par une interrogation ORDER BY. Cet argument contrôle également le jeu de caractères utilisé pour afficher les messages.


OleCreateObjPoolInMemory

Valeur par défaut : 0

Valeurs valides : 0 ou 1

Exemple :

OleCreateObjPoolInMemory=0

Pour Report Builder, ce paramètre indique de créer le pool d'objets OLE2 dans des fichiers temporaires (0) ou en mémoire (1). La création du pool en mémoire améliore les performances en réduisant l'accès au disque. Si vous avez un grand nombre d'objets OLE2 ou des objets OLE2 volumineux (par exemple, des images), la quantité de mémoire nécessaire peut devoir être supérieure. Lorsque vous déterminez le nombre d'objets OLE2 dont vous disposez, notez qu'un objet texte standard OLE2 dans un encadrement itératif ne contient qu'un objet OLE2. Un champ OLE2 contient un objet OLE2 pour chaque instance du champ.


OleDoNotUpdateLinks

Valeur par défaut : 0

Valeurs valides : 0 ou 1

Exemple :

OleDoNotUpdateLinks=0

Pour Report Builder, ce paramètre active (0) ou désactive (1) la mise à jour des liens lorsque vous ouvrez l'Editeur de présentation ou que vous lanciez l'état. Les objets OLE2 liés contiennent des représentations en mémoire cache de leurs objets source. Ces représentations sont mises à jour par le serveur OLE2 correspondant, en fonction des données objet continuelles.

Ces mises à jour sont produites automatiquement ou manuellement selon le type de lien. La mise à jour des représentations en mémoire cache exigeant le lancement du serveur OLE2, il se peut que vous souhaitiez désactiver la mise à jour pour améliorer les performances, si vous savez que les objets source n'ont pas été modifiés ou que vous n'ayez pas besoin des dernières modifications. Notez que même si vous n'indiquez pas cette option, vous pouvez toujours annuler les mises à jour depuis la boîte de dialogue standard qui apparaît lors de la mise à jour des objets OLE2.


OleUpdateLinksPrompt

Valeur par défaut : 0

Valeurs valides : 0 ou 1

Exemple :

OleUpdateLinksPrompt=0

Pour Report Builder, ce paramètre indique de solliciter l'intervention de l'utilisateur (0) ou de ne pas solliciter son intervention (1) lorsque la source d'un objet lié est introuvable. Si la source d'un objet est introuvable au cours d'une tentative de mise à jour, une boîte de dialogue s'affiche dans laquelle vous pouvez indiquer à nouveau la source de lien ou de ne pas prendre l'erreur en compte. Si vous n'êtes pas en mesure d'accepter la boîte de dialogue (par exemple, vous exécutez l'état la nuit), il se peut que vous souhaitiez désactiver cette invite pour vous assurer que l'état s'exécute.


ORACLE_HOME

Valeur par défaut : C:\ORAWIN95

Valeurs valides : tout répertoire sur toute unité

Exemple :

ORACLE_HOME=C:\orawin95

Ce paramètre indique le répertoire principal (home) dans lequel les produits Windows Oracle sont installés. Ce répertoire se situe en haut de la hiérarchie des répertoires Oracle.

Notes d'utilisation

•	Si vous utilisez Reports Runtime, le total des longueurs d'ORACLE_HOME et ORACLE_PATH ne doit pas dépasser 255 caractères.


ORACLE_PATH

Valeur par défaut : aucune

Valeurs valides : tout répertoire sur toute unité

Exemple :

ORACLE_PATH=C:\oracle\apps\forms;C:\oracle\apps\graphics;
C:\oracle\apps\reports

Ce paramètre indique le chemin de recherche pour les fichiers référencés par Forms, Graphics ou Reports Runtime. Notez que les répertoires indiqués par ORACLE_PATH sont recherchés après ceux qui sont mentionnés par un paramètre propre à un produit. : FORMS60_PATH, GRAPHICS60_PATH ou REPORTS60_PATH.

ORACLE_PATH peut indiquer plusieurs répertoires. Utilisez un point-virgule (;) pour séparer les noms de répertoire dans une liste de chemins.

Notes d'utilisation

•	Si vous utilisez Reports Runtime, le total des longueurs d'ORACLE_HOME et ORACLE_PATH ne doit pas dépasser 255 caractères.


ORAINFONAV_DOCPATH

Valeur par défaut : aucune

Valeurs valides : tout répertoire sur toute unité

Exemple :

ORAINFONAV_DOCPATH=C:\orawin95\oin

Ce paramètre indique l'emplacement de la table des matières et de l'index pour votre documentation en ligne.


REMOTE

Valeur par défaut : aucune

Valeurs valides : tout préfixe et paramètre de pilote de périphérique SQL*Net valide

Exemple :

REMOTE=P:PIPER

Ce paramètre indique le pilote de périphérique SQL*Net par défaut et éloigné à utiliser lors d'une connexion via une base de données locale. Il peut inclure les paramètres SQL*Net par défaut (chaîne de base de données complète).

P: est le préfixe réseau pour les canaux de communication nommés, et Piper le nom de la base de données.

Si un utilisateur se connecte et indique une connexion avec un préfixe de pilote de périphérique explicite correspondant à celui qui est mentionné dans REMOTE, mais sans indiquer de paramètres SQL*Net, les paramètres de REMOTE sont utilisés. Le paramètre REMOTE permet à l'administrateur de bases de données de définir une connexion réseau "normale" pour laquelle l'utilisateur SQL*Net n'a pas à indiquer de paramètres de connexion. Vous pouvez à tout moment redéfinir ce paramètre dans la ligne de commande.

Remarque : Si vous utilisez un pilote de périphérique DOS SQL*Net pour Windows, assurez-vous que le paramètre REMOTE est défini dans votre fichier CONFIG.ORA du répertoire principal (home) DOS Oracle. Si REMOTE est indiqué dans CONFIG.ORA, vous devez le définir à la même valeur dans la base de registres.


REPORTS60_CGIDIAGBODYTAGS

Pour Reports Web CGI, ce paramètre indique les marques HTML insérées en tant que marques <BODY…> dans la sortie de diagnostic/de débogage de RWCGI60. Par exemple, vous pouvez utiliser cette variable d'environnement pour définir la couleur et l'image du texte/de l'arrière-plan.


REPORTS60_CGIDIAGHEADTAGS

Pour Reports Web CGI, ce paramètre indique les marques HTML insérées entre les marques <HEAD> … </HEAD> dans la sortie de diagnostic/de débogage de RWCGI60. Par exemple, vous pouvez utiliser cette variable d'environnement pour définir la marque <TITLE> ou <META…>.


REPORTS60_CGIHLP

Pour Reports Web CGI, ce paramètre définit l'URL/URI du fichier d'aide RWCGI60, à laquelle vous accédez en appelant le fichier RWCGI60 à l'aide de la demande vide :

http://votre_serveurweb/votre_rep_cgi_virtuel/rwcgi60.exe?

Par exemple, si vous définissez REPORTS60_CGIHLP sur http://www.yahoo.com, vous accédez à cette URL ; si vous la définissez sur monfichieraide.htm, le fichier suivant apparaît :

http://votre_serveurweb/monfichieraide.htm

Si cette variable n'est pas définie, un écran d'aide par défaut apparaît.


REPORTS60_CGIMAP

Pour Reports Web CGI, ce paramètre définit l'emplacement/le nom de fichier complet du fichier de correspondance RWCGI60 si le type de configuration suivant est utilisé :

c:\orant\report60\mymap.dat


REPORTS60_CGINODIAG

Pour Reports Web CGI, ce paramètre, s'il est défini, désactive toutes les sorties de débogage/de diagnostic de RWCGI60.

http://votre_serveurweb/cgi-bin/rwcgi60.exe/help?

Note d'utilisation :

Ce paramètre ne fonctionne pas si REPORTS60_CGINODIAG est défini.


REPORTS60_CGIPATHONLYURL

Pour Reports Web CGI, ce paramètre, s'il est défini (quelle que soit sa valeur), contraint RWCGI60 à renvoyer toutes les URL au Navigateur sous la forme d'URL partielles ne comportant que le chemin d'accès ; ainsi, au lieu de renvoyer :

Emplacement : http://votre_serveurweb:port/chemin_accès

il renvoie :

Emplacement : /chemin_accès

Cette variable permet de résoudre les problèmes rencontrés lorsqu'un serveur Web est configuré sur plusieurs ports, y compris un port par défaut.


REPORTS60_COOKIE_EXPIRE

Valeur par défaut : 30

Valeurs valides : toute durée (en minutes)

Exemple :

REPORTS60_COOKIE_EXPIRE=30

Pour Reports Server Security, ce paramètre détermine le temps d'inactivité du cookie (par exemple, REPORTS60_COOKIE_EXPIRE=30). Les cookies enregistrent les noms utilisateur et les mots de passe codés chez le client. Lorsque CGI reçoit un cookie du client, il compare le temps enregistré dans le cookie avec l'heure système actuelle.

Si ce temps écoulé dépasse le nombre de minutes défini dans le paramètre REPORTS60_COOKIE_EXPIRE (par exemple, 30 minutes), CGI rejette le cookie, et renvoie au client la grille d'authentification de la base de données et un message d'erreur. L'utilisateur doit de nouveau s'authentifier pour exécuter l'état.


REPORTS60_DB_AUTH

Valeur par défaut : dbauth.htm

Valeurs valides : tout fichier HTML qui contient des actions d'authentification spéciales. La conservation de la valeur par défaut est recommandée.

Exemple :

REPORTS60_DB_AUTH=dbauth.htm

Indique le modèle d'authentification de base de données utilisé lors de la connexion à la base de données.


REPORTS60_SYS_AUTH

Valeur par défaut : sysauth.htm

Valeurs valides : tout fichier HTML qui contient des actions d'authentification spéciales. La conservation de la valeur par défaut est recommandée.

Exemple :

REPORTS60_SYS_AUTH=sysauth.htm

Indique le modèle d'authentification utilisé pour authentifier le nom utilisateur et le mot de passe lorsque les utilisateurs exécutent des demandes d'état sur un serveur Reports Server à accès restreint.


REPORTS60_ENCRYPTION_KEY

Valeur par défaut : Reports6.0

Valeurs valides : toute clé de chiffrement

Exemple :

REPORTS60_ENCRYPTION_KEY=reports6.0

Indique la clé de chiffrement utilisée pour coder le nom utilisateur et le mot de passe.


REPORTS60_REPORTS_SERVER

Valeurs valides : tout nom d'entrée de service Reports Server

Exemple :

REPORTS60_REPORTS_SERVER=repserver

Indique le serveur Reports Server par défaut pour les demandes Web Cartridge ou Web CGI. Lorsque ce paramètre est défini, vous pouvez omettre l'argument de ligne de commande SERVER dans les demandes d'état pour les traiter sur le serveur par défaut ou inclure l'argument de ligne de commande SERVER pour ignorer le serveur par défaut.


REPORTS60_OWSDIAGBODYTAGS

Pour Reports Web Cartridge, indique les marques HTML insérées comme marque <BODY…> dans la sortie de diagnostic/de débogage de RWOWS60. Par exemple, vous pouvez utiliser cette variable d'environnement pour définir la couleur d'un texte/d'un arrière-plan, son image, etc.


REPORTS60_OWSDIAGHEADTAGS

Pour Reports Web Cartridge, ce paramètre indique les marques HTML insérées entre les marques <HEAD> …</HEAD> dans la sortie de diagnostic/de débogage de RWOWS60. Par exemple, vous pouvez utiliser cette variable d'environnement pour définir les marques <TITLE> ou <META…>, etc.


REPORTS60_OWSHELP

Valeurs valides : tout chemin d'accès et tout nom de fichier, ou toute URL

Pour Reports Web Cartridge, ce paramètre définit l'URL/URI du fichier d'aide RWOWS60, à laquelle vous accédez lorsque vous appelez RWOWS60 à l'aide de la demande vide :

http://votre_serveurweb/rwows60?

Par exemple, si vous la définissez sur http://www.yahoo.com, vous accédez à cette URL ; si vous la définissez sur monfichieraide.htm, le fichier suivant apparaît :

http://votre_serveurweb/monfichieraide.htm

Si ce paramètre n'est pas défini, un écran d'aide par défaut apparaît.


REPORTS60_OWSMAP

Pour Reports Web Cartridge, ce paramètre définit l'emplacement/le nom de fichier complet du fichier de correspondance RWOWS60 (si la configuration suivante est utilisée) :

C:\ORANT\REPORTS60\MYMAP.DAT


REPORTS60_OWSNODIAG

Pour Reports Web Cartridge, ce paramètre, s'il est défini, désactive la sortie de débogage/de diagnostic de RWOWS60 :

http://votre_serveurweb/rwows60/aide

Ce paramètre ne fonctionne pas lorsque REPORTS60_OWSNODIAG est défini.


REPORTS60_OWSPATHONLYURL

Pour Reports Web Cartridge, ce paramètre, s'il est défini (quelle que soit sa valeur), contraint RWOWS60 à utiliser uniquement des URL ne comprenant qu'un chemin d'accès (par exemple, "/rscache/..." au lieu de "http://mywebsrv.com:1550/rscache/...") dans la réorientation HTTP vers la sortie d'état, ainsi que dans la sortie de diagnostic générée par RWOWS60. Ce paramètre est utile lorsque vous voulez contraindre le Navigateur client à conserver la demande d'URL initiale dans son fichier d'emplacement après qu'il a extrait la sortie d'état. En principe, RWOWS60 modifie l'URL pour qu'elle indique l'emplacement de la sortie d'état (le répertoire indiqué par REPORTS60_WEBLOC). Elle affiche également le nom du fichier de sortie d'état, qui est peu significatif (par exemple, 12345679.htm), car ce fichier vient d'être généré. La définition de ce paramètre permet d'éviter cette modification. Cela n'est valable que si toutes les URL utilisent le port par défaut (généralement 80).

La définition de ce paramètre présente cependant un inconvénient : tous les fichiers subsidiaires (comme les fichiers d'images) qui dépendent du fichier principal de sortie d'état ne sont pas extraits par le Navigateur (malgré une création réussie à l'emplacement désigné par REPORTS60_WEBLOC). Pour pallier à ce problème, indiquez une marque <BASE HREF="..."> ou <META HREF="..."> (l'emplacement du fichier principal correspondant à une URL complète ou partielle) dans la définition d'état afin qu'elle soit incluse dans le fichier principal de sortie d'état. Vous pouvez également définir REPORTS60_WEBLOC pour qu'il désigne l'emplacement de l'exécutable RWOWS60.

La définition de REPORTS60_OWSPATHONLYURL permet également de résoudre certains problèmes de configuration Intranet/Internet dans lesquelles un même ordinateur dispose simultanément de plusieurs adresses IP (et de plusieurs cartes réseau). En effet, elle supprime la dépendance de la réorientation HTTP vers le nom de l'ordinateur ou l'adresse IP.


REPORTS60_PATH

Valeur par défaut : ORACLE_HOME\REPORT60\DEMO ; ORACLE_HOME\REPORT60\DEMO\BITMAP ; ORACLE_HOME\REPORT60\DEMO\REQFILES

Valeurs valides : tout répertoire sur toute unité

Exemple :

REPORTS60_PATH=C:\oracle\apps\reports;C:\myfiles

Cette variable d'environnement sert à localiser des états et des objets externes que vous utilisez dans vos états, tels que des bibliothèques PL/SQL, des interrogations externes et des textes standard externes. Elle vous permet de créer des états facilement portables d'un système d'exploitation à l'autre, sans que vous ayez à coder les chemins de répertoire.

Remarque : la variable REPORTSPATH est limitée à 256 caractères.

Définissez la variable REPORTS60_PATH de la même façon que vous le faites pour les autres variables d'environnement sur votre système d'exploitation, sans oublier les règles propres à la plate-forme, telles que la longueur du chemin, etc.

En plus des chemins de répertoire, vous pouvez indiquer le mot-clé DB lorsque vous définissez REPORTS60_PATH. Ce mot-clé ordonne à Report Builder d'effectuer sa recherche dans la base de données à laquelle vous êtes connecté.

Supposons que vous ayez indiqué l'instruction suivante sur une plate-forme Unix :

setenv REPORTS60_PATH
/home/tkostin/pay:/home/tkostin/receive:DB

Report Builder effectue d'abord sa recherche dans le répertoire /home/tkostin/pay. S'il ne trouve pas le fichier en question, il le recherche dans /home/tkostin/receive. S'il ne le trouve toujours pas, il le recherche dans la base de données à laquelle vous vous êtes connecté en début de session Report Builder.


REPORTS60_TERMINAL

Valeur par défaut : aucune

Valeurs valides : tout répertoire sur toute unité

Exemple :

REPORTS60_TERMINAL=C:\mytermdefs

Cette variable d'environnement permet de localiser les définitions de terminal que vous utilisez dans vos états en mode caractère. Le chemin indiqué pour cette variable a priorité sur la variable d'environnement ORACLE_TERMINAL.

Définissez la variable REPORTS60_TERMINAL de la même façon que vous le faites pour les autres variables d'environnement sur votre système d'exploitation, sans oublier les règles propres à la plate-forme, telles que la longueur du chemin, etc.


REPORTS60_TMP

Valeur par défaut : aucune

Valeurs valides : tout répertoire sur toute unité

Exemple :

REPORTS60_TMP=C:\tmp

Cette variable d'environnement établit le répertoire dans lequel vous souhaitez stocker des fichiers temporaires Report Builder. Report Builder n'utilise à cette fin qu'un seul répertoire ; n'en définissez qu'un.

Définissez la variable REPORTS60_TMP de la même façon que vous le faites pour les autres variables d'environnement sur votre système d'exploitation, sans oublier les règles propres à la plate-forme, telles que la longueur du chemin, etc. Si vous ne définissez pas la variable REPORTS60_TMP, elle prend par défaut la valeur du répertoire de travail en cours.


REPORTS60_USEREXIT

Valeur par défaut : aucune

Valeurs valides : toute bibliothèque de liens dynamiques de sortie utilisateur (avec son chemin absolu)

Exemple :

REPORTS60_USEREXIT=C:\mydll.dll;d:\mynew.dll;e:\bin\speed.dll

Ce paramètre vous permet de définir plusieurs fichiers DLL qui seront utilisés par Report Builder et ses exécutables associés (Reports Runtime, par exemple). Ces fichiers DLL sont des modules de programme créés par vous et qui seront appelés par les exécutables Report Builder.

REPORTSS60_USEREXITS peut indiquer plusieurs fichiers DLL. Utilisez une barre oblique inverse (\) pour séparer les répertoires dans un chemin, et un point-virgule (;) pour séparer les chemins complets.

Si cette valeur n'est pas définie explicitement, Report Builder recherche 60xtb32.dll en fonction de la variable de chemin du système.


UI_ICON

Valeur par défaut : aucune

Valeurs valides : tout répertoire accessible sur toute unité

Exemple :

UI_ICON=C:\icon

Cette variable d'environnement établit le répertoire dans lequel vous souhaitez stocker des icônes pour boutons utilisées dans votre présentation. Report Builder n'utilise à cette fin qu'un seul répertoire ; n'en définissez qu'un.

Définissez la variable UI_ICON de la même façon que vous le faites pour les autres variables d'environnement sur votre système d'exploitation, sans oublier les règles propres à la plate-forme, telles que la longueur du chemin, etc.


USERNAME

Valeur par défaut : aucune

Valeurs valides : tout nom utilisateur Oracle valide (sans le préfixe OPS$)

Exemple :

USERNAME=dsanvita

Ce paramètre indique la partie variable d'un compte de connexion par défaut. Pour plus d'informations sur la définition du paramètre USERNAME, reportez-vous à la documentation de votre base de données.


WIN_REMOTE_SESSIONS

Valeur par défaut : aucune

Valeurs valides : 0-33

Lorsque vous tentez de vous connecter, si vous recevez l'un des messages d'erreur compris entre ORA-3100 et ORA-3199, il se peut que la mémoire réelle soit insuffisante pour établir un tampon de communication avec un serveur Oracle. NETINIT7.EXE résout ce problème en réservant de l'espace mémoire pour les connexions de serveur.

Ce paramètre définit le nombre de connexion à un serveur éloigné pour lequel NETINIT7 doit réserver de l'espace mémoire. Rappelez-vous les règles suivantes lorsque vous définissez le paramètre WIN_REMOTE_SESSIONS :

•	Si vous définissez WIN_REMOTE_SESSIONS à 0, NETINIT7 ne réserve aucun espace mémoire pour les connexions de serveur éloigné.

•	La définition de WIN_REMOTE_SESSIONS aux valeurs 1 à 33 réserve de l'espace mémoire pour le nombre de connexions indiqué. Notez que NETINIT7 réserve 12 Ko de mémoire réelle pour chaque connexion de serveur éloigné.

•	La valeur par défaut proposée pour WIN_REMOTE_SESSIONS est 5. La définition de WIN_REMOTE_SESSIONS à cette valeur doit créer un nombre de sessions suffisant pour vous permettre de lancer plusieurs produits.

•	Si vous n'ajoutez pas le paramètre WIN_REMOTE_SESSIONS, NETINIT7 réserve de l'espace mémoire pour une connexion de serveur éloigné.

Pour utiliser NETINIT7, procédez comme suit :

1	Configurez le nombre de sessions en ajoutant le paramètre WIN_REMOTE_SESSIONS.

2	Créez l'icône NETINIT7 dans votre groupe de programmes Oracle. (Pour plus d'informations sur la création des icônes, reportez-vous à la documentation Microsoft Windows.) Entrez le chemin suivant dans le champ Ligne de commande de la boîte de dialogue Propriétés d'élément du programme Windows :

ORACLE_HOME\bin\netinit7.exe

3	Lancez NETINIT7 en cliquant deux fois sur l'icône dans le groupe de programmes Oracle. Assurez-vous d'avoir lancé NETINIT7 avant de démarrer un produit. Si vous voulez que NETINIT7 soit lancé automatiquement au démarrage de Windows, ajoutez l'icône NETINIT7 dans le groupe de programmes Démarrer de Windows.

NETINIT7 tente de réserver de l'espace mémoire réelle pour le nombre configuré de connexions de serveur. S'il ne peut pas affecter l'espace mémoire nécessaire, il affiche un message d'avertissement et indique le nombre réel de sessions pour lequel il a affecté de l'espace mémoire.

Après avoir affecté de l'espace mémoire, NETINIT7 se minimalise. La remise à l'état initial de NETINIT7 affiche le nombre total de sessions configuré ainsi que la quantité totale de mémoire utilisée. La fermeture de NETINIT7 libère toute la mémoire de session inutilisée. Si une application utilise encore de la mémoire de session, NETINIT7 vous signale que cette application doit être fermée avant que la mémoire de session puisse être libérée.

Remarque : Si vous démarrez un produit avant NETINIT7, celui-ci affecte sa propre mémoire de session, laquelle n'est pas reconnue par NETINIT7. NETINIT7 tente d'affecter la mémoire de session configurée en plus de la mémoire déjà affectée par le produit que vous avez démarré.


XMITTR(utilisateurs DOS seulement)

Valeur par défaut : aucune

Valeurs valides : même valeur qu'indiquée dans votre fichier DOS CONFIG.ORA

Ce paramètre ne s'applique qu'aux utilisateurs d'exécutables en mode protégé Oracle DOS. Vérifiez votre fichier CONFIG.ORA qui se trouve dans le répertoire principal (home) DOS Oracle. Si le paramètre XMMITR est indiqué dans CONFIG.ORA, vous devez le définir à la même valeur dans la base de registres. Si cette variable n'est pas indiquée dans vos fichiers DOS CONFIG.ORA, il n'est pas nécessaire de la définir dans la base de registres.

XMMITR (Extended Memory Manager Interrupt Vector) est une variable indiquant le vecteur d'interruption à utiliser pour le point d'entrée des services d'interruption du gestionnaire de mémoire étendue/pilote de périphérique de transition de mode XMM/MTD. Pour définir un vecteur différent, le nouveau vecteur d'interruption doit être exprimé sous forme décimale. XMMITR ne doit être utilisé que si un autre programme dans votre système nécessite des interruptions de numération décimale 100 ou hexadécimale 64.

Remarque : Ne définissez pas le paramètre XMMITR à 103 lorsque vous utilisez un produit de gestion mémoire réalisé par des tiers, tel que QEMM, 386MAX, CEMM ou EMM386. Si vous le faites, vous vous exposez à un comportement inattendu après le lancement de SQLPME et de SQL*Net.


Utilisation de l'aide en ligne

Les instructions suivantes vous aident à utiliser le système d'aide en ligne de manière efficace :

•	Familiarisez-vous avec l'onglet Sommaire pour vous faire une idée de l'étendue des rubriques couvertes par l'aide en ligne.

•	Cliquez sur le bouton Rubriques connexes situé immédiatement en-dessous des titres de rubriques pour obtenir une liste des rubriques apparentées à la rubrique en cours.

•	Cliquez sur le bouton Options en tête de chaque rubrique pour définir l'option Aide en avant-plan, afin que les rubriques d'aide restent à l'écran lorsque vous développez les applications.

•	Cliquez sur le bouton Glossaire en tête de chaque rubrique pour obtenir une définition des termes que vous ne comprenez pas.


A propos de la documentation

Pour débuter et vous familiariser avec la génération d'applications

1	Consultez l'Aperçu produit qui présente brièvement chaque composant :

•	Choisissez Aide [image] Aperçu produit.

2	Faites défiler les Assistants pour apprendre à exécuter les opérations les plus courantes :

•	Choisissez Aide [image] Assistants.

3	Affichez les manuels en ligne (également disponibles sous forme papier) :

•	Choisissez Aide [image] Manuels.

4	Accédez au système d'aide en ligne :

•	Choisissez Aide [image] Rubriques d'aide.

•	Pour afficher une aide contextuelle, appuyez sur [Aide] (touche F1 sur la plupart des plates-formes).


Accueil


Prise en charge d'Oracle8 Server

  Rubriques connexes

Un certain nombre des nouvelles fonctions Oracle8 Server sont aussi disponibles dans Oracle Developer. Il s’agit, de manière générale, de fonctions appartenant aux catégories suivantes :

•	Extensibilité améliorée. Par exemple, les bases de données Oracle8 peuvent contenir des dizaines de téra-octets de données et peuvent prendre en charge l'accès simultané de 10 000 utilisateurs. Les tables, quant à elles, peuvent désormais comprendre jusqu’à 1 000 colonnes. Les types de données CHAR et VARCHAR2 peuvent désormais compter jusqu’à 2 000 et 4 000 octets, respectivement.

•	Efficacité et performances améliorées. Developer gère pour vous l’utilisation de ces fonctions Oracle8, vous n’avez donc pas à intervenir. Vous bénéficiez automatiquement de la vitesse et de la fiabilité offertes par l’utilisation d’Oracle8 Server pour vos données.

•	Objets volumineux (parfois appelés LOB).

•	Objets définis par l’utilisateur.

Poursuite de la prise en charge d’Oracle7

Developer continue également de prendre en charge Oracle7 Server (versions 7.3 et ultérieures).


Types de données Oracle8 pris en charge

  Rubriques connexes

Cette version d'Oracle Developer prend en charge les types de données Oracle8 suivants :

Objets volumineux (LOB)

Dans Oracle8, les programmeurs ont la possibilité de définir des objets volumineux, souvent nommés LOB. Ces objets peuvent stocker des éléments tels que du texte, des images, des sons ou de la vidéo.

Oracle Developer prend actuellement en charge les objets volumineux Oracle8 suivants :

•	BLOB (binary large object - objet volumineux binaire)

•	CLOB (single-byte character large object - objet volumineux de type caractère, sur un octet)

•	BFILE (binary file - fichier binaire), parfois appelé fichier externe.

Objets définis par l’utilisateur

Dans Oracle8, les programmeurs peuvent définir des types d’objet (appelés aussi types d’objet définis par l’utilisateur) qui sont des composés basés sur les types de données à élément unique pris en charge par Oracle8. A l’aide de ces définitions d’objet, les programmeurs peuvent alors créer divers types de tables.

Developer prend actuellement en charge les catégories d’objets Oracle8 suivantes :

•	table d’objets, où l’ensemble de la table est basé sur un type d’objet unique ;

•	objet colonne d'une table relationnelle, cette colonne étant basée sur un type d’objet ;

•	colonne REF figurant dans une table d’objets ou dans une table relationnelle, les valeurs de cette colonne étant des pointeurs désignant des lignes d'une autre table d’objets.

Nouveaux types de données scalaires

Oracle Developer prend aussi en charge le nouveau type de données FLOAT d’Oracle8. Developer traite ce type de données comme son propre type de données NUMBER.


A propos des objets Oracle8 volumineux (LOB)

Oracle Developer permet d’accéder aux types de données des objets volumineux : objets binaires (BLOB), objets de type caractère (CLOB) et fichiers binaires (BFILE).

Sur un serveur Oracle8, ces types de données peuvent stocker des objets d’un volume allant jusqu’à 4 méga-octets. Ils ont un objectif similaire à celui des types de données familiers LONG et LONG RAW d'Oracle7, mais présentent un certain nombre d'avantages supplémentaires.

Comparaison des données LOB et LONG

LOB	LONG
4 giga-octets maximum	2 giga-octets maximum
Plusieurs colonnes LOB autorisées dans une table	Une seule colonne LONG autorisée par table
Réplication prise en charge	Pas de réplication
Prise en charge de l'accès aléatoire aux données	Seul l'accès séquentiel est pris en charge
Meilleure gestion de l'espace table (seul le repère LOB est stocké)	Efficacité moindre (les données sont stockées directement dans la table)
Autorisé dans les types d'objets définis par l'utilisateur	Non autorisé
Aisément transmis aux procédures et aux appels externes	Transmission difficile
Informations sur les LOB :

Les BLOB servent à stocker des objets volumineux au format binaire. Les CLOB servent à stocker des données de type caractère. Ces deux types de données sont aussi nommés LOB internes, car leurs données sont conservées sur le serveur. Ces données interviennent dans des transactions et des contrôles d’intégrité, y compris des validations (Commit) et des annulations (Rollback).

Les données BFILE, en revanche, sont conservées hors du serveur. Le serveur ne stocke que l’adresse du fichier, telle que le système d’exploitation la reconnaît. Il en résulte que les données BFILE ne peuvent pas faire partie des transactions de base de données.

Compatibilité

Etant donné les divers avantages que présentent les LOB (voir tableau ci-dessus), il est préférable d’utiliser les données LOB plutôt que les données LONG dans toute nouvelle application.

Cependant, par souci de compatibilité en amont, les données LONG sont toujours parfaitement prises en charge.

Types de panneau

Dans un panneau, le LOB dispose habituellement d'un contrôle de type Texte, Image ou Son, selon sa nature et son utilisation.

Restrictions

•	Les données BFILE sont en lecture seule.

•	Bien que Forms tente de charger l'intégralité du BFILE ou du BLOB lorsqu'il lit cet élément à l'exécution, il est limité par la quantité de mémoire virtuelle Runtime disponible.

•	Pour les CLOB, la limite de taille est fixée à 65 534 octets dans Forms.


A propos des objets Oracle8 définis par l'utilisateur
A propos des objets Oracle8 définis par l’utilisateur

  Rubriques connexes  [image]  Exemples

Dans le cadre de la prise en charge d’Oracle8 Server, Developer vous permet d’utiliser les objets Oracle8 définis par l’utilisateur. Ces objets comprennent les tables, les objets colonne des tables relationnelles et un type d’objet colonne particulier, la colonne REF.

Tables d’objets

Dans Oracle8, les tables d'objets sont basées sur les définitions de types d’objet créées par l’utilisateur. Ces définitions sont des combinaisons dont chaque attribut ou composant est basé sur un type de données intégré Oracle8. (Une définition de type d’objet peut être basée sur une autre, mais au bout du compte, les définitions se fondent toujours sur les types de données intégrés Oracle8.)

Cela permet à Oracle Developer de traiter chaque colonne d’une table d'objets comme un élément de données distinct, de la même manière qu’il traite les colonnes d’une table relationnelle.

Objets colonne des tables relationnelles

Un programmeur de base de données peut aussi créer une colonne de table relationnelle sur la base d'une définition de type d’objet. Cela incorpore un objet composite dans la table relationnelle.

Developer divise l’objet colonne intégré d'après les éléments qui le composent et traite chacun d’entre eux comme une colonne distincte.

Ainsi, si Oracle8 Server stocke une table relationnelle à trois colonnes et que l’une de ces colonnes est un objet colonne, lui-même basé sur une définition d’objet possédant quatre parties ou attributs, Developer traite cette table comme une table à 6 colonnes (les 2 colonnes relationnelles, plus les 4 colonnes formant l’objet).

Si l’un des attributs de la définition de l’objet colonne est basé sur un autre type d’objet, cette partie est encore divisée par Developer et traitée comme une série de colonnes distinctes.

Colonnes REF

Dans une table d'objets ou une table relationnelle, une colonne peut être définie comme possédant le type REF. Une colonne REF ne contient pas directement de données, mais des pointeurs (des références) désignant une autre table d'objets, où se trouvent en réalité les données.

Cette référence est utilisée lors de l’exécution pour que l’utilisateur voie les données auxquelles renvoie la référence.


Objets Oracle8 définis par l'utilisateur - exemples
Objets Oracle8 définis par l’utilisateur - exemples

  Rubriques connexes

Pour créer des objets sur le serveur Oracle8 Server, un programmeur de base de données définit un type d’objet, puis crée un objet spécifique en fonction de cette définition. L’objet qui en résulte peut être une table d'objets ou un objet colonne d'une table relationnelle.

Exemples

Considérez les définitions suivantes. La première crée un type d’objet. La deuxième crée une table de ce type.

         CREATE TYPE  emp_type  AS OBJECT

                      (name     CHAR(30),

                       title    CHAR(20),

                       idnum    NUMBER);

         CREATE TABLE  emp  OF emp_type;

Dans l’exemple ci-dessus, vous créez une table d'objets nommée emp. Elle comporte trois colonnes, qui sont dotées du nom et du type de données fixés par les attributs de la définition du type d’objet emp_type.

L’exemple suivant porte sur un objet colonne dans une table relationnelle :

         CREATE TYPE  address_type  AS OBJECT

                      (street    VARCHAR2(40),

                       city      VARCHAR2(25),

                       state     VARCHAR2(2)

                       zip       NUMBER);

         CREATE TABLE  customers

                       (cust_id  NUMBER,

                        name     VARCHAR(40),

                        address  address_type);

Dans cet exemple, vous créez une table relationnelle appelée customers. Cette table comporte trois colonnes. Les deux premières (cust_id et name) sont des colonnes relationnelles ordinaires. La troisième (address) est un objet colonne. Elle est basée sur la définition du type d’objet address_type. Cette colonne possède la structure et les types de données définis par cette définition d’objet. Elle peut être considérée comme comportant quatre parties ou composants (rue, ville, état et code postal). Chacun de ces composants relève du type de données défini par la définition du type d’objet address_type. (Dans ce cas, il s’agit pour tous de VARCHAR2 sauf pour le code postal, dont le type de données est NUMBER).

Dans l’illustration suivante, la troisième colonne d’une table relationnelle à trois colonnes est basée sur un type d’objet possédant lui-même trois parties ou composants.

Remarquez qu’un objet Oracle8 est composé de différentes parties. Chacune de ces parties possède son propre nom et relève d’un type de données Oracle8 connu. Si l’objet est une table (en fait, une ligne dans une table d'objets), il comporte autant de colonnes ou de parties qu’il y a d’attributs dans la définition du type d’objet. Si une colonne d’une table relationnelle est basée sur un objet, chacune des parties de l’objet peut être considérée comme une colonne supplémentaire de cette table. Puisque ces parties dépendent des attributs de la définition du type d’objet, elles sont parfois appelées colonnes d'attribut.

Traitement des objets par Oracle Developer

Dans Developer, les tables d'objets sont traitées pratiquement comme les tables relationnelles. Chaque colonne peut être sélectionnée individuellement. Bien que toutes les colonnes puissent être sélectionnées, chacune d’entre elles est traitée comme un élément distinct dans l’application. La table elle-même ne possède pas d’identité particulière en tant qu’objet dans l’environnement Developer.

De même, Oracle Developer ne traite pas les objets colonne des tables relationnelles comme des entités uniques et homogènes. Il traite chacun des composants de l’objet colonne comme un élément de données distinct et indépendant. Chaque composant de l’objet colonne peut être sélectionné. Une fois sélectionné, il est traité comme un élément de données indépendant. Même lorsque tous les composants de l’objet colonne sont sélectionnés, ce dernier ne possède pas d’identité particulière en tant qu’objet au sein de l’environnement Developer.

Un nom au format NomObjetColonne_NomElément est attribué par défaut aux données sélectionnées dans un objet. Ainsi, si vous sélectionnez le composant zip de l’objet colonne address dans l’exemple ci-dessus, l'élément de données portera le nom address_zip dans l’application Developer.


A propos des données REF d'Oracle8
A propos des données REF d’Oracle8

  Rubriques connexes

REF est un nouveau type de données d’Oracle8. Il fait d’un objet colonne un pointeur désignant des données d’une autre table d'objets. La colonne REF ne contient elle-même aucune donnée.

Par exemple :

           CREATE TYPE  dept_type  AS OBJECT

                        (deptname     VARCHAR2(24),

                         deptnumber   NUMBER);

           CREATE TABLE  dept_table OF dept_type;

           CREATE TABLE  emp

                         (empname    VARCHAR2(50),

                          empnumber  NUMBER,

                          empdept    REF  dept_type);

Dans la table relationnelle emp, la colonne empdept est une colonne REF. Elle désigne un objet de type dept_type.

Types et tables

Lorsqu’une colonne REF est définie, elle identifie un type d’objet et non une table d'objets particulière. Une base de données peut contenir plusieurs tables d'objets basées sur une même définition de type d’objet. Ainsi, la définition de la colonne REF n’identifie pas les tables cibles.

Résolution du pointeur

Lors de l’initialisation de la table comportant la colonne REF, les valeurs placées dans cette colonne désignent des lignes des tables contenant réellement les données voulues. Plus tard, lors de l’exécution, les valeurs affichées dans la colonne REF sont celles désignées (et non les pointeurs).

Affichage des données REF par Developer lors du développement

Durant le développement, si vous demandez à voir une table comportant une colonne REF, Oracle Developer affiche la colonne REF sous sa forme étendue. Il affiche donc les attributs du type d’objet sur lequel pointe la définition de la colonne REF d'origine.

Dans l’exemple ci-dessus, Developer affichera la colonne REF empdept comme comportant deux composants (ou colonnes d'attribut) : deptname et deptnumber. Ces deux attributs sont ceux du type d’objet (dept_type) identifié dans la définition de la colonne REF.

Comme pour les objets colonne, Developer vous permet de sélectionner n’importe lequel des composants (ou colonnes d'attribut) désignés par la référence pour en faire des données de l’application Developer. Cependant, contrairement aux objets colonne habituels, Developer vous permet aussi de sélectionner le nom de la colonne REF pour en faire un élément manipulable dans votre application. Vous pouvez ainsi utiliser cette colonne dans votre code PL/SQL. Par défaut, la colonne REF devient une partie du canevas NULL.

Affichage des données REF pour vos utilisateurs

En tant que développeur d’applications, vous pouvez choisir la manière dont sont affichées les données désignées par la référence (REF résolue) lors de l'exécution :

•	affichage de données dans le bloc de données contenant la colonne REF (parfois appelée méthode recherche)

•	affichage de données dans le bloc de données désigné par la colonne REF (méthode maître-détail)

La première solution (affichage des données au sein du bloc de données où se trouve la colonne REF) est la plus simple. Il vous suffit de sélectionner les composants REF voulus comme éléments de votre bloc de données et lors de l’exécution, Developer et Oracle8 résoudront les références et placeront les données désignées par les références dans les éléments affichés. L’utilisateur n’a besoin de voir que ce bloc.

L’autre possibilité (affichage des données dans le bloc de données désigné) requiert l’établissement d’un lien maître-détail. Vous procédez pour cela comme pour établir un lien maître-détail entre deux blocs possédant une relation clé primaire - clé étrangère. Dans ce cas, la colonne REF crée un lien entre les deux blocs. L’utilisateur voit les deux blocs, mais les données REF n'apparaissent que dans le bloc désigné par la référence.

L’assistant Bloc de données de Form Builder peut servir à la création de cette relation maître-détail.


Icônes des objets Oracle8

Le Navigateur d’objet et les assistants de Developer utilisent des icônes pour vous aider à connaître le type des données Oracle8 auxquelles vous accédez. Ces icônes et leur signification sont indiquées ci-dessous :

             table ordinaire

             type d’objet

             vue d’objet

             table d'objets

             objet imbriqué

             table imbriquée

             objet référencé

             tableau variable

             méthode

             type inconnu

             mode pile côté serveur

             unité de programme côté serveur

             fichier

             données de type Date

             données de type Number

             données de type Character

             données de type Raw

          données de type BLOB

             données de type BFILE

             données de type CLOB

             ID de ligne

             libellé MLS


Extensibilité et performances avec Oracle8

La prise en charge d’Oracle8 par Developer vous offre un certain nombre d’améliorations en matière d’extensibilité et de performances. Ces améliorations, pour la plupart, sont automatiquement mises en oeuvre.

Par exemple, Developer vous permet d’accéder aux fonctions Oracle8 suivantes :

•	Volumes supérieurs. La base de données même, le nombre d’utilisateurs simultanés et le nombre de colonnes des tables (désormais, jusqu’à 1 000 colonnes) ont augmenté.

•	Partitionnement des tables et des index

•	Mise en mémoire cache des objets côté client

Developer a aussi été amélioré afin d’utiliser directement plusieurs autres fonctions Oracle8 permettant une amélioration des performances :

•	Pré-extraction. Forms utilise cette fonction Oracle8 (ainsi que les mécanismes de taille de tableau existants) pour réduire à la fois le nombre de passages dans la base de données et la mémoire utilisée. Cela se fait automatiquement, sans intervention de l’utilisateur.

•	Clause de valeurs de retour. Forms utilise cette nouvelle fonction DML lors des insertions et des mises à jour. La clause de valeurs de retour rend inutile le lancement d'une seconde interrogation de la base de données (pour obtenir les données mises à jour par des déclencheurs côté serveur), ce qui accélère le traitement. Les utilisateurs contrôlent cette opération à l’aide de la propriété DML Valeurs de retour.

•	Déclencheur A la place de pour la mise à jour des vues. Ce déclencheur côté serveur fournit un mécanisme permettant la mise à jour des vues relationnelles et des vues d’objet, normalement impossibles à mettre à jour.


Prise en charge de PL/SQL 8

  Rubriques connexes

Cette version d'Oracle Developer utilise PL/SQL version 8 sur le client et le serveur. Les unités de programme côté client ne prennent pas en charge les fonctionnalités Oracle8 liées à l'objet. Cependant, les unités de programmes stockées peuvent utiliser toutes les nouvelles fonctionnalités PL/SQL version 8.

L'annexe A du manuel PL/SQL User's Guide and Reference Release 8 décrit les nouvelles fonctionnalités PL/SQL version 8. Ce manuel est disponible en ligne. Choisissez Aide -> Manuels, puis recherchez le dossier des manuels de références sous Manuels en ligne.


Compatibilité avec les versions antérieures de PL/SQL

Si vous possédez des unités de programme côté client écrites en PL/SQL 1 ou PL/SQL 2, vous devez en convertir le code pour utiliser la nouvelle version. L’utilitaire de conversion PL/SQL 1 est fourni pour automatiser la mise à niveau.

Les unités de programme stockées créées à l’aide de versions antérieures fonctionnent avec le moteur PL/SQL 8 sur le serveur de base de données, mais leur compilation peut générer des erreurs. Ces erreurs surviennent parfois lorsqu’il existe une incompatibilité de syntaxe entre PL/SQL 8 et PL/SQL 2. PL/SQL 8 comporte un indicateur de compatibilité vous permettant de choisir un mode compatible PL/SQL 2, afin que le moteur PL/SQL 8 ne produise pas de telles erreurs lors de la compilation du code PL/SQL 2 sur le serveur. Le chapitre 6 du manuel Oracle8 Server Migration décrit les situations couvertes par cet indicateur de compatibilité.


Fonctions Oracle8 non encore prises en charge

  Rubriques connexes

Toutes les fonctions Oracle8 ne sont pas prises en charge par cette version des produits Oracle Developer. Les principales fonctions non prises en charge sont les suivantes :

•	Types de collecte (tables imbriquées et tableaux variables (VARRAY))

•	Procédures stockées retournant des valeurs d'objet

•	Types de données scalaires NCHAR et NVARCHAR2.

Gardez également à l’esprit que, même si Developer prend en charge PL/SQL 8, la version client de ce dernier ne prend pas encore entièrement en charge toutes les fonctions d’Oracle8 Server. (PL/SQL 8 côté serveur est entièrement pris en charge.)


Interface de la palette de syntaxe

La palette de syntaxe vous permet d'afficher et de copier la syntaxe des instructions PL/SQL ou des packages intégrés. Elle vous permet de copier la syntaxe sélectionnée vers l'éditeur d'unité de programme ou l'éditeur d'unité de programme stockée uniquement.

La palette de syntaxe offre les pages suivantes :

Page PL/SQL	Permet d'afficher et de sélectionner des éléments de langage PL/SQL afin de les copier. Ces éléments sont regroupés par catégories, telles que le flux de contrôle, les curseurs, les exceptions, etc.
Page Procédures internes	Permet d'afficher et de sélectionner un élément PL/SQL intégré (fonction ou procédure) afin de le copier. Les procédures internes sont regroupées par noms de package, tels que EXEC_SQL, DEBUG, DDE, etc.

Chaque page présente les composants suivants :

Liste déroulante	Affiche un nom de catégorie PL/SQL ou de package intégré.  Cliquez sur la flèche située à droite pour choisir une catégorie ou un package.
Zone de liste	Affiche chaque élément de langage de la catégorie PL/SQL ou du package intégré sélectionné. Par défaut, le premier élément de la liste est mis en évidence (sélectionné).  Cliquez sur un élément pour le sélectionner et faire apparaître sa syntaxe complète dans la zone d'affichage. En cliquant deux fois sur un élément PL/SQL, vous insérez sa syntaxe dans la fenêtre d'éditeur active, à l'emplacement du curseur.
Zone d'affichage	Affiche la syntaxe complète de l'élément PL/SQL sélectionné. Les mots réservés apparaissent en majuscules. Une fois la syntaxe insérée dans l'éditeur, remplacez les éléments en minuscules qui ne sont pas des commentaires par les valeurs appropriées. Les éléments en minuscules qui comportent des commentaires sont facultatifs.
Insérer	Cliquez cette option pour copier l'élément sélectionné dans la liste à l'emplacement du curseur dans la fenêtre d'éditeur active.
Fermer	Cliquez sur cette option pour fermer la palette de syntaxe.
Aide	Affiche la présente rubrique d'aide.


Affichage de la palette de syntaxe

Pour afficher la palette de syntaxe :

  Choisissez Programme [image] Palette de syntaxe.


Fermeture de la palette de syntaxe

Pour fermer la palette de syntaxe :

  Cliquez sur le bouton Fermer.


Insertion de la syntaxe dans un éditeur

  Rubriques connexes

Pour insérer la syntaxe dans un éditeur :

1	Assurez-vous que l'éditeur d'unité de programme ou l'éditeur d'unité de programme stockée est actif (sélectionné en dernier).

2	Placez le curseur dans l'éditeur à l'endroit où vous voulez insérer la syntaxe.

3	Dans la palette de syntaxe, sélectionnez l'onglet PL/SQL ou Procédures internes.

4	Choisissez une catégorie PL/SQL ou un package intégré dans la liste déroulante.

Lorsque vous cliquez sur une catégorie ou un package, les éléments PL/SQL pouvant être sélectionnés apparaissent dans la zone de liste située au-dessous.

5	Choisissez un élément PL/SQL dans la zone de liste.

Lorsque vous cliquez sur un élément PL/SQL, sa syntaxe apparaît dans la zone d'affichage se trouvant sous la zone de liste.

6	Cliquez sur Insérer pour copier la syntaxe sélectionnée.

La syntaxe PL/SQL est insérée, avec ses éléments, dans la fenêtre d'éditeur active à l'emplacement actuel du curseur. Les mots réservés apparaissent en majuscules.

Remplacez tous les éléments en minuscules qui ne sont pas des commentaires par les valeurs appropriées. Les éléments comportant des commentaires sont facultatifs.


Liste des catégories PL/SQL

Blocs

Commentaires

Flux de contrôle

Curseurs

Types de données

Exceptions

Fonctions

Boucles

Types d'objet

Packages

Tables PL/SQL

Procédures

Interrogations

Enregistrements

Curseurs SQL

Tables/Vues

Transactions

Types d'utilisateur

Variables


Liste des procédures internes

EXEC_SQL

TOOL_SQL

ORA_FFI

ORA_DE

ORA_PROF

ORA_NLS

TOOL_RES

TOOL_ENV

TEXT_IO

TOOL_ERR

STPROC

LIST

OLE2

DDE

DEBUG

PLITBLM

STANDARD


Exemples

  Liste alphabétique

Commandes de l’Interpréteur - Exemples

Conversion PL/SQL V1 - Exemples

National Language Support - Exemples

Objets Oracle8 - Exemples

Packages intégrés Oracle Developer - Exemples


Packages intégrés

  Liste alphabétique 	  Rubriques connexes

Oracle offre plusieurs procédures internes que vous pouvez utiliser lors de la création ou du débogage de vos applications PL/SQL.

Votre code PL/SQL peut utiliser les procédures, les fonctions et les exceptions dans les packages intégrés client suivants :

Packages intégrés Oracle Developer


Packages fournis par Oracle

  Rubriques connexes

Plusieurs packages sont fournis avec le serveur de base de données Oracle, soit pour étendre les fonctionnalités de la base de données, soit pour donner un accès PL/SQL à certaines fonctions de SQL.

Par exemple, Oracle fournit les procédures internes suivantes pour donner un accès PL/SQL à certaines fonctions de SQL :

•	DBMS_DDL

•	DBMS_SESSION

•	DBMS_TRANSACTION

•	DBMS_UTILITY

Les packages DBMS_* et UTL_* sont fournis avec Oracle pour étendre les fonctionnalités de la base de données. Par exemple, le package DBMS_OUTPUT vous permet de sortir des messages à partir de déclencheurs, de procédures et de packages. Cela s'avère particulièrement utile pour l'affichage des informations de débogage PL/SQL.

Les packages côté serveur sont automatiquement installés par le script CATPROC.SQL sur le serveur. Pour plus d'informations sur le groupe DBMS et les autres packages fournis, reportez-vous au manuel Oracle8 Application Developer's Guide.


Prise en charge des objets Oracle8 dans le Navigateur d'objet

Dans le Navigateur d'objet, les fonctionnalités Oracle8 permettent d'accéder aux types de données des objets ; vous pouvez ainsi programmer plus aisément en employant des données Oracle 8. Cette prise en charge des objets Oracle 8 vous permet de visualiser les types de données définis par l'utilisateur sous forme d'arborescence et de rechercher puis d'afficher les tables, les vues, les colonnes, les déclencheurs, les méthodes et les attributs associés aux types de données définis par l'utilisateur.

Le noeud Objets de base de données contient les schémas (et les objets associés) auxquels vous avez accès dans la base de données à laquelle vous êtes actuellement connecté. Lorsque vous êtes connecté à une base de données Oracle8, le Navigateur d'objet affiche les types de données définis par l'utilisateur disponibles (avec leurs attributs et leurs méthodes) dans le noeud Types de chaque schéma. Les tables, vues, colonnes et déclencheurs associés aux types de données définis par l'utilisateur sont affichés dans les noeuds Tables et Vues.

Plus précisément, les fonctionnalités Oracle8 du Navigateur d'objet vous permettent de rechercher et d'afficher :

•	les tables d'objets et les objets colonne dans le noeud Tables

•	les vues d'objet dans le noeud Vues

•	les déclencheurs A la place de des vues dans le noeud Vues

•	les types d'objet, de table et de tableau variable dans le noeud Types

•	les attributs et les méthodes de types d'objet dans le noeud Types

Des icônes servent à différencier les objets relationnels et les objets Oracle8 dans le Navigateur d'objet. Par exemple, des icônes distinctes servent à représenter les tables relationnelles normales et les tables d'objets, ou les vues normales et les vues d'objet.

Pour plus d'informations sur les types de données Oracle8 définis par l'utilisateur, consultez la documentation Oracle8.

Rubriques connexes

Noeuds Type d'objet

Noeuds Type de table

Noeuds Type de tableau variable

Noeuds Objet colonne

Noeuds Table d'objets

Noeuds Vue d'objet

Développement de toute l'arborescence

Icônes des objets Oracle8


Noeuds Type d'objet

  Exemple	  Rubriques connexes

Les types d'objet apparaissent dans le noeud Types du Navigateur d'objet. Un noeud type d'objet représente un type créé par l'instruction SQL CREATE TYPE AS OBJECT. Le type d'objet apparaît dans le Navigateur d'objet sous la forme :

nom_type_objet ( Object Type [ * ] & Body [ * ] )

Le libellé Object Type apparaît lorsqu'une instruction CREATE TYPE AS OBJECT est transmise à la base de données. Un astérisque ( * ) apparaît lorsque la spécification du type n'est pas valide ou que le type est incomplet. Un type incomplet est une pseudovariable permettant de définir des types de façon récurrente.

Le libellé Object Body apparaît lorsqu'un corps de type a été créé à l'aide de l'instruction CREATE TYPE BODY. Un astérisque ( * ) apparaît lorsque le corps de type n'est pas valide.

Quand le type et le corps de l'objet ont été créés sans erreur, le libellé Object Type & Body apparaît.

Les noeuds type d'objet sont des noeuds composites ; ils possèdent deux sous-noeuds, Attributs et Méthodes. Un noeud type d'objet ne peut être développé que s'il existe une spécification de type valide.

Les attributs d'un type d'objet sont représentés sous forme de noeuds dans le sous-noeud Attributs.

Les méthodes d'un type d'objet sont représentées sous forme de noeuds dans le sous-noeud Méthodes. Les méthodes apparaissent sous forme de procédures et de fonctions. Les libellés de méthode sont affichés dans le Navigateur d'objet sous la forme :

nom_méthode (Procedure)

et

nom_méthode (Function)

Si vous définissez pour un type d'objet une méthode d'association ou de tri, le libellé de la méthode apparaît comme suit :

nom_méthode (Map Function)

ou

nom_méthode (Order Function)

Remarque : La liste d'arguments des méthodes n'est pas affichée.


Noeud Type d'objet - exemple

  Rubriques connexes 	   Tous les exemples

L'instruction SQL suivante crée le type d'objet emp_typ.

CREATE TYPE emp_typ AS OBJECT
  (ename VARCHAR2(30), esalary NUMBER(5,2),
  MEMBER PROCEDURE raise(amount NUMBER),
  MEMBER FUNCTION get_salary RETURN NUMBER,
  MAP MEMBER FUNCTION compare RETURN NUMBER);

L'arborescence emp_typ est la suivante :


Noeuds Type de table

  Exemple	  Rubriques connexes

Les tables apparaissent dans le noeud Types du Navigateur d'objet. Un noeud type de table représente un type créé par l'instruction SQL CREATE TYPE AS TABLE. Le type de table apparaît dans le Navigateur d'objet comme suit :

nom_type_table (TABLE OF nom_sous-type_table)

Lorsque le sous-type est un type intégré, le noeud type de table ne peut pas être développé. Si le sous-type est un type d'objet ou un objet REF, les attributs de l'objet apparaissent en tant que sous-noeuds.


Noeud Type de table - exemple

  Rubriques connexes 	   Tous les exemples

Les instructions SQL suivantes créent le type d'objet emp_typ et le type de table emp_tbl.

CREATE TYPE emp_typ AS OBJECT
  (ename VARCHAR2(30), esalary NUMBER(5,2),
  MEMBER PROCEDURE raise(amount NUMBER),
  MEMBER FUNCTION get_salary RETURN NUMBER,
  MAP MEMBER FUNCTION compare RETURN NUMBER);

CREATE TYPE emp_tbl AS TABLE OF emp_typ;

L'arborescence emp_tbl est la suivante :


Noeuds Type de tableau variable

  Exemple	  Rubriques connexes

Les types de tableau variable apparaissent dans le noeud Types du Navigateur d'objet. Un type de tableau variable correspond à un type créé par l'instruction SQL CREATE TYPE AS VARYING ARRAY. Un type de tableau variable apparaît comme suit dans le Navigateur d'objet :

nom_type_tableau_variable (VARRAY (taille) nom_sous-type_tableau_variable)

Lorsque le sous-type est un type intégré, le noeud type de tableau variable ne peut pas être développé. Si le sous-type est un type d'objet ou un objet REF, les attributs de l'objet apparaissent en tant que sous-noeuds.


Type de tableau variable - exemple

  Rubriques connexes 	   Tous les exemples

Les instructions SQL suivantes créent le type d'objet emp_typ et le type de tableau variable emp_ary.

CREATE TYPE emp_typ AS OBJECT
  (ename VARCHAR2(30), esalary NUMBER(5,2),
  MEMBER PROCEDURE raise(amount NUMBER),
  MEMBER FUNCTION get_salary RETURN NUMBER,
  MAP MEMBER FUNCTION compare RETURN NUMBER);

CREATE TYPE emp_ary AS VARRAY(7) OF emp_typ;

L'arborescence emp_ary est la suivante :


Noeuds Objet colonne

  Exemples	  Rubriques connexes

Les objets colonne apparaissent sous forme de noeuds dans le noeud Colonnes. Chaque objet porte un libellé entre parenthèses, où figurent son nom et son type. Les noeuds objet colonne sont des noeuds composites où les attributs du type apparaissent sous forme de sous-noeuds.

Les objets colonne admettent quatre sous-types : type d'objet imbriqué, type de table, type de tableau variable et type d'objet REF. Les objets colonne sont affichés comme suit dans le Navigateur d'objet :

nom_colonne (type_objet_imbriqué)

nom_colonne (nom_type_table:TABLE OF nom_sous-type_table)

nom_colonne (nom_type_tableau_variable: VARRAY(taille) OF nom_sous-type_tableau_variable)

nom_colonne (REF nom_type_référence)


Noeud Objet colonne - exemples

  Rubriques connexes 	   Tous les exemples

Dans l'exemple qui suit, la colonne emp_col de la table emp_tab est un objet imbriqué de type emp_typ.

CREATE TYPE emp_typ AS OBJECT (ename VARCHAR2(30), esalary NUMBER(5,2));
CREATE TABLE emp_tab (emp_col emp_typ, dept VARCHAR2(2));

L'arborescence emp_tab est la suivante :

Dans l'exemple suivant, la colonne emps de la table dept_tab est une table imbriquée de sous-type emp_tbl. Elle comporte des lignes de type emp_typ.

CREATE TYPE emp_typ AS OBJECT (ename VARCHAR2(30), esalary NUMBER(5,2));
CREATE TYPE emp_tbl AS TABLE OF emp_typ;
CREATE TABLE dept_tab (dname VARCHAR2(20), emps emp_tbl)
  NESTED TABLE emps STORE AS emps_tab;

L'arborescence dept_tab est la suivante :

Dans l'exemple suivant, la colonne emps de la table dept_tab_ary est un tableau variable de sous-type emp_ary. Il comporte des lignes de type emp_typ.

CREATE TYPE emp_typ AS OBJECT (ename VARCHAR2(30), esalary NUMBER(5,2));
CREATE TYPE emp_ary AS VARRAY(7) OF emp_typ;
CREATE TABLE dept_tab_ary (dname VARCHAR2(20), emps emp_ary);

L'arborescence dept_tab_ary est la suivante :

Dans l'exemple suivant, la colonne manager de la table dept_ref est un objet référencé de type emp_typ.

CREATE TYPE emp_typ AS OBJECT (ename VARCHAR2(30), esalary NUMBER(5,2));
CREATE TABLE dept_ref (dname VARCHAR2(20), manager REF emp_typ);

L'arborescence dept_ref est la suivante :


Noeuds Table d'objets

  Exemple	  Rubriques connexes

Les tables d'objets apparaissent dans le noeud Tables du Navigateur d'objet. Un noeud table d'objets correspond à une table créée par l'instruction SQL CREATE TABLE OF. Les noeuds table d'objets sont affichés comme suit dans le Navigateur d'objet :

nom_table_objets (nom_type_objet)

Chaque noeud table d'objets possède deux sous-noeuds : Déclencheurs et Colonnes. Le sous-noeud Déclencheurs contient tous les déclencheurs associés à la table d'objets. Ces déclencheurs sont affichés de la même manière que les déclencheurs associés aux tables relationnelles normales. Le noeud Colonnes contient toutes les colonnes relationnelles et les objets colonne associés à une table d'objets donnée. Chaque colonne porte un libellé entre parenthèses, où figurent son nom et son type.


Noeud Table d'objets - exemple

  Rubriques connexes 	   Tous les exemples

Les instructions SQL suivantes créent le type d'objet person_typ et la table d'objets person_tab.

CREATE TYPE person_typ AS OBJECT
  (name VARCHAR2(30), address VARCHAR2(60));

CREATE TABLE person_tab OF person_typ;

L'arborescence person_tab est la suivante :


Noeuds Vue d'objet

  Exemple	  Rubriques connexes

Les vues d'objet apparaissent dans le noeud Vues du Navigateur d'objet. Un noeud vue d'objet correspond à une vue créée à l'aide de la clause OF type_objet. Les noeuds vue d'objet portent un libellé entre parenthèses, où figurent leur nom et leur type. Les attributs de l'objet ne sont pas affichés.

Chaque noeud vue d'objet comporte deux sous-noeuds : Déclencheurs et Colonnes. Le sous-noeud Déclencheurs contient tous les déclencheurs associés à la vue d'objet, y compris les déclencheurs A la place de. Lorsqu'un tel déclencheur est associé à une vue, son libellé apparaît comme suit :

nom_déclencheur (INSTEAD OF instructions_déclenchement)


Noeud Vue d'objet - exemple

  Rubriques connexes 	   Tous les exemples

Les instructions SQL suivantes créent une vue d'objet.

CREATE TYPE emps_typ AS OBJECT (ename VARCHAR2(30), esalary number(5,2), deptno NUMBER(2));
CREATE TABLE emps (ename VARCHAR2(30), esalary number(5,2), deptno NUMBER(2));
CREATE VIEW dev_emps OF emps_typ
  WITH OBJECT OID (ename)
  AS SELECT ename, esalary, deptno FROM emps WHERE deptno = 10;

L'arborescence de la vue d'objet dev_emps est la suivante :


Développement de tous les noeuds des objets Oracle8

  Rubriques connexes

L'opération Développer tout du Navigateur d'objet ne développe pas les noeuds de type de données et d'attribut Oracle8 de façon récurrente.

Ainsi, si un attribut manager, de type emp_typ, apparaît comme descendant d'un autre type emp_typ, l'attribut manager ne sera pas développé par la commande Développer tout.


Objets Oracle8 - exemples

  Rubriques connexes 	   Tous les exemples

Type d'objet

Type de table

Type de tableau variable

Objet de colonne

Table d'objets

Vue d'objet


Conversion PL/SQL V1 - exemples

  Rubriques connexes 	   Tous les exemples

Suppression des expressions par défaut

Ajout de NULL à RETURN

Remplacement de procédures internes obsolètes

Fonction de longueur

Transfert de NULL vers un sous-programme surchargé

Instruction RETURN manquante

Modification du nom des procédures uniquement dans un package

Suppression du préfixe de package

Mot réservé

Suppression de contraintes de longueur

Déclarations de variables