Oracle PL /SQL est un langage procédural qui est une extension de SQL, ou le langage de requête structuré. Utilisez le PL /SQL pour obtenir les résultats souhaités lors de la DML standard, ou Data Manipulation Language ou certains états ne peuvent pas. Procédures , des fonctions, des déclencheurs et des forfaits sont quatre types distincts d' objets stockés ou des programmes stockés , écrites en PL /SQL. Vous devez comprendre le concept de la création et du maintien des PL /SQL objets stockés afin d'optimiser les performances et le temps de programmation. Dans cet article, l'accent est mis sur une procédure et une fonction. Instructions
1
Connectez-vous à Oracle SQL * Plus en cliquant sur " Démarrer", " Tous les programmes " et " SQLPlus . "
2
Entrez votre nom d'utilisateur et mot de passe , puis cliquez sur "OK". dans la boîte de dialogue Oracle SQL * Plus.
3
créer une procédure . Une procédure est compilée et stockée dans le dictionnaire de données une fois . Emmagasiner un seul exemplaire de la procédure respecté réduit le trafic réseau lorsque plus d'un utilisateur a besoin de l'appeler. À l'invite SQL , saisissez le code.
SQL > Photos
" CREATE OR REPLACE PROCEDURE update_product_price (produits
p_product_id EN products.product_id % TYPE , AB
p_factor eN nOMBRE
)
AS
v_product_count Integer;
BEGIN
- compter le nombre de produits avec le < br >
- fourni produit_id )
SELECT COUNT (*)
EN v_product_count
à partir de produits
OÙ produit_id = p_product_id ;
- si le produit existe ( v_product_count = 1) puis
- mise à jour de ce prix
la
du produit IF v_product_count = 1 alors
produits mISE À JOUR
< p > Cours de SET = prix * p_factor
OÙ product_ID = p_product_id ;
COMMIT ;
END IF ;
EXCEPTION
QUAND autres alors
ROLLBACK ;
FIN update_product_price ;
/"
Après la procédure est compilé , il affichera « Procédure créé "
< . p> Remarque: Pour exécuter avec succès et appeler cette procédure , une table de produits doit exister dans la base de données Oracle avec des données stockées
aide de la commande «SELECT» et «où» commande pour interroger le prix du produit n ° 1 . afin que vous puissiez faire une comparaison après l' appel de la procédure . À l'invite SQL , saisissez le code
SQL > Photos
"SELECT produit_id, product_type_id , nom, description, prix à partir de produits
OÙ Product_ID = 1; " . < Br >
les résultats s'afficheront l'ensemble du dossier , mais énumérés ci-dessous est seulement la colonne de prix pour le produit qui est étiqueté comme produit_id = 1.
pRIX
------- -
19,95
appeler la procédure update_product_price . À l'invite SQL, entrez le code
SQL > Photos
"CALL update_product_price (1, 1,5 ) ; " . .
Appel terminé
Le résultat affiche que l'appel terminé et que le prix de produt_id est mis à jour lorsque vous utilisez la commande SELECT et WHERE commandes à l'invite SQL
SQL > SELECT FROM des prix des produits où product_ID = 1 ; .
pRIX < br >
----------
29,93
4
créer une fonction . Lorsque vous appelez une fonction dans une déclaration , il doit retourner une valeur. En outre, les nombreuses fonctions livrées hors de la boîte avec la base de données Oracle 10g , les développeurs de créer leurs propres fonctions pour augmenter l' impact sur les performances . À l'invite SQL , saisissez le code.
SQL > Photos
" CREATE OR REPLACE average_product_price FONCTION (produits
p_product_type_id EN ENTIER
) NOMBRE DE RETOUR < br >
AS
NUMÉRO v_average_product_price ;
BEGIN
SELECT AVG (price)
eN v_average_product_price
à partir de produits < br >
OÙ product_type_id = p_product_type_id ;
v_average_product_price dE RETOUR
;
FIN average_product_price ; .
/"
Fonction: créée
le résultat affiche la fonction créée , puis l'appel à la average_product_price aide de l'instruction SELECT de la double table. À l'invite SQL , saisissez le code
SQL > Photos
"SELECT average_product_price (1 )
FROM dual ; ».
AVERAGE_PRODUCT_PRICE (1) Photos
------------------------
29,93
< br >