Κορυφαίες ερωτήσεις συνέντευξης Oracle: Ερωτήσεις Oracle Basic, SQL, PL/SQL

Οι πιο συχνές ερωτήσεις και απαντήσεις σε συνεντεύξεις Oracle:

Κορυφαίες 40 ερωτήσεις συνέντευξης Oracle μαζί με απαντήσεις που καλύπτουν σχεδόν όλες τις βασικές έννοιες της Oracle.

Πρόκειται για μια σειρά ερωτήσεων σε βάθος που καλύπτει σχεδόν όλες τις ερωτήσεις συνέντευξης Oracle:

Μέρος #1: Ερωτήσεις Oracle Basic, SQL, PL/SQL (αυτό το άρθρο)

Μέρος #2: Ερωτήσεις για Oracle DBA, RAC και συντονισμό επιδόσεων

Μέρος #3: Ερωτήσεις συνέντευξης Oracle Forms and Reports

Μέρος #4: Τεχνικές ερωτήσεις συνέντευξης Oracle Apps και Oracle SOA

Ας ξεκινήσουμε με το 1ο άρθρο της σειράς.

Τύποι ερωτήσεων που καλύπτονται σε αυτό το άρθρο:

  • Βασικές ερωτήσεις συνέντευξης Oracle
  • Ερωτήσεις συνέντευξης Oracle SQL
  • Ερωτήσεις συνέντευξης Oracle PL/SQL

Θα βρείτε τα βασικά στοιχεία της Oracle εξηγημένα με απλά παραδείγματα για την κατανόησή σας. Εάν σκοπεύετε να εμφανιστείτε σε μια συνέντευξη για την Oracle, αυτές οι ομάδες ερωτήσεων που καλύπτονται σε αυτό το άρθρο θα σας βοηθήσουν σίγουρα πολύ.

Πάμε!!!

Κατάλογος των κορυφαίων ερωτήσεων συνέντευξης Oracle

Q #1) Τι είναι η Oracle και ποιες είναι οι διάφορες εκδόσεις της;

Απαντήστε: Η Oracle είναι μία από τις δημοφιλείς βάσεις δεδομένων που παρέχονται από την Oracle Corporation, η οποία λειτουργεί με βάση τις έννοιες της σχεσιακής διαχείρισης, και ως εκ τούτου αναφέρεται και ως Oracle RDBMS. Χρησιμοποιείται ευρέως για την ηλεκτρονική επεξεργασία συναλλαγών, την αποθήκευση δεδομένων και την επιχειρησιακή υπολογιστική πλέγματος.

Q #2) Πώς θα προσδιορίσετε την έκδοση λογισμικού Oracle Database;

Απαντήστε: Η Oracle ακολουθεί έναν αριθμό μορφών για κάθε έκδοση.

Για παράδειγμα ,

Η έκδοση 10.1.0.1.1 μπορεί να αναφέρεται ως:

10: Κύριος αριθμός έκδοσης DB

1: Αριθμός έκδοσης συντήρησης DB

0: Αριθμός έκδοσης διακομιστή εφαρμογών

1: Συστατικό Ειδικός αριθμός έκδοσης

1: Αριθμός έκδοσης συγκεκριμένης πλατφόρμας

Q #3) Πώς θα κάνετε διάκριση μεταξύ VARCHAR & VARCHAR2;

Απαντήστε: Τόσο ο VARCHAR όσο και ο VARCHAR2 είναι τύποι δεδομένων της Oracle που χρησιμοποιούνται για την αποθήκευση συμβολοσειρών χαρακτήρων μεταβλητού μήκους. Οι διαφορές τους είναι οι εξής:

  • Το VARCHAR μπορεί να αποθηκεύσει χαρακτήρες έως 2000 bytes, ενώ το VARCHAR2 μπορεί να αποθηκεύσει έως 4000 bytes.
  • Το VARCHAR θα κρατήσει το χώρο για τους χαρακτήρες που ορίζονται κατά τη δήλωση, ακόμη και αν δεν χρησιμοποιούνται όλοι, ενώ το VARCHAR2 θα απελευθερώσει τον αχρησιμοποίητο χώρο.

Ε #4) Ποια είναι η διαφορά μεταξύ των εντολών TRUNCATE & DELETE;

Απαντήστε: Και οι δύο εντολές χρησιμοποιούνται για τη διαγραφή δεδομένων από τη βάση δεδομένων.

Η διαφορά μεταξύ των δύο περιλαμβάνει:

  • Η TRUNCATE είναι μια λειτουργία DDL ενώ η DELETE είναι μια λειτουργία DML.
  • Η TRUNCATE αφαιρεί όλες τις γραμμές αλλά αφήνει ανέπαφη τη δομή του πίνακα. Δεν μπορεί να ανακληθεί, καθώς εκδίδει COMMIT πριν και μετά την εκτέλεση της εντολής, ενώ η εντολή DELETE μπορεί να ανακληθεί.
  • Η εντολή TRUNCATE θα απελευθερώσει το χώρο αποθήκευσης του αντικειμένου, ενώ η εντολή DELETE όχι.
  • Το TRUNCATE είναι ταχύτερο σε σύγκριση με το DELETE.

Q #5) Τι σημαίνει ο τύπος δεδομένων RAW;

Απαντήστε: Ο τύπος δεδομένων RAW χρησιμοποιείται για την αποθήκευση δυαδικών δεδομένων μεταβλητού μήκους ή συμβολοσειρών byte.

Η διαφορά μεταξύ των τύπων δεδομένων RAW & VARCHAR2 είναι ότι η PL/SQL δεν αναγνωρίζει αυτόν τον τύπο δεδομένων και, ως εκ τούτου, δεν μπορεί να κάνει μετατροπές όταν τα δεδομένα RAW μεταφέρονται σε διαφορετικά συστήματα. Αυτός ο τύπος δεδομένων μπορεί να ερωτηθεί ή να εισαχθεί μόνο σε έναν πίνακα.

Σύνταξη: RAW (ακρίβεια)

Q #6) Τι σημαίνει Joins; Αναφέρετε τους τύπους Joins.

Απαντήστε: Οι ενώσεις χρησιμοποιούνται για την εξαγωγή δεδομένων από πολλούς πίνακες χρησιμοποιώντας κάποιες κοινές στήλες ή συνθήκες.

Υπάρχουν διάφοροι τύποι Joins όπως αναφέρονται παρακάτω:

  • INNER JOIN
  • OUTER JOIN
  • CROSS JOINS ή CARTESIAN PRODUCT
  • EQUI JOIN
  • ANTI JOIN
  • SEMI JOIN

Q #7) Ποια είναι η διαφορά μεταξύ των συναρτήσεων SUBSTR & INSTR;

Απαντήστε:

  • Η συνάρτηση SUBSTR επιστρέφει το υπο-μέρος που προσδιορίζεται από αριθμητικές τιμές από την παρεχόμενη συμβολοσειρά.
    • Για παράδειγμα , [SELECT SUBSTR ('India is my country, 1, 4) from dual] θα επιστρέψει "Indi".
  • INSTR θα επιστρέψει τον αριθμό θέσης της υπο-οδηγίας μέσα στη συμβολοσειρά.
    • Για παράδειγμα , [SELECT INSTR ('India is my country, 'a') from dual] θα επιστρέψει 5.

Q #8) Πώς μπορούμε να βρούμε τις διπλές τιμές σε έναν πίνακα Oracle;

Απαντήστε: Μπορούμε να χρησιμοποιήσουμε το παρακάτω παράδειγμα ερωτήματος για να αντλήσουμε τις διπλές εγγραφές.

 SELECT EMP_NAME, COUNT (EMP_NAME) FROM EMP GROUP BY EMP_NAME HAVING COUNT (EMP_NAME)> 1, 

Q #9) Πώς η δήλωση ON-DELETE-CASCADE δουλειά;

Απαντήστε: Η χρήση της εντολής ON DELETE CASCADE θα διαγράψει αυτόματα μια εγγραφή στον πίνακα-παιδί όταν διαγραφεί η ίδια εγγραφή από τον πίνακα-γονέα. Η εντολή αυτή μπορεί να χρησιμοποιηθεί με ξένα κλειδιά.

Μπορούμε να προσθέσουμε την επιλογή ON DELETE CASCADE σε έναν υπάρχοντα πίνακα χρησιμοποιώντας το παρακάτω σύνολο εντολών.

Σύνταξη:

 ALTER TABLE CHILD_T1 ADD CONSTRAINT CHILD_PARENT_FK REFERENCES PARENT_T1 (COLUMN1) ON DELETE CASCADE, 

Q #10) Τι είναι μια συνάρτηση NVL; Πώς μπορεί να χρησιμοποιηθεί;

Απαντήστε: Η NVL είναι μια συνάρτηση που βοηθά τον χρήστη να αντικαταστήσει την τιμή αν συναντήσει null σε μια έκφραση.

Μπορεί να χρησιμοποιηθεί όπως η παρακάτω σύνταξη.

 NVL (Value_In, Replace_With) 

Q #11) Ποια είναι η διαφορά μεταξύ ενός πρωτεύοντος κλειδιού και ενός μοναδικού κλειδιού;

Απαντήστε: Το πρωτεύον κλειδί χρησιμοποιείται για τη μοναδική ταυτοποίηση κάθε γραμμής πίνακα, ενώ το μοναδικό κλειδί αποτρέπει τις διπλές τιμές σε μια στήλη του πίνακα.

Παρακάτω παρατίθενται μερικές διαφορές:

  • Το πρωτεύον κλειδί μπορεί να είναι μόνο ένα στον πίνακα, ενώ τα μοναδικά κλειδιά μπορούν να είναι πολλαπλά.
  • Το πρωτεύον κλειδί δεν μπορεί να περιέχει καθόλου μηδενική τιμή, ενώ το μοναδικό κλειδί επιτρέπει πολλαπλές μηδενικές τιμές.
  • Το πρωτεύον κλειδί είναι ένα ομαδοποιημένο ευρετήριο, ενώ το μοναδικό κλειδί είναι ένα μη ομαδοποιημένο ευρετήριο.

Q #12) Πώς διαφέρει η εντολή TRANSLATE από την εντολή REPLACE;

Απαντήστε: Η εντολή TRANSLATE μεταφράζει έναν προς έναν τους χαρακτήρες της παρεχόμενης συμβολοσειράς με τον χαρακτήρα αντικατάστασης. Η εντολή REPLACE αντικαθιστά έναν χαρακτήρα ή ένα σύνολο χαρακτήρων με μια πλήρη συμβολοσειρά αντικατάστασης.

Για παράδειγμα:

 TRANSLATE ('Missisippi','is','15) => M155151pp1 REPLACE ('Missisippi','is','15) => M15s15ippi 

Ε #13) Πώς μπορούμε να μάθουμε την τρέχουσα ημερομηνία και ώρα στην Oracle;

Απαντήστε: Μπορούμε να βρούμε την τρέχουσα ημερομηνία και ώρα χρησιμοποιώντας την εντολή SYSDATE στην Oracle.

Σύνταξη:

 SELECT SYSDATE into CURRENT_DATE from dual, 

Q #14) Γιατί χρησιμοποιούμε τη συνάρτηση COALESCE στην Oracle;

Απαντήστε: Η συνάρτηση COALESCE χρησιμοποιείται για να επιστρέψει την πρώτη μη μηδενική έκφραση από τη λίστα των ορίων που παρέχονται στην έκφραση. Πρέπει να υπάρχουν τουλάχιστον δύο ορίσματα σε μια έκφραση.

Σύνταξη:

 COALESCE (expr 1, expr 2, expr 3...expr n) 

Q #15) Πώς θα γράψετε ένα ερώτημα για να πάρετε τους μαθητές 5ης ΤΑΞΗΣ από τον πίνακα STUDENT_REPORT;

Απάντηση: Το ερώτημα θα έχει ως εξής:

 SELECT TOP 1 RANK FROM (SELECT TOP 5 RANK FROM STUDENT_REPORT ORDER BY RANK DESC) AS STUDENT ORDER BY RANK ASC, 

Q #16) Πότε χρησιμοποιούμε τη ρήτρα GROUP BY στο ερώτημα SQL;

Απαντήστε: Η ρήτρα GROUP BY χρησιμοποιείται για τον προσδιορισμό και την ομαδοποίηση των δεδομένων με βάση μία ή περισσότερες στήλες στα αποτελέσματα του ερωτήματος. Η ρήτρα αυτή χρησιμοποιείται συχνά με συναρτήσεις αθροίσματος όπως COUNT, MAX, MIN, SUM, AVG κ.λπ.

Σύνταξη:

 SELECT ΣΤΗΛΗ_1, ΣΤΗΛΗ_2 FROM TABLENAME WHERE [συνθήκη] GROUP BY ΣΤΗΛΗ_1, ΣΤΗΛΗ_2 

Q #17) Ποιος είναι ο ταχύτερος τρόπος για να αντλήσετε τα δεδομένα από έναν πίνακα;

Απαντήστε: Ο γρηγορότερος τρόπος για την άντληση των δεδομένων θα ήταν να χρησιμοποιήσετε το ROWID στο ερώτημα SQL.

Q #18) Πού χρησιμοποιούμε τις δηλώσεις DECODE και CASE;

Απαντήστε: Και οι δύο εντολές DECODE & CASE θα λειτουργήσουν όπως οι εντολές IF-THEN-ELSE και είναι οι εναλλακτικές η μία για την άλλη. Αυτές οι συναρτήσεις χρησιμοποιούνται στην Oracle για τον μετασχηματισμό των τιμών δεδομένων.

Για παράδειγμα:

Λειτουργία DECODE

 Επιλέξτε ORDERNUM, DECODE (STATUS,'O', 'ORDERED','P', 'PACKED,'S','SHIPPED','A','ARRIVED') FROM ORDERS, 

ΠΕΡΙΠΤΩΣΗ Λειτουργία

 Select ORDERNUM , CASE (WHEN STATUS ='O' then 'ORDERED' WHEN STATUS ='P' then PACKED WHEN STATUS ='S' then 'SHIPPED' ELSE 'ARRIVED') END FROM ORDERS, 

Και οι δύο εντολές θα εμφανίσουν τους αριθμούς παραγγελιών με την αντίστοιχη κατάστασή τους ως εξής,

Αν,

Κατάσταση O= Παραγγελία

Κατάσταση P= Συσκευασμένο

Κατάσταση S= Αποστολή

Κατάσταση A= Άφιξη

Ερώτηση #19) Γιατί χρειαζόμαστε περιορισμούς ακεραιότητας σε μια βάση δεδομένων;

Απαντήστε: Οι περιορισμοί ακεραιότητας απαιτούνται για την επιβολή επιχειρησιακών κανόνων, ώστε να διατηρείται η ακεραιότητα της βάσης δεδομένων και να αποτρέπεται η εισαγωγή μη έγκυρων δεδομένων στους πίνακες. Με τη βοήθεια των περιορισμών που αναφέρονται παρακάτω, μπορούν να διατηρηθούν σχέσεις μεταξύ των πινάκων.

Διάφοροι περιορισμοί ακεραιότητας είναι διαθέσιμοι, οι οποίοι περιλαμβάνουν Primary Key, Foreign Key, UNIQUE KEY, NOT NULL & CHECK.

Q #20) Τι εννοείτε με τον όρο MERGE στην Oracle και πώς μπορούμε να συγχωνεύσουμε δύο πίνακες;

Απαντήστε: Η δήλωση MERGE χρησιμοποιείται για τη συγχώνευση των δεδομένων από δύο πίνακες. Επιλέγει τα δεδομένα από τον πίνακα προέλευσης και τα εισάγει/ενημερώνει στον άλλο πίνακα με βάση τη συνθήκη που παρέχεται στο ερώτημα MERGE.

Σύνταξη:

 MERGE INTO TARGET_TABLE_1 USING SOURCE_TABLE_1 ON SEARCH_CONDITION WHEN MATCHED THEN INSERT (COL_1, COL_2...) VALUES (VAL_1, VAL_2...) WHERE  WHEN NOT MATCHED THEN UPDATE SET COL_1=VAL_1, COL_2=VAL_2... WHEN  

Q #21) Ποια είναι η χρήση των συναρτήσεων συνάθροισης στην Oracle;

Απαντήστε: Οι αθροιστικές συναρτήσεις εκτελούν συνοπτικές πράξεις σε ένα σύνολο τιμών για να παρέχουν μια ενιαία τιμή. Υπάρχουν διάφορες αθροιστικές συναρτήσεις που χρησιμοποιούμε στον κώδικά μας για την εκτέλεση υπολογισμών. Αυτά είναι:

  • AVG
  • MIN
  • MAX
  • COUNT
  • SUM
  • STDEV

Q #22) Τι πρέπει να κάνουν οι τελεστές συνόλων UNION, UNION ALL, MINUS και INTERSECT;

Απαντήστε: Ο τελεστής set διευκολύνει τον χρήστη να αντλεί δεδομένα από δύο ή περισσότερους από δύο πίνακες ταυτόχρονα, εάν οι στήλες και οι σχετικοί τύποι δεδομένων είναι οι ίδιοι στους πίνακες προέλευσης.

  • ΕΝΩΣΗ επιστρέφει όλες τις γραμμές και από τους δύο πίνακες εκτός από τις διπλές γραμμές.
  • ΕΝΩΣΗ ΟΛΩΝ επιστρέφει όλες τις γραμμές και από τους δύο πίνακες μαζί με τις διπλές γραμμές.
  • MINUS επιστρέφει γραμμές από τον πρώτο πίνακα, οι οποίες δεν υπάρχουν στον δεύτερο πίνακα.
  • INTERSECT επιστρέφει μόνο τις κοινές γραμμές και στους δύο πίνακες.

Q #23) Μπορούμε να μετατρέψουμε μια ημερομηνία σε char στην Oracle και αν ναι, ποια είναι η σύνταξη;

Απαντήστε: Μπορούμε να χρησιμοποιήσουμε τη συνάρτηση TO_CHAR για να κάνουμε την παραπάνω μετατροπή.

Σύνταξη:

 SELECT to_char (to_date ('30-01-2018', 'DD-MM-YYYY'), 'YYYY-MM-DD') FROM dual, 

Q #24) Τι εννοείτε με τον όρο database transaction & ποιες όλες οι εντολές TCL είναι διαθέσιμες στην Oracle;

Απαντήστε: Η συναλλαγή συμβαίνει όταν ένα σύνολο εντολών SQL εκτελείται ταυτόχρονα. Για τον έλεγχο της εκτέλεσης αυτών των εντολών, η Oracle έχει εισαγάγει την TCL, δηλαδή τις εντολές ελέγχου συναλλαγών, οι οποίες χρησιμοποιούν ένα σύνολο εντολών.

Το σύνολο των δηλώσεων περιλαμβάνει:

  • COMMIT: Χρησιμοποιείται για να καταστήσει μια συναλλαγή μόνιμη.
  • ROLLBACK: Χρησιμοποιείται για την αναδρομή της κατάστασης της ΒΔ στο τελευταίο σημείο δέσμευσης.
  • ΣΗΜΕΙΟ ΑΠΟΘΗΚΕΥΣΗΣ: Βοηθά στον καθορισμό ενός σημείου συναλλαγής στο οποίο μπορεί να γίνει επαναφορά αργότερα.

Ερώτηση #25) Τι εννοείτε με τον όρο αντικείμενο βάσης δεδομένων; Μπορείτε να απαριθμήσετε μερικά από αυτά;

Απαντήστε: Το αντικείμενο που χρησιμοποιείται για την αποθήκευση των δεδομένων ή των αναφορών των δεδομένων σε μια βάση δεδομένων είναι γνωστό ως αντικείμενο βάσης δεδομένων. Η βάση δεδομένων αποτελείται από διάφορους τύπους αντικειμένων ΒΔ, όπως πίνακες, προβολές, ευρετήρια, περιορισμοί, αποθηκευμένες διαδικασίες, εναύσματα κ.λπ.

Ερώτηση #26) Τι είναι ένας ένθετος πίνακας και πώς διαφέρει από έναν κανονικό πίνακα;

Απαντήστε: Ένας φωλιασμένος πίνακας είναι ένα αντικείμενο συλλογής βάσεων δεδομένων, το οποίο μπορεί να αποθηκευτεί ως στήλη σε έναν πίνακα. Κατά τη δημιουργία ενός κανονικού πίνακα, ένας ολόκληρος φωλιασμένος πίνακας μπορεί να αναφέρεται σε μία μόνο στήλη. Οι φωλιασμένοι πίνακες έχουν μόνο μία στήλη χωρίς περιορισμό των γραμμών.

Για παράδειγμα:

 ΔΗΜΙΟΥΡΓΊΑ ΠΊΝΑΚΑ EMP ( EMP_ID NUMBER, EMP_NAME TYPE_NAME) 

Εδώ, δημιουργούμε έναν κανονικό πίνακα ως EMP και αναφερόμαστε σε έναν ένθετο πίνακα TYPE_NAME ως στήλη.

Ε #27) Μπορούμε να αποθηκεύσουμε εικόνες σε μια βάση δεδομένων και αν ναι, πώς;

Απαντήστε: Το BLOB σημαίνει Binary Large Object (Δυαδικό Μεγάλο Αντικείμενο), ένας τύπος δεδομένων που χρησιμοποιείται γενικά για την αποθήκευση εικόνων, αρχείων ήχου, αρχείων βίντεο ή ορισμένων εκτελέσιμων δυαδικών αρχείων. Αυτός ο τύπος δεδομένων έχει τη δυνατότητα αποθήκευσης δεδομένων έως και 4 GB.

Q #28) Τι εννοείτε με τον όρο σχήμα βάσης δεδομένων και τι περιλαμβάνει;

Απαντήστε: Το σχήμα είναι μια συλλογή αντικειμένων της βάσης δεδομένων που ανήκει σε έναν χρήστη της βάσης δεδομένων, ο οποίος μπορεί να δημιουργήσει ή να χειριστεί νέα αντικείμενα εντός αυτού του σχήματος. Το σχήμα μπορεί να περιέχει οποιαδήποτε αντικείμενα της ΒΔ, όπως πίνακες, προβολές, ευρετήρια, συστάδες, αποθηκευμένες διαδικασίες, συναρτήσεις κ.λπ.

Q #29) Τι είναι ένα λεξικό δεδομένων και πώς μπορεί να δημιουργηθεί;

Απαντήστε: Κάθε φορά που δημιουργείται μια νέα βάση δεδομένων, δημιουργείται από το σύστημα ένα λεξικό δεδομένων για τη συγκεκριμένη βάση δεδομένων. Αυτό το λεξικό ανήκει στον χρήστη SYS και διατηρεί όλα τα μεταδεδομένα που σχετίζονται με τη βάση δεδομένων. Διαθέτει ένα σύνολο πινάκων και προβολών μόνο για ανάγνωση και αποθηκεύεται φυσικά στον χώρο πινάκων SYSTEM.

Q #30) Τι είναι μια προβολή και πώς διαφέρει από έναν πίνακα;

Απαντήστε: Η προβολή είναι ένα αντικείμενο βάσης δεδομένων που ορίζεται από τον χρήστη και χρησιμοποιείται για την αποθήκευση των αποτελεσμάτων ενός ερωτήματος SQL, τα οποία μπορούν να αναφερθούν αργότερα. Οι προβολές δεν αποθηκεύουν αυτά τα δεδομένα φυσικά αλλά ως εικονικό πίνακα, επομένως μπορούν να αναφέρονται ως λογικός πίνακας.

Η προβολή είναι διαφορετική από τον πίνακα:

  • Ένας πίνακας μπορεί να περιέχει δεδομένα, αλλά όχι τα αποτελέσματα ερωτημάτων SQL, ενώ η προβολή μπορεί να αποθηκεύσει τα αποτελέσματα του ερωτήματος, τα οποία μπορούν να χρησιμοποιηθούν σε άλλο ερώτημα SQL στο σύνολό τους.
  • Ο πίνακας μπορεί να ενημερωθεί ή να διαγραφεί, ενώ οι προβολές δεν μπορούν να ενημερωθούν ή να διαγραφούν.

Ερώτηση #31) Τι σημαίνει κατάσταση αδιεξόδου;

Απαντήστε: Το αδιέξοδο είναι μια κατάσταση κατά την οποία δύο ή περισσότεροι χρήστες περιμένουν ταυτόχρονα τα δεδομένα, τα οποία είναι κλειδωμένα ο ένας από τον άλλο. Ως εκ τούτου, έχει ως αποτέλεσμα όλες οι συνεδρίες χρηστών να μπλοκάρονται.

Q #32) Τι σημαίνει δείκτης;

Απαντήστε: Ένας δείκτης είναι ένα αντικείμενο σχήματος, το οποίο δημιουργείται για την αποτελεσματική αναζήτηση των δεδομένων εντός του πίνακα. Οι δείκτες δημιουργούνται συνήθως σε ορισμένες στήλες του πίνακα, στις οποίες υπάρχει η μεγαλύτερη πρόσβαση. Οι δείκτες μπορούν να είναι ομαδοποιημένοι ή μη ομαδοποιημένοι.

Q#33) Τι είναι ένας ΡΟΛΟΣ στη βάση δεδομένων Oracle;

Απαντήστε: Η παροχή πρόσβασης σε μεμονωμένα αντικείμενα σε μεμονωμένους χρήστες είναι μια δύσκολη διοικητική εργασία. Για να διευκολυνθεί αυτή η εργασία, δημιουργείται μια ομάδα κοινών προνομίων σε μια βάση δεδομένων, η οποία είναι γνωστή ως ΡΟΛΟΣ. Ο ΡΟΛΟΣ, αφού δημιουργηθεί, μπορεί να εκχωρηθεί στους χρήστες ή να ανακληθεί από αυτούς με τη χρήση της εντολής GRANT & REVOKE.

Σύνταξη:

 CREATE ROLE READ_TABLE_ROLE; GRANT SELECT ON EMP TO READ_TABLE_ROLE; GRANT READ_TABLE_ROLE TO USER1; REVOKE READ_TABLE_ROLE FROM USER1, 

Q #34) Ποια είναι τα χαρακτηριστικά που υπάρχουν σε ένα CURSOR;

Απάντηση: Ένα CURSOR έχει διάφορα χαρακτηριστικά που αναφέρονται παρακάτω:

(i) %FOUND :

  • Επιστρέφει INVALID_CURSOR εάν ο δρομέας έχει δηλωθεί αλλά έχει κλείσει.
  • Επιστρέφει NULL εάν δεν έχει γίνει η λήψη, αλλά ο δρομέας είναι μόνο ανοικτός.
  • Επιστρέφει TRUE, εάν η ανάκτηση των γραμμών ήταν επιτυχής και FALSE εάν δεν επιστραφεί καμία γραμμή.

(ii) ΔΕΝ ΒΡΕΘΗΚΕ :

  • Επιστρέφει INVALID_CURSOR εάν ο δρομέας έχει δηλωθεί αλλά έχει κλείσει.
  • Επιστρέφει NULL εάν δεν έχει γίνει η λήψη, αλλά ο δρομέας είναι μόνο ανοικτός.
  • Επιστρέφει FALSE, εάν οι σειρές ανακτήθηκαν επιτυχώς και TRUE εάν δεν επιστραφεί καμία σειρά.

(iii) %ISOPEN : Επιστρέφει TRUE, αν ο δρομέας είναι ΑΝΟΙΧΤΟΣ, αλλιώς FALSE

(iv) %ROWCOUNT : Επιστρέφει τον αριθμό των σειρών που έχουν ληφθεί.

Ερώτηση #35) Γιατί χρησιμοποιούμε %ROWTYPE & %TYPE στην PLSQL;

Απαντήστε: %ROWTYPE & %TYPE είναι τα χαρακτηριστικά στην PL/SQL που μπορούν να κληρονομήσουν τους τύπους δεδομένων ενός πίνακα που ορίζεται σε μια βάση δεδομένων. Ο σκοπός της χρήσης αυτών των χαρακτηριστικών είναι η παροχή ανεξαρτησίας και ακεραιότητας δεδομένων.

Εάν κάποιος από τους τύπους δεδομένων ή η ακρίβεια αλλάξει στη βάση δεδομένων, ο κώδικας PL/SQL ενημερώνεται αυτόματα με τον αλλαγμένο τύπο δεδομένων.

Το %TYPE χρησιμοποιείται για τη δήλωση μιας μεταβλητής που πρέπει να έχει τον ίδιο τύπο δεδομένων με τον τύπο μιας στήλης πίνακα.

Ενώ το %ROWTYPE θα χρησιμοποιείται για τον ορισμό μιας πλήρους σειράς εγγραφών με δομή παρόμοια με τη δομή ενός πίνακα.

Ερώτηση #36) Γιατί δημιουργούμε Stored Procedures & Functions στην PL/SQL και πώς διαφέρουν;

Απαντήστε: Μια αποθηκευμένη διαδικασία είναι ένα σύνολο εντολών SQL που έχουν γραφτεί για την εκτέλεση μιας συγκεκριμένης εργασίας. Αυτές οι εντολές μπορούν να αποθηκευτούν ως ομάδα στη βάση δεδομένων με ένα όνομα που τους έχει αποδοθεί και μπορούν να διαμοιραστούν με διαφορετικά προγράμματα, εάν υπάρχουν δικαιώματα πρόσβασης σε αυτές.

Οι συναρτήσεις είναι και πάλι υποπρογράμματα που γράφονται για να εκτελούν συγκεκριμένες εργασίες, αλλά υπάρχουν διαφορές μεταξύ τους.

Αποθηκευμένες διαδικασίες Λειτουργίες

Οι αποθηκευμένες διαδικασίες μπορεί να επιστρέφουν ή να μην επιστρέφουν μια τιμή και μπορούν επίσης να επιστρέφουν πολλαπλές τιμές. Η συνάρτηση θα επιστρέφει πάντα μόνο μία τιμή.
Οι αποθηκευμένες διαδικασίες μπορούν να περιλαμβάνουν εντολές DML όπως εισαγωγή, ενημέρωση και διαγραφή. Δεν μπορούμε να χρησιμοποιήσουμε δηλώσεις DML σε μια συνάρτηση.
Οι αποθηκευμένες διαδικασίες μπορούν να καλούν συναρτήσεις. Οι συναρτήσεις δεν μπορούν να καλέσουν αποθηκευμένες διαδικασίες.
Οι αποθηκευμένες διαδικασίες υποστηρίζουν το χειρισμό εξαιρέσεων χρησιμοποιώντας το μπλοκ Try/Catch. Οι συναρτήσεις δεν υποστηρίζουν το μπλοκ Try/Catch.

Q #37) Ποιες είναι οι παράμετροι που μπορούμε να περάσουμε μέσω μιας αποθηκευμένης διαδικασίας;

Απαντήστε: Μπορούμε να περάσουμε παραμέτρους IN, OUT & INOUT μέσω μιας αποθηκευμένης διαδικασίας και θα πρέπει να ορίζονται κατά τη δήλωση της ίδιας της διαδικασίας.

Q #38) Τι είναι η σκανδάλη και ποιοι είναι οι τύποι της;

Απαντήστε: Ένα έναυσμα είναι ένα αποθηκευμένο πρόγραμμα που έχει γραφτεί με τέτοιο τρόπο ώστε να εκτελείται αυτόματα όταν συμβαίνει κάποιο συμβάν. Το συμβάν αυτό μπορεί να είναι οποιαδήποτε DML ή μια λειτουργία DDL.

Η PL/SQL υποστηρίζει δύο τύπους σκανδάλων:

  • Επίπεδο γραμμής
  • Επίπεδο δήλωσης

Ερώτηση #39) Πώς θα διακρίνετε μια παγκόσμια μεταβλητή από μια τοπική μεταβλητή στην PL/SQL;

Απαντήστε: Παγκόσμια μεταβλητή είναι αυτή που ορίζεται στην αρχή του προγράμματος και επιβιώνει μέχρι το τέλος. Μπορεί να προσπελαστεί από οποιεσδήποτε μεθόδους ή διαδικασίες εντός του προγράμματος, ενώ η πρόσβαση στην τοπική μεταβλητή περιορίζεται στη διαδικασία ή τη μέθοδο όπου έχει δηλωθεί.

Q #40) Ποια είναι τα πακέτα στην PL SQL;

Απαντήστε: Ένα πακέτο είναι μια ομάδα συναφών αντικειμένων της βάσης δεδομένων, όπως αποθηκευμένα προγράμματα, συναρτήσεις, τύποι, πυροκροτητές, δρομείς κ.λπ. που είναι αποθηκευμένα στη βάση δεδομένων της Oracle. Είναι ένα είδος βιβλιοθήκης συναφών αντικειμένων στα οποία μπορούν να έχουν πρόσβαση πολλές εφαρμογές, εφόσον επιτρέπεται.

Η δομή του πακέτου PL/SQL αποτελείται από 2 μέρη: προδιαγραφή πακέτου και σώμα πακέτου.

Συμπέρασμα

Ελπίζω οι παραπάνω ερωτήσεις να σας βοήθησαν να πάρετε μια ιδέα για το τι σημαίνει Oracle.

Ακόμα και αν γνωρίζετε σε βάθος όλες τις βασικές έννοιες, ο τρόπος με τον οποίο τις παρουσιάζετε στη συνέντευξη έχει μεγάλη σημασία. Ως εκ τούτου, παραμείνετε ψύχραιμοι και αντιμετωπίστε τη συνέντευξη με αυτοπεποίθηση χωρίς κανένα δισταγμό.

Διαβάστε το επόμενο μέρος 2: Ερωτήσεις για Oracle DBA, RAC και ρύθμιση επιδόσεων

Σας ευχόμαστε κάθε επιτυχία!!

Συνιστώμενη ανάγνωση

    Κύλιση στην κορυφή