Vous êtes sur la page 1sur 9

1. Examiner le code suivant.

La procédure Procdept permet de:

 Afficher le max des salaires des employes d’un département saisie en entrée.
 Afficher le manager d’un département donné en entrée.
 Afficher l'employé le plus rémunéré du département donné en paramètre.
 Aucune de ces réponses.

2. Choisir l'(les) affirmation(s) correcte(s):


 les blocs anonymes sont des blocs PL/SQL exécutables nommés.
 Les procédures et fonctions stockées sont des blocs PL/SQL non nommés.
 Les blocs anonymes sont stockés dans la base de données.
 Les sous programmes peuvent accepter des paramètres.
 Les blocs anonymes sont compilés une seule fois.
 Les blocs anonymes sont compilés pour chaque exécution.

3. Parmi les déclarations de variables suivantes, déterminer celles qui sont incorrectes :
 v_x,v_y,v_z VARCHAR2(10);
 v_date_naissance DATE NOT NULL;
 v_id NUMBER(4);
 v_en_stock BOOLEAN := 1;
 v_e employees%type;
4. Quel est le résultat d'exécution de ce bloc?

 Affiche : v est un nombre impair.


 Affiche : v est un nombre pair.
 Déclenche une exception car v n'est pas initialisée.

5. Quelle(s) est(sont) l'(les) affirmation(s) correcte(s) pour les TRIGGERS de type table?
 Ils sont exécutés une seule fois lorsque les modifications surviennent sur une table.
 Ils sont exécutés autant de fois que de lignes modifiées dans la table.
 Ils permettent d'accéder aux anciennes et nouvelles valeurs de colonnes de la ligne.
 Ils n'ont pas la spécification de l’option FOR EACH ROW.

6. En supposant que dans la table Employees, il y a au plus un seul employé dont le prénom
est Joe, l'exécution de ce bloc consiste à :

 Mettre à jour le salaire de l'employé dont l'id est 100 par la moyenne des salaires des
employés sinon par le salaire de l'employé dont le prénom est 'Joe'
 Mettre à jour le salaire de l'employé dont l'id est 100 par le salaire de l'employé dont le
prénom est 'Joe', sinon par la moyenne des salaires des employés.
 Mettre à jour le salaire de l'employé dont le prénom est 'Joe' par la moyenne des salaires
des employés.
 Aucune de ces réponses.

7. Quelle est l'affirmation correcte par rapport au code suivant :

 Afficher tous les employés du département 90.


 Afficher des informations sur les top trois premiers salariés du département 90.
 Afficher des informations sur des salariés du département 90 qui ont un salaire supérieur
à10000.
 Afficher des informationS sur les top salariés du département 90 ayant un salaire
supérieur à 10000. L'affichage ne dépasse pas trois lignes.

8. Quand se déclenche ce trigger? *


 Pour toute requête UPDATE
 Pour les requêtes UPDATE concernant les employés dont l'ancien salaire est supérieur
au nouveau salaire
 Jamais, le bloc est erroné

9. Nous souhaitons créer une fonction stockée qui prend en paramètre l’id de l’employé et
qui retourne le nom du département auquel il est associé. Quel est le code associé à cette
fonction? *

 A
 B
 C
10. Pour pouvoir récupérer le nombre de départements pour une location donnée, nous
établissons la procédure suivante. Le code est manquant, choisir la bonne réponse :

 varloc IN number
 varloc out number, a IN number
 varloc IN number, a IN number
 varloc IN number, a IN out number
 varloc IN number, a out number

11. Que représente ce bloc?

 Un trigger de table qui permet de lever une exception personnalisée si une condition n'est
pas respectée
 Un trigger de ligne qui permet de lever une exception prédéfinie par oracle si une
condition n'est pas respectée.
 Un trigger de ligne qui permet de lever une exception définie utilisateur si une condition
n'est pas respectée
 Un bloc erroné car la déclaration de l'erreur est fausse
12. Le code du bloc suivant est erroné. Préciser le(s) numéro(s) de(s) la(les) ligne(s)
erronée(s).

 1
 2
 3
 4
 5
 6
 7
 8

13. Une déclaration de mise à jour sur employees affecte 100 lignes. Combien de lignes
seront insérées dans la table log après le déclenchement de ce déclencheur ? (La table log
est une table d'historisation).

 100
 1
 0
 Même nombre de lignes que dans la table employees
14. Soit la déclaration suivante d'un curseur Explicite. Quelle(s) instruction(s) permet(tent)
d'ouvrir correctement le curseur C.

 OPEN C(20);
 FOR i in C(20) LOOP ...
 OPEN C('IT_PROG',20);
 FOR i in C(20,'IT_PROG') LOOP ...
 OPEN C(20,'IT_PROG');

15. Que fait cette fonction?

 Ne retourne rien car la fonction est incorrecte.


 Aucune de ces réponses.
 Retourne le double d'un nombre entré en paramètre.
16. On souhaite créer un TRIGGER permettant de vérifier avant chaque mise à jour dans la
table Employees si le salaire est bien entre les bornes min_salary et max_salary. Le code
du TRIGGER est manquant, choisir la bonne réponse pour compléter les deux espaces
dans l'ordre adéquat.

 espace 1(:new.job_id> a or :new.job_id< b), espace2(job_id is not null)


 espace 1(:new.job_id< a or :new.job_id> b), espace2(job_id=:new.job_id)
 espace 1(job_id is not null), espace2(:new.job_id< a or :new.job_id> b)
 espace 1(job_id=:new.job_id), espace2(:new.job_id> a or :new.job_id< b)

17. Quelle est la réponse correcte pour créer un curseur explicite ?


 CURSOR cursor_name IS select_statement;
 CREATE CURSOR cursor_name IS select_statement;
 CREATE CURSOR cursor_name AS select_statement;
 CURSOR cursor_name AS select_statement;
18. Ayant le code suivant, quelles sont les exceptions qui peuvent être générées ?

 TOO_MANY_ROWS
 NO_DATA_FOUND
 DUP_VAL_ON_INDEX
 ZERO_DIVIDE

19. Quel est le résultat de l'exécution de ce code:

 Il génère une exception utilisateur.


 Il affiche une erreur de compilation.
 Aucune de ces réponses.

20. Quelles sont les deux affirmations qui différencient correctement les fonctions des
procédures ?
 Une fonction ne peut être appelée que dans le cadre d'une instruction SQL, tandis qu'une
procédure ne peut être appelée que comme une instruction PL SQL.
 Une fonction doit renvoyer une valeur à l'environnement appelant, tandis qu'une
procédure peut retourner de zéro à plusieurs valeurs à son environnement appelant.
 Une fonction peut être appelée dans le cadre d'une instruction SQL ou d'une expression
PL / SQL, tandis qu'une procédure ne peut être appelée que comme une instruction PL
/SQL.
 Une fonction peut renvoyer une ou plusieurs valeurs à l'environnement appelant, tandis
qu'une procédure doit renvoyer une seule valeur à son environnement appelant.

Vous aimerez peut-être aussi