Βάσεις Δεδομένων II (Θ) Ενότητα 6: Τεχνολογία PL/SQL - cursors Χ. Σκουρλάς Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας Το.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Πηγές τάσης/ρεύματος R , L, C
Advertisements

Τέλος Ενότητας.
Βασικές αρχές ευρετηρίασης
Η ανοσοαποτύπωση ως επιβεβαιωτική μέθοδος
Τριφασικά συμμετρικά δίκτυα σε συνδεσμολογία Υ (1/2)
Αυτοματοποιημένη ευρετηρίαση
Διαμόρφωση πεδίων Περιγραφικά πεδία Διαχειριστικά πεδία Δομικά πεδία.
Εξευγενισμός φυτικών λαδιών
Άσκηση με αντίσταση Είναι ο οποιοσδήποτε τύπος ενεργητικής άσκησης στον οποίο η δυναμική ή στατική μυϊκή σύσπαση βρίσκει αντίσταση από μία εξωτερική.
Γενικά Ανιχνεύει μη αναμενόμενα (όχι του συστήματος ΑΒΟ) αλλοαντισώματα ή/και αυτοαντισώματα σε δείγμα ορού ασθενή. Ελέγχεται ο ορός σε 2-3 δείγματα.
Πολιτική πληροφόρησης Ενότητα 11: Ανακεφαλαίωση Μέρος Ι Δρ Αλέξανδρος Κουλούρης Τμήμα Βιβλιοθηκονομίας & Συστημάτων Πληροφόρησης Ανοικτά Ακαδημαϊκά Μαθήματα.
Διάνοιξη πόρων Με ακτινοβολούμενη θερμότητα. Θερμαινόμενα σίδερα.
Έλεγχος Ροής με την Εντολή Επανάληψης FOR 1/9
Καμπυλότητα Φακού P c
Δράση μάσκας Μείωση ερεθισμού και επαναφορά των διασταλμένων πόρων.
Παράγοντες που επηρεάζουν τη δύναμη ενός μυός 1/2
Ορισμός Μάλαξη είναι ένα σύστημα μηχανικών χειρισμών που εκτελούνται στην επιφάνεια του ανθρώπινου σώματος (εδώ στο πρόσωπο), με τα χέρια ή με ειδικά μηχανήματα.
Αλκίνια Χαρακτηριστική ομάδα: τριπλός δεσμός.
Περιγραφή Είναι κύματα που εκπέμπονται σε πολύ μεγάλες συχνότητες.
Αλδεΰδες και Κετόνες Δομή και ιδιότητες.
Σύσταση και Ανάλυση Γλευκών και Οίνων (Θ)
Τομογραφική Απεικονιστική Ανατομική Ενότητα 8: Τομογραφική ανατομική αγγειακού δένδρου - ΜRΑ Γεωργία Οικονόμου, Αναπληρώτρια Καθηγήτρια Τμήμα Ραδιολογίας.
Συστήματα Θεματικής Πρόσβασης (Θ) Ενότητα 5: Θεματική επεξεργασία απεικονιστικών τεκμηρίων Δάφνη Κυριάκη-Μάνεση Τμήμα Βιβλιοθηκονομίας και Συστημάτων Πληροφόρησης.
Μέρη μηχανής φύλλου όφσετ
Τεχνικές μάλαξης (Θ) Ενότητα 12: Μάλαξη και εναλλακτικές θεραπευτικές προσεγγίσεις Γεωργία Πέττα Τμήμα Φυσικοθεραπείας Ανοικτά Ακαδημαϊκά Μαθήματα στο.
Ψυχιατρική Ενότητα 17: Θεραπευτικές παρεμβάσεις στην ψυχιατρική Ευάγγελος Γ. Παπαγεωργίου Τμήμα Κοινωνικής Εργασίας Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ.
Υπηρεσίες Πληροφόρησης Ενότητα 7: Είδη υπηρεσιών πληροφόρησης – Εξυπηρέτηση (β’ μέρος) Δρ. Ευγενία Βασιλακάκη Τμήμα Βιβλιοθηκονομίας και Συστημάτων Πληροφόρησης.
Διατροφή- Διαιτολογία Ενότητα 18: Διατροφή και δυσλιπιδαιμίες Αναστασία Κανέλλου, καθηγήτρια Τμήμα Νοσηλευτικής Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας.
Αξιολόγηση επενδύσεων Ενότητα 2: Απλός και σύνθετος τόκος και Εισαγωγή στο EXCEL Εργαστήριο 2 ης Εβδομάδας Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων.
Τεχνολογία οφθαλμικών φακών Ι (Ε) Ενότητα 2: Διόρθωση αμετρωπιών με οφθαλμικούς φακούς Θεμιστοκλής Γιαλελής, Οπτικός, MSc, PhD candidate ΕΔΙΠ του τμήματος.
Τεχνολογία οφθαλμικών φακών Ι (Ε) Ενότητα 5: Έγχρωμοι φακοί Θεμιστοκλής Γιαλελής, Οπτικός, MSc, PhD candidate ΕΔΙΠ του τμήματος Οπτικής και Οπτομετρίας.
Eιδικά θέματα βάσεων χωρικών δεδομένων και θεωρία συστημάτων
Κανόνες Ασφαλείας Εργοταξίων
ΟΙΚΟΝΟΜΙΚΑ ΤΟΥ ΕΛΕΓΧΟΥ ΤΗΣ ΡΥΠΑΝΣΗΣ
Άλλες μορφές νευρώσεων
Επικοινωνιακός Προγραμματισμός Ι
Άσκηση 8 (1 από 3) Προβολές 1. Να επιλέξετε ένα θέμα βασισμένο σε κάποια παράγραφο / υποπαράγραφο του κεφαλαίου 6 των σημειώσεων και να κάνετε μια εργασία.
Τεχνολογία οφθαλμικών φακών Ι (Ε)
Υπολογιστική Γεωμετρία και Εφαρμογές στις ΒΧΔ
Ταυτότητα και περίγραμμα μαθήματος
ΠΡΟΤΥΠΟ ΕΛΟΤ EN ISO 3251 Ζύγιση μάζας υγρού μελανιού (m1 g)
Ενότητα 13 Αξιολόγηση μαθήματος και διδάσκοντος από την εφαρμογή της Μονάδας Ολικής Ποιότητας (ΜΟΔΙΠ) του ΤΕΙ Αθήνας Αξιολόγηση του μαθήματος Αξιολόγηση.
Περιγραφή Ενότητας Σκοπός του μαθήματος είναι η παρουσίαση δηλώσεων SQL που περιλαμβάνουν EXIST, ANY, ALL. Χ. Σκουρλάς.
Άσκηση 9 (1 από 2) Ανακαλύψτε στο χάρτη σας μερικά χαρτογραφικά αντικείμενα που να ανήκουν στις παρακάτω κατηγορίες : φυσικά, τεχνητές κατασκευές, αφηρημένα.
Τοπολογικές σχέσεις 1/3 Βρείτε και περιγράψτε τις τοπολογικές σχέσεις σύμφωνα με τους (Pantazis, Donnay 1996) για τα παρακάτω γεω-γραφικά αντικείμενα:
Επιλογή φλέβας για λήψη φλεβικού αίματος 1/7
Επικοινωνιακός Προγραμματισμός Ι
Εικαστικές συνθέσεις - Χρώμα στο χώρο
Γενική και Μαθηματική Χαρτογραφία (Ε)
Οργάνωση και Διοίκηση Πρωτοβάθμιας (Θ)
Λιθογραφία – Όφσετ (Θ) Ενότητα 8.2: Εκτυπωτική Διαδικασία Μηχανής
Επικοινωνιακός Προγραμματισμός Ι
Αισθητική Σώματος Ι (Ε)
Αισθητική Σώματος Ι (Ε)
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας
Ειδικά θέματα βάσεων χωρικών δεδομένων και θεωρία συστημάτων -E
Γενική και Μαθηματική Χαρτογραφία (Ε)
Αισθητική Σώματος Ι (Ε)
Ενότητα 8: Συστήματα Υγείας στην Ευρώπη: Γαλλία
Eιδικά θέματα βάσεων χωρικών δεδομένων και θεωρία συστημάτων -Θ
Συστήματα Θεματικής Πρόσβασης (Θ)
Ψυχιατρική Ενότητα 7: Συνέχεια σταδίων
Ανοσολογία (Ε) Ενότητα 3: Αιμοσυγκόλληση Πέτρος Καρκαλούσος
Γενική και Μαθηματική Χαρτογραφία (Ε)
Οργανική Χημεία (Ε) Ενότητα 2: Προσδιορισμός σημείου τήξης
Ενότητα 1: ……………….. Όνομα Επώνυμο Τμήμα __
Βάσεις Δεδομένων ΙΙ Ενότητα 6: Τεχνολογία PL/SQL - cursors Χ. Σκουρλάς
Ενότητα 6: Δονήσεις Γεωργία Πέττα Τμήμα Φυσικοθεραπείας
Αισθητική ηλεκτροθεραπεία σώματος
Επικοινωνιακός Προγραμματισμός Ι
Μεταγράφημα παρουσίασης:

Βάσεις Δεδομένων II (Θ) Ενότητα 6: Τεχνολογία PL/SQL - cursors Χ. Σκουρλάς Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

Τεχνολογία PL/SQL - cursors Στόχος / Σκοπός: Να βοηθήσει τους σπουδαστές να μάθουν να κατασκευάζουν και να χρησιμοποιούν cursors σε περιβάλλον PL/SQL σύμφωνα με τις ανάγκες των εφαρμογών βάσεων δεδομένων. 1

Παράδειγμα προγράμματος που χρησιμοποιεί Cursor Το πρόγραμμα βρίσκει όλους τους υπαλλήλους με μηνιαία αμοιβή μεγαλύτερη των 2000 ευρώ και ενημερώνει σχετικά τον πίνακα scoTop. Δημιουργούμε τον πίνακα της βάσης. CREATE TABLE scoEMP(EMPNO NUMBER(4) NOT NULL, ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR NUMBER(4), HIREDATE DATE, SAL NUMBER(7,2), COMM NUMBER(7,2), DEPTNO NUMBER(2), PRIMARY KEY(EMPNO)); Εισάγουμε τα στοιχεία του πίνακα. Για να λειτουργήσει το πρόγραμμά μας πρέπει αρχικά να δημιουργήσουμε τον πίνακα scoTop: CREATE TABLE scoTop(msg VARCHAR2(20), sal NUMBER(6), ename CHAR(10)); 2

EMPNOENAMEJOBMGRHIREDATESALCOMMDEPTNO 7369SMITHCLERK790217/12/ ALLENSALESMAN769820/02/ WARDSALESMAN769822/02/ JONESMANAGER783902/04/ MARTINSALESMAN769828/10/ BLAKEMANAGER783901/05/ CLARKMANAGER783909/06/ SCOTTANALYST756619/04/ KINGPRESIDENT-17/11/ TURNERSALESMAN769808/10/ ADAMSCLERK778823/05/ JAMESCLERK769803/12/ FORDANALYST756603/12/ MILLERCLERK778223/01/ BATESANALYST756623/01/ SELECT * FROM scoEMP 15 rows selected. 0,12 seconds 3

Πρόγραμμα με cursor DECLARE CURSOR scoCursor IS SELECT sal, ename FROM scoEmp; scoRec scoCursor%ROWTYPE; BEGIN OPEN scoCursor; LOOP FETCH scoCursor INTO scoRec; EXIT WHEN Scocursor%NOTFOUND; IF scoRec.sal > 2000 THEN INSERT INTO SCOTop VALUES(’σύνολο=’, scoRec.sal, scoRec.ename) END IF; END LOOP; CLOSE scoCursor; END; 4

Πρόγραμμα με cursor MSG SALΕΝΑΜΕ σύνολο= 2975JONES σύνολο= 2850BLAKE σύνολο= 2450CLARK σύνολο= 3000SCOTT σύνολο= 5000KING σύνολο= 3000FORD DECLARE CURSOR scoCursor IS SELECT sal, ename FROM scoEmp; scoRec scoCursor%ROWTYPE; BEGIN OPEN scoCursor; LOOP FETCH scoCursor INTO scoRec; EXIT WHEN scoCursor%NOTFOUND; IF scoRec.sal > 2000 THEN INSERT INTO scoTop VALUES(*συνολο=*, scoRec.sal, scoRec.ename) END IF; END LOOP; CLOSE scoCursor; END; 5

