30 most important pl sql interview questions
Principales questions d'entrevue PL / SQL avec des exemples pour vous aider à vous préparer à l'entretien à venir:
Qu'est-ce que PL / SQL?
PL / SQL (Procedural Language / SQL) est essentiellement une extension procédurale d'Oracle-SQL. PL / SQL aide l'utilisateur à développer des applications de base de données complexes en utilisant des structures de contrôle, des procédures, des fonctions, des modules, etc.
Cet article abordera les questions et réponses les plus posées lors des entretiens PL / SQL.
Questions et réponses d'entretien PL / SQL
Commençons!!
Q # 1) Différencier PL / SQL et SQL?
Répondre: La différence entre SQL et PL / SQL peut être classée comme suit:
SQL | PL / SQL |
---|---|
SQL est un langage naturel très utile pour le traitement interactif. | PL / SQL est une extension procédurale d'Oracle-SQL. |
Aucune capacité procédurale comme le test de condition, la boucle est offerte par SQL. | PL / SQL prend en charge les capacités procédurales ainsi que les fonctionnalités de langage élevé telles que les instructions conditionnelles, les instructions en boucle, etc. |
Toutes les instructions SQL sont exécutées une par une par le serveur de base de données, ce qui prend donc beaucoup de temps. | Les instructions PL / SQL envoient le bloc entier d'instructions au serveur de base de données en même temps, ce qui réduit considérablement le trafic réseau. |
Aucune procédure de gestion des erreurs n'est présente dans SQL. | PL / SQL prend en charge la gestion des erreurs personnalisée. |
Q # 2) Enrôlez les caractéristiques de PL / SQL?
Répondre:
Les caractéristiques de PL / SQL sont les suivantes:
- PL / SQL permet l'accès et le partage des mêmes sous-programmes par plusieurs applications.
- Il est connu pour la portabilité du code car le code peut être exécuté sur n'importe quel système d'exploitation à condition qu'Oracle y soit chargé.
- Avec PL / SQL, les utilisateurs peuvent écrire leurs propres routines personnalisées de gestion des erreurs.
- Amélioration des performances des transactions grâce à l'intégration au dictionnaire de données Oracle.
Q # 3) Quels sont les types de données disponibles en PL / SQL?
Répondre: Les types de données définissent les moyens d'identifier le type de données et leurs opérations associées.
Il existe 4 types de types de données prédéfinis expliqués comme suit:
- Types de données scalaires: Un type de données scalaire est un type de données atomique qui ne possède aucun composant interne.
- Par exemple
- CHAR (plage de valeurs de caractères de longueur fixe entre 1 et 32 767 caractères)
- VARCHAR2 (plage de valeurs de caractères de longueur variable entre 1 et 32 767 caractères)
- NUMBER (valeurs décimales fixes, décimales flottantes ou entières)
- BOOLEAN (type de données logique pour les valeurs TRUE FALSE ou NULL)
- DATE (stocke les informations de date et d'heure)
- LONG (données de caractères de longueur variable)
- Types de données composites: Un type de données composite est composé d'autres types de données et de composants internes qui peuvent être facilement utilisés et manipulés. Par exemple, RECORD, TABLE et VARRAY.
- Types de données de référence: Un type de données de référence contient des valeurs, appelées pointeurs, qui désignent d'autres éléments de programme ou éléments de données. Par exemple, REF CURSOR.
- Types de données d'objets volumineux: Un type de données Large Object contient des valeurs, appelées localisateurs, qui définissent l'emplacement des objets volumineux (tels que les clips vidéo, les images graphiques, etc.) stockés hors ligne.
- Par exemple
- BFILE (fichier binaire)
- BLOB (grand objet binaire)
- CLOB (objet grand caractère)
- NCLOB (grand objet de type NCHAR)
Lecture recommandée = >> Types de données PL SQL
Q # 4) Expliquez l'objectif des types de données% TYPE et% ROWTYPE avec l'exemple?
Répondre: PL / SQL utilise l'attribut de déclaration% TYPE pour l'ancrage. Cet attribut fournit le type de données d'une variable, d'une constante ou d'une colonne. L'attribut% TYPE est utile lors de la déclaration d'une variable qui a le même type de données qu'une colonne de table.
Par exemple, la variable m_empno a le même type de données et la même taille que la colonne empno dans le tableau emp.
m_empno emp.empno%TYPE;
L'attribut% ROWTYPE est utilisé pour déclarer une variable comme un enregistrement ayant la même structure qu'une ligne dans une table. La ligne est définie comme un enregistrement et ses champs ont les mêmes noms et types de données que les colonnes de la table ou de la vue.
Par exemple:
dept_rec dept%ROWTYPE;
Cela déclare un enregistrement qui peut stocker une ligne entière pour la table DEPT.
Q # 5) Qu'entendez-vous par les packages PL / SQL?
Répondre: Les packages PL / SQL sont des objets de schéma qui regroupent des fonctions, des procédures stockées, des curseurs et des variables en un seul endroit.
Les colis comportent 2 parties obligatoires:
- Spécifications de l'emballage
- Corps du paquet
Q # 6) Que comprenez-vous par curseurs PL / SQL?
Répondre: PL / SQL nécessite une capacité spéciale pour récupérer et traiter plus d'une ligne et cette ressource est connue sous le nom de curseurs. Un curseur est un pointeur vers la zone de contexte, qui est une zone de mémoire contenant des instructions SQL et des informations pour le traitement des instructions.
PL / SQL Cursor est essentiellement un mécanisme selon lequel plusieurs lignes de données de la base de données sont sélectionnées, puis chaque ligne est traitée individuellement dans un programme.
Q # 7) Expliquez les types de curseur.
logiciel pour télécharger des vidéos depuis youtube
Répondre: Il existe deux types de curseurs.
Ils sont expliqués comme suit:
a) Curseurs explicites: Pour les requêtes qui renvoient plus d'une ligne, un curseur explicite est déclaré et nommé par un programmeur. Afin d'utiliser le curseur explicite en PL / SQL, 4 étapes sont suivies
- Déclarer le curseur
Syntaxe: CURSOR est
Instruction SELECT;
Ici, est le nom attribué au curseur et l'instruction SELECT est la requête qui renvoie des lignes à l'ensemble actif du curseur.
- Ouvrez le curseur
Syntaxe: OUVERT ;
Où, est le nom du curseur précédemment défini.
- Récupérer les lignes du curseur
Syntaxe: FETCH INTO;
Ici, fait référence au nom du curseur précédemment défini à partir duquel les lignes sont extraites.
représente la liste des variables qui recevront les données extraites.
- Fermer le curseur
Syntaxe: FERMER ;
Voici le nom du curseur en cours de fermeture.
b) Curseurs implicites: Lorsqu'une instruction SQL est exécutée, PL / SQL crée automatiquement un curseur sans définir de tels curseurs sont appelés curseurs implicites.
Pour les instructions suivantes, PL / SQL utilise des curseurs implicites
- INSÉRER
- METTRE À JOUR
- EFFACER
- SELECT (requêtes qui retournent exactement une ligne)
Q # 8) Quand utilisons-nous des déclencheurs?
Répondre: Le mot «Trigger» signifie activer. En PL / SQL, le déclencheur est une procédure stockée qui définit une action entreprise par la base de données lorsque l'événement lié à la base de données est exécuté.
Les déclencheurs sont principalement nécessaires aux fins suivantes:
- Pour maintenir des contraintes d'intégrité complexes
- Audit des informations de table en enregistrant les modifications
- Signalisation d'autres actions du programme lorsque des modifications sont apportées au tableau
- Application de règles métier complexes
- Empêcher les transactions invalides
Q # 9) Expliquez la différence dans l'exécution des déclencheurs et des procédures stockées?
Répondre: Une procédure stockée est exécutée explicitement en émettant une instruction d'appel de procédure à partir d'un autre bloc via un appel de procédure avec des arguments.
Le déclencheur est exécuté implicitement chaque fois qu'un événement déclencheur comme l'occurrence d'instructions DML se produit.
Q # 10) Expliquez la différence entre les déclencheurs et les contraintes?
Réponse: Les déclencheurs sont différents des contraintes des manières suivantes:
Déclencheurs | Contraintes |
---|---|
N'affecte que les lignes ajoutées après l'activation du déclencheur. | Affecte toutes les lignes de la table, y compris celles qui existent déjà lorsque la contrainte est activée. |
Les déclencheurs sont utilisés pour implémenter des règles métier complexes qui ne peuvent pas être implémentées à l'aide de contraintes d'intégrité. | Les contraintes maintiennent l'intégrité de la base de données. |
Q # 11) Qu'est-ce qu'un bloc PL / SQL?
Répondre: En PL / SQL, les instructions sont regroupées en unités appelées blocs. Les blocs PL / SQL peuvent inclure des constantes, des variables, des instructions SQL, des boucles, des instructions conditionnelles, la gestion des exceptions. Les blocs peuvent également construire une procédure, une fonction ou un package.
Largement, Les blocs PL / SQL sont de deux types:
(i) Blocs anonymes: Les blocs PL / SQL sans en-tête sont appelés blocs anonymes. Ces blocs ne forment pas le corps d'une procédure, d'une fonction ou de déclencheurs.
Exemple:
DECLARE num NUMBER(2); sq NUMBER(3); BEGIN num:= &Number1; sq := num*num; DBMS_OUTPUT.PUT_LINE(‘Square:’ ||sq); END;
(ii) Blocs nommés: Les blocs PL / SQL ayant un en-tête ou des étiquettes sont appelés blocs nommés. Les blocs nommés peuvent être des sous-programmes (procédures, fonctions, packages) ou des déclencheurs.
Lecture recommandée = >> Procédures et fonctions PL SQL
Exemple:
FUNCTION sqr (num IN NUMBER) RETURN NUMBER is sq NUMBER(2); BEGIN sq:= num*num; RETURN sq; END;
Q # 12) Faire la différence entre les erreurs de syntaxe et d'exécution?
Répondre:
Erreurs de syntaxe sont ceux qui peuvent être facilement identifiés par un compilateur PL / SQL. Ces erreurs peuvent être une faute d'orthographe, etc.
Erreurs d'exécution sont les erreurs dans le bloc PL / SQL pour lesquelles une section de gestion des exceptions doit être incluse pour gérer les erreurs. Ces erreurs peuvent être une instruction SELECT INTO qui ne renvoie aucune ligne.
Q # 13) Que sont COMMIT, ROLLBACK et SAVEPOINT?
Répondre: COMMIT, SAVEPOINT et ROLLBACK sont trois spécifications de transaction disponibles en PL / SQL.
Instruction COMMIT: Lorsque l'opération DML est effectuée, elle ne manipule que les données dans la mémoire tampon de la base de données et la base de données n'est pas affectée par ces modifications. Pour enregistrer / stocker ces modifications de transaction dans la base de données, nous devons COMMIT la transaction. La transaction COMMIT enregistre toutes les modifications en suspens depuis le dernier COMMIT et le processus suivant se produit
- Les verrous des lignes concernées sont libérés
- Transaction marquée comme terminée
- Les détails de la transaction sont stockés dans le dictionnaire de données.
Syntaxe: S'ENGAGER;
Instruction ROLLBACK: Lorsque nous voulons annuler ou effacer toutes les modifications qui se sont produites jusqu'à présent dans la transaction en cours, nous devons être annulées de la transaction. En d'autres termes, ROLLBACK efface toutes les modifications en suspens depuis le dernier COMMIT ou ROLLBACK.
Syntaxe pour annuler complètement une transaction:
RETOUR EN ARRIERE;
questions et réponses d'entretien de base java pour les expérimentés
Instruction SAVEPOINT: L'instruction SAVEPOINT donne un nom et marque un point dans le traitement de la transaction en cours. Les modifications et verrous qui se sont produits avant le SAVEPOINT dans la transaction sont conservés tandis que ceux qui se produisent après le SAVEPOINT sont libérés.
Syntaxe:
SAVEPOINT;
Q # 14) Qu'est-ce que la table de mutation et la table de contrainte?
Répondre: Une table en cours de modification par une instruction DML telle que la définition de déclencheurs dans une table est appelée Table de mutation .
Une table qui peut avoir besoin d'être lue pour une contrainte d'intégrité référentielle est appelée table contraignante .
Q # 15) Quels sont les paramètres réels et les paramètres formels?
Répondre: Les variables ou une expression appelées paramètres qui apparaissent dans l'instruction d'appel de procédure sont appelées Paramètres réels .
Par exemple: rise_sal (emp_num, mérite + montant);
Ici, dans l'exemple ci-dessus, emp_num et montant sont les deux paramètres réels.
Les variables déclarées dans l'en-tête de la procédure et référencées dans le corps de la procédure sont appelées comme Paramètres formels .
Par exemple:
PROCÉDURE rise_sal (emp_id INTEGER) IS
curr_sal REAL:
……… ..
COMMENCER
SELECT sal INTO cur_sal FROM emp WHERE empno = emp_id;
…….
END raise_sal;
Ici, dans l'exemple ci-dessus, emp_id agit comme un paramètre formel.
Q # 16) Quelle est la différence entre les instructions ROLLBACK et ROLLBACK TO?
Répondre: La transaction est complètement terminée après l'instruction ROLLBACK, c'est-à-dire que la commande ROLLBACK a complètement annulé une transaction et libéré tous les verrous.
programme pour surveiller la température du processeur et du gpu
D'autre part, une transaction est toujours active et en cours d'exécution après la commande ROLLBACK TO car elle n'annule qu'une partie de la transaction jusqu'au SAVEPOINT donné.
Q # 17) Ecrivez un script PL / SQL pour afficher la série de nombres suivante: 99,96,93 …… 9,6,3?
Répondre
SET SERVER OUTPUT ON DECLARE BEGIN FOR i IN REVERSE 1..99 LOOP IF Mod(i,3) = 0 THEN DBMS_OUTPUT.PUT_LINE(i); END IF; END LOOP; END; /
Q # 18) Quels sont les 3 modes de paramètre?
Répondre: Les 3 modes du paramètre sont IN, OUT, IN OUT.
Ceux-ci peuvent être expliqués comme suit:
- Paramètres IN: Les paramètres IN vous permettent de transmettre des valeurs à la procédure appelée et peuvent être initialisés aux valeurs par défaut. Les paramètres IN agissent comme une constante et ne peuvent recevoir aucune valeur.
- Paramètres OUT: Les paramètres OUT renvoient une valeur à l'appelant et ils doivent être spécifiés. Les paramètres OUT agissent comme une variable non initialisée et ne peuvent pas être utilisés dans une expression.
- Paramètres IN OUT: Les paramètres IN OUT transmettent les valeurs initiales à une procédure et renvoient les valeurs mises à jour à l'appelant. Les paramètres IN OUT agissent comme une variable initialisée et doivent recevoir une valeur.
Q # 19) Pourquoi% ISOPEN est-il toujours faux pour un curseur implicite?
Répondre: Un curseur implicite, l'attribut SQL% ISOPEN est toujours faux car le curseur implicite est ouvert pour une instruction DML et est fermé immédiatement après l'exécution de l'instruction DML.
Q # 20) Lorsqu'une instruction DML est exécutée, dans quels attributs de curseur, le résultat de l'instruction est-il enregistré?
Répondre: Le résultat de l'instruction est enregistré dans 4 attributs de curseur.
Ceux-ci sont:
- SQL% TROUVÉ
- SQL% NOTFOUND
- SQL% ROWCOUNT
- SQL% ISOPEN
Q # 21) Quelles sont les façons de commenter dans un code PL / SQL?
Répondre: Les commentaires sont le texte qui est inclus avec le code pour améliorer la lisibilité et pour la compréhension du lecteur. Ces codes ne sont jamais exécutés.
Il existe deux façons de commenter en PL / SQL:
1) Commentaire sur une seule ligne: Ce commentaire commence par double -.
Exemple:
DÉCLARER
num NUMBER (2); - c'est une variable locale.
COMMENCER
2) Commentaire multiligne: Ce commentaire commence par / * et se termine par * /.
Exemple:
COMMENCER
num: = & p_num; / * Ceci est une variable hôte utilisée dans le corps du programme * /
……….
FINIR
Q # 22) Que comprenez-vous par la gestion des exceptions en PL / SQL?
Répondre: Lorsqu'une erreur se produit dans PL / SQL, l'exception est déclenchée. En d'autres termes, pour gérer les situations indésirables où les scripts PL / SQL se sont arrêtés de manière inattendue, un code de gestion des erreurs est inclus dans le programme. En PL / SQL, tout le code de gestion des exceptions est placé dans une section EXCEPTION.
Il existe 3 types d'EXCEPTION:
- Exceptions prédéfinies: Erreurs courantes avec des noms prédéfinis.
- Exceptions non définies: Erreurs moins courantes sans noms prédéfinis.
- Exceptions définies par l'utilisateur: Ne causez pas d'erreur d'exécution, mais enfreignez les règles métier.
Q # 23) Enrôlez des exceptions prédéfinies?
Répondre:
Certaines des exceptions prédéfinies sont:
- AUCUNE DONNÉE DISPONIBLE: Instruction SELECT à une seule ligne où aucune donnée n'est renvoyée.
- TOO_MANY_ROWS: Instruction SELECT à une seule ligne dans laquelle plusieurs lignes sont renvoyées.
- INVALID_CURSOR: Une opération de curseur illégale s'est produite.
- ZERO_DIVIDE: Tentative de division par zéro.
Q # 24) Que sont les exceptions de curseur PL / SQL?
Répondre:
Les exceptions liées aux curseurs PL / SQL sont:
- CURSOR_ALREADY_OPEN
- INVALID_CURSOR
Q # 25) Expliquez la différence entre le curseur déclaré dans les procédures et les curseurs déclarés dans la spécification du package?
Répondre: Le curseur déclaré dans la procédure est traité comme local et n'est donc pas accessible par d'autres procédures.
Le curseur déclaré dans la spécification du package est traité comme global et est donc accessible par d'autres procédures.
Q # 26) Que sont les déclencheurs AU LIEU DES déclencheurs?
Répondre: Les déclencheurs INSTEAD OF sont les déclencheurs écrits spécialement pour modifier les vues, qui ne peuvent pas être modifiés directement via des instructions SQL DML.
Q # 27) Que sont les expressions?
Répondre: Les expressions sont représentées par une séquence de littéraux et de variables séparés par des opérateurs. En PL / SQL, les opérations sont utilisées pour manipuler, comparer et calculer certaines données. Une expression est une composition d’opérateurs et d’opérandes.
- Opérandes: Ce sont un argument pour les opérateurs. Les opérandes peuvent être une variable, un appel de fonction ou une constante.
- Les opérateurs: Ceux-ci spécifient les actions à effectuer sur les opérateurs. Exemple: «+», «*», Etc.
Q # 28) Énumérez différents types d'expressions avec l'exemple.
Répondre: Les expressions peuvent être comme mentionné ci-dessous:
- Expressions numériques ou arithmétiques: Exemple: 20 * 10+ 15
- Expressions booléennes: Exemple: «Spot» COMME «sp% t»
- Expressions de chaîne: Exemple: LENGTH («NEW YORK» || «NY»)
- Expressions de date: Exemple: SYSDATE> TO_DATE ('15 -NOV-16 ', 'jj-mm-aa')
Q # 29) Écrivez un programme qui montre l'utilisation de la boucle WHILE pour calculer la moyenne des nombres entrés par l'utilisateur et l'entrée de plusieurs nombres est arrêtée en entrant le numéro 0?
Répondre
DECLARE n NUMBER; avg NUMBER :=0 ; sum NUMBER :=0 ; count NUMBER :=0 ; BEGIN n := &enter_a_number; WHILE(n0) LOOP count := count+1; sum := sum+n; n := &enter_a_number; END LOOP; avg := sum/count; DBMS_OUTPUT.PUT_LINE(‘the average is’||avg); END;
Q # 30) Qu'entendez-vous par PL / SQL Records?
Répondre: Un enregistrement PL / SQL peut être appelé une collection de valeurs ou, par exemple, un groupe de plusieurs éléments d'information, dont chacun est de types plus simples et peut être lié les uns aux autres en tant que champs.
Il existe trois types d'enregistrements pris en charge dans PL / SQL:
- Enregistrements basés sur des tables
- Enregistrements basés sur le programmeur
- Enregistrements basés sur le curseur
Conclusion
PL / SQL est très vaste en matière d'apprentissage et d'application. J'espère que ces questions et réponses d'entrevue vous aideront à passer.
Pour en savoir plus sur PL SQL, lisez notre Série de didacticiels PL / SQL .
Bon apprentissage!!
lecture recommandée
- Questions et réponses d'entrevue
- Questions et réponses d'entrevue de test ETL
- Top 30+ Questions et réponses populaires d'entrevue de concombre
- Top 30 des questions et réponses d'entrevue SAS
- Principales questions d'entretien d'Oracle: Questions Oracle Basic, SQL, PL / SQL
- Top 30 des questions et réponses pour l'entretien des tests de sécurité
- Plus de 30 questions et réponses sur les entretiens Scrum les plus populaires [LISTE 2021]
- Top 30 des questions et réponses d'entretien du SGBD