Tutorial SQL avancée PL

October 26

Tutorial SQL avancée PL


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 lorsque la DML standard, ou de manipulation des données linguistiques ou sélectionnez les états ne peuvent pas. Procédures, fonctions, triggers et packages sont quatre types distincts d'objets stockés ou des programmes stockés, écrites en PL / SQL. Vous devez comprendre le concept de créer et de maintenir les / SQL stocké des objets PL pour optimiser les performances et la programmation du temps. 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 plus Oracle SQL.

3 Créer une procédure. Une procédure est établie et stockée dans le dictionnaire de données une seule fois. Mémorisation une seule copie de la procédure respectée réduit le trafic réseau lorsque plus d'un utilisateur a besoin de l'appeler. À l'invite de SQL, entrez le code.

SQL>

"CREATE OR REPLACE PROCEDURE update_product_price (

p_product_id IN products.product_id% TYPE,

p_factor EN NOMBRE

)

COMME

v_product_count ENTIER;

COMMENCER

--count le nombre de produits avec le

product_id --supplied)

SELECT COUNT (*)

EN v_product_count

FROM produits

WHERE product_id = p_product_id;

--Si le produit existe (v_product_count = 1), puis

--update le prix de ce produit

SI v_product_count = 1 ALORS

produits UPDATE

prix SET = prix * p_factor

WHERE product_id = p_product_id;

COMMETTRE;

FIN SI;

EXCEPTION

QUAND LES AUTRES PUIS

ROLLBACK;

update_product_price END;

/ "

Après la procédure est compilé, il affichera "Procédure créée."

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.

En utilisant la commande "SELECT" et "WHERE" commande pour interroger le prix du produit n ° 1 de sorte que vous pouvez faire une comparaison après l'appel de la procédure. À l'invite de SQL, entrez le code.

SQL>

"SELECT product_id, product_type_id, nom, description, prix FROM produits

WHERE product_id = 1; "

Les résultats affichent l'ensemble du dossier, mais énumérés ci-dessous est seulement la colonne de prix pour le produit qui est étiqueté comme product_id = 1.

PRIX



19.95

Appelez la procédure update_product_price. À l'invite de SQL, entrez le code.

SQL>

"Update_product_price CALL (1, 1,5);"

Appel terminé.

Le résultat affiche que l'appel terminé et le prix pour produt_id est mis à jour lorsque vous utilisez le SELECT et WHERE des commandes à l'invite de SQL.

SQL> prix SELECT FROM produits WHERE product_id = 1;

PRIX



29,93

4 Créer une fonction. Lors de l'appel d'une fonction à partir d'une déclaration, il doit renvoyer 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 de SQL, entrez le code.

SQL>

"CREATE OR REPLACE FUNCTION average_product_price (

p_product_type_id EN ENTIER

) NUMÉRO DE RETOUR

COMME

NUMÉRO DE v_average_product_price;

COMMENCER

SELECT AVG (prix)

EN v_average_product_price

FROM produits

WHERE product_type_id = p_product_type_id;

RETOURNER v_average_product_price;

average_product_price END;

/ "

Fonction créée.

Le résultat affiche la fonction créée puis l'appel à la average_product_price en utilisant l'instruction SELECT de la double table. À l'invite de SQL, entrez le code.

SQL>

"SELECT average_product_price (1)

À partir de deux ";

AVERAGE_PRODUCT_PRICE (1)



29.93


          

Post a comment: