Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:
Databricks Runtime 18.1 ke atas
Menutup kursor terbuka dan melepaskan sumber dayanya.
Pernyataan CLOSE menutup kursor yang sebelumnya dibuka dengan OPEN, membebaskan memori dan sumber daya yang terkait dengan tataan hasilnya. Setelah ditutup, kursor dapat dibuka kembali dengan OPEN untuk menjalankan kueri lagi dengan pengikatan parameter baru.
Pernyataan ini hanya dapat digunakan dalam pernyataan gabungan .
Syntax
CLOSE cursor_name
Parameter-parameternya
-
Nama kursor terbuka. Kursor dapat secara opsional memenuhi syarat dengan label pernyataan gabungan (misalnya,
outer_label.my_cursor).
Catatan
Menutup kursor yang tidak terbuka menimbulkan CURSOR_NOT_OPEN.
Kursor ditutup secara otomatis dalam skenario berikut:
- Ketika pernyataan gabungan keluar karena pengecualian yang tidak tertangani (lihat Kondisi kesalahan).
- Ketika handler
EXITdipicu (semua kursor dalam pernyataan senyawa dan senyawa berlapis ditutup). - Ketika pernyataan senyawa yang menyatakan mereka keluar secara normal.
Menutup kursor tidak memengaruhi deklarasi kursor. Nama kursor tetap berada dalam cakupan dan dapat dibuka kembali.
Contoh
-- Basic cursor lifecycle
> BEGIN
DECLARE x INT;
DECLARE my_cursor CURSOR FOR SELECT id FROM range(3);
OPEN my_cursor;
FETCH my_cursor INTO x;
VALUES (x);
CLOSE my_cursor;
END;
0
-- Close cursor in handler
> BEGIN
DECLARE x INT;
DECLARE my_cursor CURSOR FOR SELECT id FROM range(2);
DECLARE EXIT HANDLER FOR NOT FOUND
BEGIN
CLOSE my_cursor;
VALUES ('Cursor closed on completion');
END;
OPEN my_cursor;
REPEAT
FETCH my_cursor INTO x;
UNTIL false END REPEAT;
END;
Cursor closed on completion
-- Reopen cursor with different parameters
> BEGIN
DECLARE result STRING DEFAULT '';
DECLARE x INT;
DECLARE param_cursor CURSOR FOR SELECT id FROM range(10) WHERE id = ?;
OPEN param_cursor USING 3;
FETCH param_cursor INTO x;
SET result = 'First open: ' || CAST(x AS STRING);
CLOSE param_cursor;
OPEN param_cursor USING 7;
FETCH param_cursor INTO x;
SET result = result || '; Second open: ' || CAST(x AS STRING);
CLOSE param_cursor;
VALUES (result);
END;
First open: 3; Second open: 7
Artikel terkait
- Pembuatan Skrip SQL
- Pernyataan majemuk (DEKLARASIKAN KURSOR)
- Pernyataan OPEN
- Pernyataan FETCH
- Pernyataan gabungan