Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

ORACLE PL/SQL Cursors Μέρος 1.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "ORACLE PL/SQL Cursors Μέρος 1."— Μεταγράφημα παρουσίασης:

1 ORACLE PL/SQL Cursors Μέρος 1

2 ΟΡΙΣΜΟΣ Είναι ένας μηχανισμός με τον οποίο ονομάζουμε μια εντολή SELECT και διαχειριζόμαστε ξεχωριστά (ανά εγγραφή) τις πληροφορίες που η εντολή επιλέγει.

3 Σύνταξη Ρητών Cursors Σκοπός
Να χρησιμοποιούμε μεταβλητές PL/SQL τύπου Record Να γράφουμε βρόχους με Cursors

4 Για τους Cursors Κάθε εντολή SQL που εκτελείται απο τον Oracle Server έχει ενα ξεχωριστό Cursor συνδυασμένο με αυτήν. Έτσι έχουμε: άρρητους (implicit) Cursors που δηλώνονται απο το σύστημα για κάθε DML & SELECT και ρητούς (explicit) Cursors που δηλώνονται απο τον προγραμματιστή.

5 Λειτουργία των ρητών Cursors

6 Έλεγχος των ρητών Cursors

7 Δήλωση του ρητού Cursor
CURSOR cursor_name IS select_statement; Χωρίς ΙΝΤΟ Δεκτό το ORDER BY

8 Παράδειγμα Δήλωσης Cursor
DECLARE CURSOR emp_cursor IS SELECT empno, ename FROM emp; BEGIN …………..

9 Άνοιγμα Cursor Σύνταξη: ΟΡΕΝ Cursor_name
Απαραίτητο για να εκτελεσθεί το ερώτημα και να ανεβρεθεί το ενεργό σύνολο εγγραφών. Αν δεν ανεβρεθούν γραμμές δεν δημιουργείται συνθήκη εξαίρεσης Ο έλεγχος γίνεται μετά το FETCH.

10 Ανάκτηση Δεδομένων απο τον Cursor
Σύνταξη: FETCH Cursor_name INTO [variable1,variable2, …| record_name] ;. Οι στήλες και οι μεταβλητές πρέπει να συμπίπτουν ως προς την σειρά και τον τύπο. Δεν δημιουργείται κατάσταση λάθους αν τελειώσουν οι γραμμές.

11 Ανάκτηση Δεδομένων απο τον Cursor -Παραδείγματα
PL/SQL Developer Templates

12 Κλείσιμο του Cursor Σύνταξη: CLOSE Cursor_name
Κλείσιμο μετά την επεξεργασία όλων των γραμμών Μετά το close δεν εκτελείται κανένα fetch Μπορούμε να ανοίξουμε ξανά τον Cursor

13 CURSOR STATUS %ISOPEN %NOTFOUND %FOUND %ROWCOUNT

14 Έλεγχος επαναλαμβανόμενων Ανακτήσεων
Χρήση Βρόχου (Άρρητα OPEN και CLOSE) Fetch σε κάθε επανάληψη %NOTFOUND για έλεγχο Έλεγχος του STATUS.

15 Βρόχοι CURSOR με Υποερωτήματα
Δεν Δηλώνονται OPEN & CLOSE.

16 Παράδειγμα BEGIN FOR emp_record IN (SELECT ename, deptno FROM emp)
LOOP -- implicit OPEN …….. END LOOP; -- implicit CLOSE END;


Κατέβασμα ppt "ORACLE PL/SQL Cursors Μέρος 1."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google