Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Kursor Ref Kuat Dengan Tipe Data Rekaman Berbasis Tabel

Kursor Ref Kuat Dengan Tipe Data Record Berbasis Tabel

Seperti yang kita pelajari di pengantar Ref Cursors bahwa ada dua jenis PL/SQL Ref Cursors di Oracle Database.

  1. Kursor Ref Kuat dan
  2. Kursor Ref Lemah

Kami akan mengeksplorasi semua konsep dari kedua jenis Kursor Ref ini dalam seri ini. Dengan blog ini kita akan mulai dengan yang pertama yaitu Strong Ref Cursors dengan tipe data record berbasis tabel dan tipe data record yang ditentukan pengguna.

Apa yang dimaksud dengan PL/SQL Strong Ref Cursors di Oracle Database?

Kursor ref yang memiliki tipe pengembalian tetap disebut Strong Ref Cursor di Oracle Database. Karena tipe pengembalian tetap, kursor ref yang kuat hanya dapat digunakan secara selektif. Misalnya dengan pernyataan SELECT yang mengembalikan hasil yang tipe datanya cocok dengan yang telah Anda perbaiki selama deklarasi kursor.

Dapatkah kita menggunakan Strong Ref Cursor dengan pernyataan SELECT di Oracle Database?

Tidak, kami tidak dapat menggunakan Strong Ref Cursors dengan pernyataan SELECT apa pun. Ini karena 'Jenis Pengembalian' yang diperbaiki.

Meskipun demikian itu hanya dapat digunakan dengan pernyataan SELECT yang mengembalikan hasil yang tipe datanya cocok dengan 'Klausul Pengembalian' kursor.

Dapatkah kita menggunakan tipe data PL/SQL untuk mendeklarasikan Strong Ref Cursor kita?

Tidak, kita tidak bisa. Selain itu, tipe kembalinya kursor ref yang kuat harus selalu berupa Record Datatype. Ini bisa berupa tipe data Catatan Berbasis Tabel atau Tipe Data Catatan Buatan Pengguna.

Contoh Kursor Ref Kuat Dengan Tipe Data Record Berbasis Tabel

Mari kita menulis sebuah contoh. Disini kita akan membuat Strong Ref Cursor dengan Table Based Record Datatype.

 SET SERVEROUTPUT ON
 DECLARE
    	/*Create Ref Pointer Type*/
	TYPE	my_RefCur	IS REF CURSOR RETURN 	employees%ROWTYPE;
	/*Create Cursor Variable*/
	cur_var my_RefCur;
	rec_var     employees%ROWTYPE;
 BEGIN
	OPEN cur_var FOR SELECT * FROM employees WHERE employee_id = 100;
	FETCH cur_var INTO rec_var;
	CLOSE cur_var;
	DBMS_OUTPUT.PUT_LINE ('Employee '||rec_var.first_name||' has salary '||rec_var.salary||'.');
END;
/

Pembuatan Kursor Ref adalah proses dua langkah.

Buat jenis penunjuk referensi.

Pertama kita perlu membuat tipe pointer ref. Jadi, dengan menggunakan pernyataan TYPE kita membuat pointer Ref Cursor Type seperti pada kode di atas. Dalam pernyataan ini Anda pertama-tama menulis kata kunci TYPE diikuti dengan nama kursor ref Anda. Setelah itu Anda harus menulis frasa khusus IS REF CURSOR. Ini akan memberi tahu kompiler bahwa kita sedang membuat tipe yang REF CURSOR. Diikuti dengan itu Anda harus menentukan klausa RETURN.

Misalnya

TYPE	my_RefCur	IS REF CURSOR RETURN 	employees%ROWTYPE;

Buat Variabel Kursor

Pada langkah kedua kita membuat variabel kursor. Untuk membuat variabel kursor Anda harus terlebih dahulu menulis nama variabel Anda diikuti dengan nama kursor Ref Anda. Setelah itu variabel ini akan digunakan untuk merujuk ke Ref Cursor di mana ia dibuat.

Misalnya

cur_var my_RefCur;

Selain Variabel Kursor dalam kode di atas, kami juga memiliki variabel tambahan. Ini lagi-lagi dari tipe data record berbasis tabel dan dirancang menggunakan tabel 'Karyawan'. Selain itu, variabel ini akan menampung data yang diambil dari kursor.

rec_var     employees%ROWTYPE;

Bagian Eksekusi

Di bagian eksekusi kode kami, kami memiliki empat pernyataan yang dapat dieksekusi. Biarkan saya menjelaskan ini kepada Anda.

  1. pernyataan TERBUKA UNTUK

Pernyataan pertama adalah pernyataan OPEN FOR. Ini mengaitkan pernyataan SELECT dengan variabel Kursor dan membuka kursor untuk pernyataan tersebut. Selain itu, ia juga mencari semua sumber daya yang diperlukan untuk memproses pernyataan SELECT.

  1. PERNYATAAN FETCH

Seperti yang telah kita bahas dalam tutorial PL/SQL 26. Proses mengambil data dari kursor disebut fetching. Oleh karena itu di sini kita mengambil data dari Ref Cursor ke dalam variabel record 'Rec_Var'.

  1. Tutup Pernyataan

Setelah kita selesai dengan kursor kita maka disarankan untuk menutupnya sehingga Oracle Engine / Server kita dapat melepaskan semua sumber daya yang terkait dengannya. Itulah tepatnya yang telah kami lakukan dalam pernyataan ketiga. Menggunakan kata kunci CLOSE diikuti oleh variabel kursor, kami menutup kursor referensi kami.

  1. Pernyataan keluaran

Pernyataan keempat adalah pernyataan DBMS_OUTPUT. Ini akan menampilkan kembali nama depan dan gaji karyawan dengan id karyawan 100.

Anda dapat menonton tutorial PL/SQL 33 untuk mempelajari cara kerja variabel record berbasis tabel.

Jadi Kesimpulannya…

Pada kode di atas kami membuat PL/SQL Strong Ref Cursor dengan nama 'my_RefCur' yang akan mengembalikan tipe data record berbasis tabel hasil. Selanjutnya tipe data record berbasis tabel ini didukung pada tabel Karyawan skema SDM. Jadi sebelum menjalankan program ini, kita perlu memastikan bahwa kita terhubung ke skema HR dari database kita.

Apalagi jika Anda belajar lebih baik dengan menonton video maka inilah satu untuk Anda. Silakan &periksa.

Itulah tutorial cara membuat PL/SQL Ref Cursors yang kuat menggunakan tipe data record berbasis tabel di Oracle Database. Semoga Anda belajar sesuatu yang baru. Selain itu, pastikan untuk membagikan blog ini ke media sosial Anda dengan teman-teman Anda.

Terimakasih telah berkunjung. Tetap disini karena pada tutorial berikutnya kita akan belajar cara membuat kursor ref yang kuat dengan variabel record yang ditentukan pengguna.

Semoga harimu menyenangkan!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memahami Tipe Data SQL – Yang Perlu Anda Ketahui Tentang Tipe Data SQL

  2. Operator SQL NOT untuk Pemula

  3. Membuat Database di Situs Cloud

  4. Dapatkan dinyalakan oleh Apache Spark – Bagian 2

  5. Pola Data Referensi:Dapat Diperluas dan Fleksibel