Procédures de package de base de données

Vous créez les procédures de package de base de données sur l'onglet Procédures d'un package de base de données en utilisant l'outil Ajouter une ligne. Pour copier une procédure provenant d'un autre emplacement du modèle, utilisez l'outil Créer à partir d'une procédure.

Remarque : Pour régénérer les dépendances de procédures de packages de base de données (avec les autres dépendances de procédures), sélectionnez Outils > Régénérer les objets > Régénérer les dépendances de procédure (voir Régénération des dépendances de triggers et de procédures).

Outre les propriétés standard Nom, Code, Commentaire et Stéréotype, une procédure de package de base de données a les propriétés suivantes :

Propriété

Description

Package

Nom du package de base de données auquel la procédure appartient.

Type

Permet de choisir entre procédure et fonction.

Type de données de résultat

Permet de définir le type de données de résultat d'une fonction.

Pragma

Permet de spécifier une directive de compilation, c'est-à-dire une chaîne spécifiant les paramètres de compilation pour la procédure.

Public

Permet de déclarer la procédure dans la spécification du package et de permettre une utilisation depuis l'extérieur du package de base de données. Une procédure privée (case1 décochée) n'est définie que dans le corps du package.

Les onglets suivants sont également disponibles :
  • Paramètres – Répertorie les paramètres d'entrée et de sortie requis par la procédure (voir Paramètres de package de base de données).

  • Onglet Définition - Permet de définir des procédures de package. Les procédures de package ne sont pas construites à l'aide de la structure de templates définie dans le SGBD. Vous devez saisir l'intégralité de la définition de la procédure de package. Pour ce faire, vous pouvez utiliser des opérateurs et des fonctions pour insérer des éléments de script dans la définition de curseur.

Par exemple, la procédure de package CREDIT se présente comme suit :

CREATE PROCEDURE credit (Account_number NUMBER, Amount IN NUMBER) AS
BEGIN
UPDATE accounts
SET balance = balance + amount
WHERE account_id = acc_no;
END;