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.
Penting
Fitur ini ada di Pratinjau Publik.
Berlaku untuk:
Databricks SQL Databricks Runtime 17.0 ke atas
Unity Catalog saja
Membuat prosedur di Unity Catalog yang mengambil atau memodifikasi argumen, menjalankan serangkaian pernyataan SQL, dan secara opsional mengembalikan kumpulan hasil.
Selain pemanggilan parameter posisi, Anda juga dapat memanggil prosedur menggunakan pemanggilan parameter bernama.
Sintaksis
CREATE [OR REPLACE] PROCEDURE [IF NOT EXISTS]
procedure_name ( [ procedure_parameter [, ...] ] )
[ characteristic [...] ]
AS compound_statement
procedure_parameter
[ IN | OUT | INOUT ] parameter_name data_type
[ DEFAULT default_expression ] [ COMMENT parameter_comment ]
characteristic
{ LANGUAGE SQL |
SQL SECURITY INVOKER |
NOT DETERMINISTIC |
COMMENT procedure_comment |
DEFAULT COLLATION UTF8_BINARY |
MODIFIES SQL DATA }
Parameter-parameternya
ATAU GANTIKAN
Jika telah ditentukan, maka prosedur dengan nama yang sama akan digantikan. Anda tidak dapat mengganti fungsi yang ada dengan prosedur. Anda tidak dapat menentukan parameter ini dengan
IF NOT EXISTS.JIKA TIDAK ADA
Jika ditentukan, buat prosedur hanya ketika prosedur dengan catatan tersebut belum ada. Jika ada prosedur dengan nama yang sama, pernyataan akan diabaikan. Anda tidak dapat menentukan parameter ini dengan
OR REPLACE.-
Nama untuk prosedur. Anda dapat secara opsional memenuhi syarat nama prosedur dengan nama skema. Jika nama tidak memenuhi syarat, prosedur permanen dibuat dalam skema saat ini.
Nama prosedur harus unik untuk semua rutinitas (prosedur dan fungsi) dalam skema.
procedure_parameter
Menentukan parameter prosedur.
-
Nama parameter harus unik dalam prosedur.
IN, INOUT, atau OUT
Penjelasan opsional tentang mode parameter.
DI
Menentukan parameter input saja. Ini adalah default.
INOUT
Menentukan parameter yang menerima argumen input-output. Jika prosedur selesai tanpa kesalahan yang tidak tertangani, prosedur akan mengembalikan nilai parameter akhir sebagai output.
KELUAR
** Memastikan parameter output. Parameter diinisialisasi ke
NULLdan, jika prosedur selesai tanpa kesalahan yang tidak tertangani, parameter akan mengembalikan nilai parameter akhir sebagai output.
-
Jenis data apa pun yang didukung.
default_expression DEFAULT
Opsional default yang akan digunakan ketika pemanggilan fungsi tidak menetapkan argumen ke parameter.
default_expressionharus dapat ditransmisikan kedata_type. Ekspresi tidak boleh mereferensikan parameter lain atau mengandung subkueri.Saat Anda menentukan default untuk satu parameter, semua parameter berikut juga harus memiliki default.
DEFAULTtidak didukung untukOUTparameter.KOMENTAR komentar
Deskripsi opsional parameter.
commentharus berupa nilai literalSTRING.
-
-
Pernyataan majemuk SQL (
BEGIN ... END) dengan definisi Prosedur SQL.Ketika prosedur dibuat, kebenaran sintaksis divalidasi. Isi prosedur tidak divalidasi untuk kebenaran semantik sampai prosedur dipanggil.
karakteristik
Karakteristik
SQL SECURITY INVOKERdanLANGUAGE SQLdiperlukan. Semua lainnya bersifat opsional. Anda dapat menentukan sejumlah karakteristik dalam urutan apa pun, tetapi Anda dapat menentukan setiap klausa hanya sekali.BAHASA SQL
Bahasa implementasi fungsi.
PEMANGGIL KEAMANAN SQL
Menentukan bahwa setiap pernyataan SQL dalam isi prosedur akan dijalankan di bawah otoritas pengguna yang memanggil prosedur.
Saat menyelesaikan hubungan dan rutinitas dalam isi prosedur, Azure Databricks menggunakan katalog saat ini dan skema saat ini pada saat pemanggilan.
TIDAK DETERMINISTIK
Prosedur diasumsikan nondeterministik, yang berarti dapat mengembalikan hasil yang berbeda pada setiap pemanggilan, bahkan ketika dipanggil dengan argumen yang sama.
KOMENTAR PROSEDUR
Komentar tentang prosedur.
procedure_commentharus diartikan secaraSTRINGharfiah. Defaultnya adalahNULL.UTF8_BINARY KOLABASI DEFAULT
Berlaku untuk:
pemeriksaan Databricks SQL
Databricks Runtime 17.1 ke atasMemaksa pengurutan bawaan prosedur ke
UTF8_BINARY. Klausa ini wajib jika skema di mana prosedur dibuat memiliki kolaborasi default selainUTF8_BINARY. Kolase default prosedur digunakan sebagai kolase default untuk parameter prosedur, dan kolase default untuk semua literal string dan variabel lokal dalam isi prosedur.MEMODIFIKASI DATA SQL
Prosedur diasumsikan untuk memodifikasi data SQL.
Contoh
-- Demonstrate INOUT and OUT parameter usage.
> CREATE OR REPLACE PROCEDURE add(x INT, y INT, OUT sum INT, INOUT total INT)
LANGUAGE SQL
SQL SECURITY INVOKER
COMMENT 'Add two numbers'
AS BEGIN
SET sum = x + y;
SET total = total + sum;
END;
> DECLARE sum INT;
> DECLARE total INT DEFAULT 0;
> CALL add(1, 2, sum, total);
> SELECT sum, total;
3 3
> CALL add(3, 4, sum, total);
7 10
-- The last executed query is the result set of a procedure
> CREATE PROCEDURE greeting(IN mode STRING COMMENT 'informal or formal')
LANGUAGE SQL
SQL SECURITY INVOKER
AS BEGIN
SELECT 'Hello!';
CASE mode WHEN 'informal' THEN SELECT 'Hi!';
WHEN 'formal' THEN SELECT 'Pleased to meet you.';
END CASE;
END;
> CALL greeting('informal');
Hi!
> CALL greeting('formal');
Pleased to meet you.
> CALL greeting('casual');
Hello!