Pengertian Cursor Oracle Dan Contoh Program

    

Pengertian Cursor

    Cursor Merupakan pointer ke daerah konteks ini. PL/SQL mengontrol area konteks melalui kursor.Cursor menahan baris (satu atau lebih) yang dikembalikan oleh pernyataan SQL. Himpunan baris yang dipegang kursor disebut sebagai himpunan aktif user memberi nama kursor sehingga dapat dirujuk dalam program untuk mengambil dan memproses baris yang dikembalikan oleh pernyataan SQL, satu per satu. Ada dua jenis kursor   


A.Cursor Implisit

    Cursor implisit secara otomatis dibuat oleh Oracle setiap kali pernyataan SQL dijalankan, ketika tidak ada kursor eksplisit untuk pernyataan tersebut. Pemrogram tidak dapat mengontrol kursor implisit dan informasi di dalamnya. Setiap kali pernyataan DML (INSERT, UPDATE dan DELETE) dikeluarkan, kursor implisit dikaitkan dengan pernyataan ini. Untuk operasi INSERT, kursor menyimpan data yang perlu dimasukkan. Untuk operasi UPDATE dan DELETE, kursor mengidentifikasi baris yang akan terpengaruh.

B.Atribut Cursor


C.Contoh program Implisit


contoh program implisit SQL%FOUND


    pernyataan manipulasi data SQL dijalankan, %FOUNDmenghasilkan NULL. Setelah itu, %FOUNDmenghasilkan TRUEjika INSERT, UPDATE, atau DELETEpernyataan memengaruhi satu atau lebih baris, atau SELECT INTOpernyataan mengembalikan satu atau lebih baris. Jika tidak, %FOUNDhasil FALSE. Dalam Contoh user menggunakan gunakan %FOUNDuntuk menyisipkan baris jika penghapusan berhasil.

Contoh SQL%ROWCOUNT


    Jika sebuah SELECT INTOpernyataan mengembalikan lebih dari satu baris, PL/SQL memunculkan pengecualian yang telah ditentukan sebelumnya TOO_MANY_ROWSdan %ROWCOUNTmenghasilkan 1, bukan jumlah baris aktual yang memenuhi kueri. Nilai SQL%ROWCOUNTatribut mengacu pada pernyataan SQL yang paling baru dieksekusi dari PL/SQL. Untuk menyimpan nilai atribut untuk digunakan nanti, tetapkan ke variabel lokal segera.

D.Pertimbangan penggunaan atribut cursor implisit

  • Nilai atribut kursor selalu mengacu pada pernyataan SQL yang paling baru dieksekusi, di mana pun pernyataan itu berada. Mungkin dalam lingkup yang berbeda (misalnya, dalam sub-blok). Untuk menyimpan nilai atribut untuk digunakan nanti, tetapkan ke variabel lokal segera. Melakukan operasi lain, seperti pemanggilan prosedur, mungkin mengubah nilai variabel sebelum Anda dapat mengujinya.
  • SQL%NOTFOUNDatribut tidak berguna dalam kombinasi dengan SELECT INTO pernyataan:
    1. Jika SELECT INTO pernyataan gagal mengembalikan baris, PL/SQL segera memunculkan pengecualian yang telah ditentukan NO_DATA_FOUND, mengganggu aliran kontrol sebelum Anda dapat memeriksa %NOTFOUND. 
    2. Sebuah SELECT INTOpernyataan yang memanggil SQL fungsi agregat selalu mengembalikan nilai atau null. Setelah pernyataan seperti itu, %NOTFOUNDatributnya selalu FALSE, jadi tidak perlu memeriksanya. 

E.Cursor Enkripsi

    Cursor eksplisit merupakan kursor yang ditentukan pemrogram untuk mendapatkan kontrol lebih besar atas area konteks . Kursor eksplisit harus didefinisikan di bagian deklarasi Blok PL/SQL. Itu dibuat pada Pernyataan SELECT yang mengembalikan lebih dari satu baris. Syntak yang digunakan:
CURSOR cursor_name IS select_statement; 
Contoh: 
DECLARE 
Cursor emp_cursor IS 
Select employee_id, last_name
FROM employees 
WHERE department_id = 30; 

F.Mendeklarasikan Cursor Enkripsi

    mendeklarasikan cursor sebelum mereferensikannya ke pernyataan lain. terlebih dahulu memberi kursor nama dan mengaitkannya dengan kueri tertentu.user dapat secara opsional mendeklarasikan tipe pengembalian untuk kursor, seperti table_name%ROWTYPE. Anda dapat secara opsional menentukan parameter yang Anda gunakan dalam WHEREklausa alihalih merujuk ke variabel lokal. Parameter ini dapat memiliki nilai default. Contoh:

Kursor bukan variabel PL/SQL: User tidak dapat menetapkan nilai ke kursor atau menggunakannya dalam ekspresi. Kursor dan variabel mengikuti aturan pelingkupan yang sama. Penamaan kursor setelah tabel database dimungkinkan tetapi tidak disarankan. Kursor dapat mengambil parameter, yang dapat muncul dalam kueri terkait di mana pun konstanta dapat muncul. Parameter formal kursor harus IN parameter; mereka memberikan nilai dalam kueri, tetapi tidak mengembalikan nilai apa pun dari kueri. Anda tidak dapat memaksakan batasan NOT NULLpada parameter kursor.
Seperti yang ditunjukkan contoh berikut:

Parameter kursor dapat direferensikan hanya dalam kueri yang ditentukan dalam deklarasi kursor. Nilai parameter digunakan oleh kueri terkait saat kursor dibuka 

Contoh Program Enkripsi:


Link Download materi Klik Disini

Tonton Youtube


Posting Komentar

0 Komentar