Η δήλωση του cursor γίνεται με την εντολή: DECLARE CURSOR scoCursor IS SELECT sal. ename FROM scoEmp; Η δήλωση του scoRec γίνεται με την εντολή : scoRec scoCursor%ROWTYPE; Η μορφή της εγγραφής «ταιριάζει» με τον cursor αφού χρησιμοποιήσαμε τον τύπο ROWTYPE. DECLARE CURSOR scoCursor IS SELECT sal, ename FROM scoEmp; scoRec scoCursor%ROWTYPE; BEGIN OPEN scoCursor; LOOP FETCH scoCursor INTO scoRec; EXIT WHEN scoCursor%NOTFOUND; IF scoRec.sal > 2000 THEN INSERT INTO scoTop VALUES(*συνολο=*, scoRec.sal, scoRec.ename) END IF; END LOOP; CLOSE scoCursor; END; 6

OPEN scoCursor; - Άνοιγμα Cursor Να ποιό είναι το περιεχόμενό του: (cursor) scoCursor ΕΝΑΜΕSAL SMITH800 ALLEN1600 WARD1250 JONES2975 MARTIN1250 BLAKE2850 CLARK2450 SCOTT3000 KING5000 TURNER1500 ADAMS1100 JAMES950 FORD3000 MILLER1300 BATES1300 DECLARE CURSOR scoCursor IS SELECT sal, ename FROM scoEmp; scoRec scoCursor%ROWTYPE; BEGIN OPEN scoCursor; LOOP FETCH scoCursor INTO scoRec; EXIT WHEN scoCursor%NOTFOUND; IF scoRec.sal > 2000 THEN INSERT INTO scoTop VALUES('σύνολο=', scoRec.sal, scoRec.ename) END IF; END LOOP; CLOSE scoCursor; END; 7

Τώρα θέλουμε να περάσουμε με τη σειρά όλες τις γραμμές αυτές στην εγγραφή ScoRec που ορίσαμε: DECLARE CURSOR scoCursor IS SELECT sal, ename FROM scoEmp; scoRec scoCursor%ROWTYPE; BEGIN OPEN scoCursor; LOOP FETCH scoCursor INTO scoRec; EXIT WHEN scoCursor%NOTFOUND; IF scoRec.sal > 2000 THEN INSERT INTO scoTop VALUES('σύνολο=', scoRec.sal, scoRec.ename) END IF; END LOOP; CLOSE scoCursor; END; 8

FETCH scoCursor INTO scoRec; ENAMESAL SMITH800 ALLEN1600 BATES1300 ENAMESAL SMITH800 ScoCursor scoRec DECLARE CURSOR scoCursor IS SELECT sal, ename FROM scoEmp; scoRec scoCursor%ROWTYPE; BEGIN OPEN scoCursor; LOOP FETCH scoCursor INTO scoRec; EXIT WHEN scoCursor%NOTFOUND; IF scoRec.sal > 2000 THEN INSERT INTO scoTop VALUES('σύνολο=', scoRec.sal, scoRec.ename) END IF; END LOOP; CLOSE scoCursor; END; 9

DECLARE CURSOR scoCursor IS SELECT sal, ename FROM scoEmp; scoRec scoCursor%ROWTYPE; BEGIN OPEN scoCursor; LOOP FETCH scoCursor INTO scoRec; EXIT WHEN scoCursor%NOTFOUND; IF scoRec.sal > 2000 THEN INSERT INTO scoTop VALUES('σύνολο=', scoRec.sal, scoRec.ename) END IF; END LOOP; CLOSE scoCursor; END; Mε τον παρακάτω βρόγχο μπορούμε να περάσουμε όλες τις γραμμές των αποτελεσμάτων διαδοχικά στην εγγραφή: LOOP FETCH scoRec INTO scoRec; EXIT WHEN scoCursor%NOTFOUND; 10

