Belajar PostgreSQL - Contoh Pengguna Cursor di Postgres - Java Community

Belajar PostgreSQL - Contoh Pengguna Cursor di Postgres

Pada tutorial kali saya akan membahas PL/pgSQL mengenai Cursor dan bagaimana cara penggunaannya. Dengan menggunakan Cursor memungkinkan kalian merangkum Query dan memprosesnya dalam satu waktu.

Biasanya, saya menggunakan Cursor saat saya ingin membagi hasil Query yang besar menjadi beberapa bagian dan memproses setiap bagian satu per satu. Jika kalian memprosesnya sekaligus, Anda mungkin mengalami memory overflow error.

Selain itu, kalian juga dapat membuat Function yang mengembalikan referensi ke Cursor dan ini merupakan cara yang efektif untuk mengembalikan hasil Query yang besar dari suatu Function.

Persiapan

Pada contoh penggunaan cursor kali ini saya menggunakan PostgreSQL 14 dengan port 7117.
Buat DB
CREATEDB -U postgres -p 7117 db_penjualan;
  
Membuat Tabel
CREATE TABLE master_produk
(
    id bigserial NOT NULL,
    kode_produk character varying(255),
    nama_produk character varying(255),
    CONSTRAINT id_produk_pk PRIMARY KEY (id)
);
Insert Data
INSERT INTO master_produk(id, kode_produk, nama_produk) 
VALUES (1, 'A101', 'PC Unit');
INSERT INTO master_produk(id, kode_produk, nama_produk) 
VALUES (2, 'A102', 'Mouse Wireless');
INSERT INTO master_produk(id, kode_produk, nama_produk) 
VALUES (3, 'A103', 'Keyboard Gaming');
INSERT INTO master_produk(id, kode_produk, nama_produk) 
VALUES (4, 'A104', 'Layar LED 40 Inchi');
INSERT INTO master_produk(id, kode_produk, nama_produk) 
VALUES (5, 'A105', 'Flash Disk 8Gb');
  
Function CURSOR
CREATE OR REPLACE FUNCTION data_produk(refcursor)
RETURNS refcursor AS $$
BEGIN
	OPEN $1 FOR SELECT * FROM master_produk ORDER BY kode_produk;
	RETURN $1;
END;
$$
LANGUAGE plpgsql
Contoh 1
SELECT data_produk('cursor');
FETCH ALL IN "cursor";
Gambar 1

Penjelasan
Pada Contoh 1, kita melakukan pemanggilan cursor untuk menampilkan semua data produk dengan cara menjalankan 2(dua) perintah tersebut secara bersamaan.
Contoh 2
BEGIN;

SELECT data_produk('cursor');
FETCH 3 IN "cursor";

COMMIT;
Belajar PostgreSQL - Contoh Pengguna Cursor di Postgres
Gambar 2

Gambar 3

Penjelasan
Pada Contoh 2, kita melakukan pemanggilan cursor untuk menampilkan data produk per 3(tiga) data atau baris. Cara memanggilnya seperti berikut :
  • Eksekusi Baris Pertama BEGIN;
  • Eksekusi Baris Ke-dua SELECT data_produk('cursor');
  • Eksekusi Baris Ke-tiga FETCH 3 IN "cursor";, maka akan menampilkan 3(tiga) data atau baris
  • Eksekusi Baris Ke-tiga FETCH 3 IN "cursor";, maka akan menampilkan 2(dua) data atau baris (dikarenakan jumlah data yang ada berjumlah 5(lima))
  • Eksekusi Baris Ke-empat COMMIT; untuk mengakhiri sesi Cursor

Sekian tutorial contoh penggunaan Cursor di PostgreSQL, semoga bermanfaat.

Subscribe to receive free email updates:

0 Response to "Belajar PostgreSQL - Contoh Pengguna Cursor di Postgres"

Posting Komentar