La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

4 Copyright © Oracle Corporation, 2001. Tous droits réservés. Gérer les sous-programmes.

Présentations similaires


Présentation au sujet: "4 Copyright © Oracle Corporation, 2001. Tous droits réservés. Gérer les sous-programmes."— Transcription de la présentation:

1 4 Copyright © Oracle Corporation, 2001. Tous droits réservés. Gérer les sous-programmes

2 4-2 Copyright © Oracle Corporation, 2001. Tous droits réservés. Objectifs A la fin de ce chapitre, vous pourrez : opposer les privilèges système aux privilèges objet opposer les droits de l'appelant aux droits du créateur identifier les vues du dictionnaire de données afin de gérer les objets stockés déboguer des sous-programmes à l'aide du package DBMS_OUTPUT

3 4-3 Copyright © Oracle Corporation, 2001. Tous droits réservés. Privilèges requis CREATE (ANY) PROCEDURE ALTER ANY PROCEDURE DROP ANY PROCEDURE EXECUTE ANY PROCEDURE L'administrateur de base de données accorde Privilèges système Privilèges objet Le propriétaire accorde EXECUTE Pour pouvoir faire référence et accéder aux objets d'un autre schéma à partir d'un sous-programme, vous devez bénéficier d'un accès explicite (non octroyé via un rôle) aux objets référencés.

4 4-4 Copyright © Oracle Corporation, 2001. Tous droits réservés. Accorder l'accès aux données GRANT EXECUTE ON query_emp TO green; Grant Succeeded. Accès indirect : Green SCOTT.QUERY_EMP SELECT La procédure s'exécute avec les privilèges du propriétaire (par défaut). GRANT SELECT ON employees TO scott; Grant Succeeded. Accès direct : Scott EMPLOYEES

5 4-5 Copyright © Oracle Corporation, 2001. Tous droits réservés. Utiliser les droits de l'appelant La procédure s'exécute avec les privilèges de l'utilisateur. SCOTT.QUERY_EMPLOYEE Scott EMPLOYEES Green EMPLOYEES CREATE PROCEDURE query_employee (p_id IN employees.employee_id%TYPE, p_name OUT employees.last_name%TYPE, p_salary OUT employees.salary%TYPE, p_comm OUT employees.commission_pct%TYPE) AUTHID CURRENT_USER IS BEGIN SELECT last_name, salary, commission_pct INTO p_name, p_salary, p_comm FROM employees WHERE employee_id=p_id; END query_employee; /

6 4-6 Copyright © Oracle Corporation, 2001. Tous droits réservés. Gérer les objets PL/SQL stockés Dictionnaire de données Erreurs de compilation Informations générales Code source Informations de débogage Pseudo- code Paramètres Editeur DESCRIBE... DBMS_OUTPUT

7 4-7 Copyright © Oracle Corporation, 2001. Tous droits réservés. USER_OBJECTS Colonne OBJECT_NAME OBJECT_ID OBJECT_TYPE CREATED LAST_DDL_TIME TIMESTAMP STATUS Description de la colonne Nom de l'objet Identificateur interne de l'objet Type d'objet, par exemple, TABLE, PROCEDURE, FUNCTION, PACKAGE, PACKAGE BODY, TRIGGER Date de création de l'objet Date de la dernière modification de l'objet Date et heure de la dernière recompilation de l'objet VALID ou INVALID *Liste de colonnes réduite

8 4-8 Copyright © Oracle Corporation, 2001. Tous droits réservés. Répertorier l'ensemble des procédures et des fonctions SELECT object_name, object_type FROM user_objects WHERE object_type in ('PROCEDURE','FUNCTION') ORDER BY object_name; …

9 4-9 Copyright © Oracle Corporation, 2001. Tous droits réservés. Colonne NAME TYPE LINE TEXT Description de la colonne Nom de l'objet Type de l'objet, par exemple PROCEDURE, FUNCTION, PACKAGE, PACKAGE BODY Numéro de ligne du code source Texte de la ligne du code source Vue du dictionnaire de données USER_SOURCE

10 4-10 Copyright © Oracle Corporation, 2001. Tous droits réservés. Afficher le code des procédures et des fonctions SELECT text FROM user_source WHERE name = 'QUERY_EMPLOYEE' ORDER BY line;

11 4-11 Copyright © Oracle Corporation, 2001. Tous droits réservés. Colonne NAME TYPE SEQUENCE LINE POSITION TEXT Description de la colonne Nom de l'objet Type d'objet, par exemple PROCEDURE, FUNCTION, PACKAGE, PACKAGE BODY, TRIGGER Numéro de séquence pour le tri Numéro de la ligne où survient l'erreur dans le code source Position de l'erreur sur la ligne Texte du message d'erreur USER_ERRORS

12 4-12 Copyright © Oracle Corporation, 2001. Tous droits réservés. Détecter les erreurs de compilation : exemple CREATE OR REPLACE PROCEDURE log_execution IS BEGIN INPUT INTO log_table (user_id, log_date) -- wrong VALUES (USER, SYSDATE); END; /

13 4-13 Copyright © Oracle Corporation, 2001. Tous droits réservés. Répertorier les erreurs de compilation en utilisant USER_ERRORS SELECT line || '/' || position POS, text FROM user_errors WHERE name = 'LOG_EXECUTION' ORDER BY line;

14 4-14 Copyright © Oracle Corporation, 2001. Tous droits réservés. Répertorier les erreurs de compilation en utilisant SHOW ERRORS SHOW ERRORS PROCEDURE log_execution

15 4-15 Copyright © Oracle Corporation, 2001. Tous droits réservés. DESCRIBE in i SQL*Plus DESCRIBE query_employee DESCRIBE add_dept DESCRIBE tax

16 4-16 Copyright © Oracle Corporation, 2001. Tous droits réservés. Déboguer les programmes PL/SQL Le package DBMS_OUTPUT : –accumule les informations dans une mémoire tampon –permet l'extraction des informations à partir de la mémoire tampon Appels de procédure autonomes (par exemple, écriture du résultat dans une table de journalisation) Logiciels utilisant DBMS_DEBUG –Procedure Builder –Logiciels de débogage tiers

17 4-17 Copyright © Oracle Corporation, 2001. Tous droits réservés. USER_SOURCE USER_ERRORS Synthèse Compilation Pseudo-code Code source Erreurs de compilation Scott Green Privilèges

18 4-18 Copyright © Oracle Corporation, 2001. Tous droits réservés. Synthèse Exécution Informations de débogage

19 4-19 Copyright © Oracle Corporation, 2001. Tous droits réservés. Présentation de l'exercice 4 Dans cet exercice, vous allez : recréer le fichier source d'une procédure recréer le fichier source d'une fonction

20 4-20 Copyright © Oracle Corporation, 2001. Tous droits réservés.


Télécharger ppt "4 Copyright © Oracle Corporation, 2001. Tous droits réservés. Gérer les sous-programmes."

Présentations similaires


Annonces Google