DECLARE CURSOR scoCursor IS SELECT sal, ename FROM scoEmp; scoRec scoCursor%ROWTYPE; BEGIN OPEN scoCursor; LOOP FETCH scoCursor INTO scoRec; EXIT WHEN scoCursor%NOTFOUND; IF scoRec.sal > 2000 THEN INSERT INTO scoTop VALUES('σύνολο=', scoRec.sal, scoRec.ename) END IF; END LOOP; CLOSE scoCursor; END; Μέσα στον βρόγχο και για κάθε γραμμή του cursor εξετάζουμε το μισθό sal και αν είναι μεγαλύτερος των 2000 ευρώ τότε καταχωρούμε όνομα και αμοιβή υπαλλήλου στον πίνακα scoTop: IF scoRec.sal > 2000 THEN INSERT INTO scoTop VALUES(‘σύνολο=':scoRec.sal:scoRec.ename): DBMS OUTPUT.PUT_LINE(scoRec.sal ||’ ’|| scoRec.ename); END IF: 11

1) %NOTFOUND LOOP FETCH scoCursor INTO scoRec; EXIT WHEN scoCursor%NOTFOUND ; other statements eg, IF... THEN... END IF; END LOOP; 2) %FOUND LOOP FETCH scoCursor INTO scoRec; IF scoCursor%FOUND THEN other statements ELSE EXIT; END IF; END LOOP; 12

3) %ROWCOUNT LOOP FETCH scoCursor INTO scoRec; IF scoCursor%ROWCOUNT <= v_num_rec -1 THEN /* where v_num_rec -1 is the number of the rows */ /* Στην ενότητα DECLARE δηλώνεται η μεταβλητή */ /* πχ. v_num_rec NUMBER(3)*/ other statements ELSE EXIT; END IF; END LOOP; 4)WHILE condition LOOP FETCH scoCursor INTO scoRec; other statements; END LOOP; 13

5)WHILE scoCursor%ROWCOUNT < v_num_rec -1 LOOP END LOOP; 6) v_counter := 1; FOR v_counterIN l..v_num_rec LOOP FETCH scoCursor INTO scoRec; v_counter := v_counter + 1; END LOOP; 7)WHILE scoCursor%FOUND LOOP FETCH... END LOOP; 14

Τέλος Ενότητας

Σημειώματα

Σημείωμα Αναφοράς Copyright Τεχνολογικό Εκπαιδευτικό Ίδρυμα Αθήνας, Χρήστος Σκουρλάς Χρήστος Σκουρλάς. «Βάσεις Δεδομένων II (Θ). Ενότητα 6: Τεχνολογία PL/SQL - cursors». Έκδοση: 1.0. Αθήνα Διαθέσιμο από τη δικτυακή διεύθυνση: ocp.teiath.gr.ocp.teiath.gr

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό. Οι όροι χρήσης των έργων τρίτων επεξηγούνται στη διαφάνεια «Επεξήγηση όρων χρήσης έργων τρίτων». Τα έργα για τα οποία έχει ζητηθεί άδεια αναφέρονται στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί.

Επεξήγηση όρων χρήσης έργων τρίτων Δεν επιτρέπεται η επαναχρησιμοποίηση του έργου, παρά μόνο εάν ζητηθεί εκ νέου άδεια από το δημιουργό. © διαθέσιμο με άδεια CC-BY διαθέσιμο με άδεια CC-BY-SA διαθέσιμο με άδεια CC-BY-NC-SA διαθέσιμο με άδεια CC-BY-NC Επιτρέπεται η επαναχρησιμοποίηση του έργου και η δημιουργία παραγώγων αυτού με απλή αναφορά του δημιουργού. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού, και διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η εμπορική χρήση του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού και διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια. Δεν επιτρέπεται η εμπορική χρήση του έργου. διαθέσιμο με άδεια CC-BY-ND Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η δημιουργία παραγώγων του έργου. διαθέσιμο με άδεια CC-BY-NC-ND Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η εμπορική χρήση του έργου και η δημιουργία παραγώγων του. διαθέσιμο με άδεια CC0 Public Domain διαθέσιμο ως κοινό κτήμα Επιτρέπεται η επαναχρησιμοποίηση του έργου, η δημιουργία παραγώγων αυτού και η εμπορική του χρήση, χωρίς αναφορά του δημιουργού. χωρίς σήμανσηΣυνήθως δεν επιτρέπεται η επαναχρησιμοποίηση του έργου.

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει:  το Σημείωμα Αναφοράς  το Σημείωμα Αδειοδότησης  τη δήλωση Διατήρησης Σημειωμάτων  το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους.

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στo πλαίσιo του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.