Fungsi yang ditentukan pengguna (UDF) SQL memperluas fungsionalitas MaxCompute, mendukung lebih banyak tipe parameter dan jenis fungsi sebagai input. Topik ini menjelaskan cara membuat UDF SQL sementara menggunakan pernyataan FUNCTION.
Perhatian
Saat menggunakan pernyataan SQL untuk mendefinisikan UDF, pastikan operasi dilakukan dalam mode skrip SQL. Jika tidak, kesalahan mungkin terjadi.
CatatanUntuk informasi lebih lanjut tentang mode skrip SQL di MaxCompute, lihat SQL dalam Mode Skrip.
MaxCompute memungkinkan Anda mengeksekusi pernyataan
FUNCTIONuntuk membuat UDF SQL. UDF yang dibuat dengan pernyataan ini adalah UDF SQL sementara. Setelah UDF dibuat menggunakan pernyataan FUNCTION, UDF tidak disimpan dalam sistem metadata MaxCompute. Anda tidak dapat menanyakan UDF dalam daftar fungsi MaxCompute. UDF SQL hanya dapat dipanggil di dalam skrip tempat UDF didefinisikan dan tidak dapat dipanggil di lingkungan kueri lainnya.CatatanUntuk informasi lebih lanjut tentang cara membuat UDF SQL permanen, lihat BUAT FUNGSI SQL.
Saat menggunakan pernyataan SQL untuk mendefinisikan UDF, pastikan tipe data parameter input UDF adalah tipe data yang didukung oleh MaxCompute. Untuk informasi lebih lanjut tentang tipe data yang didukung oleh MaxCompute, lihat Edisi Tipe Data MaxCompute V2.0. Setelah UDF dibuat, pastikan tipe data parameter input UDF SQL yang ingin Anda panggil sesuai dengan tipe data parameter input UDF yang telah didefinisikan.
Saat membuat, menanyakan, memanggil, atau menghapus UDF SQL, pastikan akun Alibaba Cloud yang digunakan memiliki izin tingkat fungsi yang diperlukan. Untuk informasi lebih lanjut tentang izin tingkat fungsi dan operasi otorisasi, lihat Izin MaxCompute.
Sintaksis
function <function_name>(@<parameter_in1> <datatype>[, @<parameter_in2> <datatype>...])
[returns @<parameter_out> <datatype>]
as [begin]
<function_expression>
[end];Parameter
function_name: Wajib. Menentukan nama UDF SQL yang akan dibuat. Nama fungsi harus unik dalam sebuah proyek dan tidak boleh sama dengan nama fungsi bawaan. Fungsi dengan nama yang sama hanya dapat didaftarkan sekali. Anda dapat mengeksekusi pernyataan DAFTAR FUNGSI untuk melihat semua fungsi dalam sebuah proyek dan memeriksa apakah ada fungsi yang sudah ada dengan nama yang sama seperti fungsi yang ingin Anda buat.
parameter_in: Wajib. Menentukan parameter input UDF SQL yang ingin Anda buat. Parameter input dapat berupa tipe fungsi, termasuk fungsi anonim. Untuk informasi lebih lanjut tentang cara membuat UDF SQL yang parameter inputnya merupakan tipe fungsi, lihat Contoh Cara Membuat UDF SQL yang Parameter Inputnya Merupakan Tipe Fungsi. Untuk informasi lebih lanjut tentang cara membuat UDF SQL yang parameter inputnya merupakan fungsi anonim, lihat Contoh Cara Membuat UDF SQL yang Parameter Inputnya Merupakan Fungsi Anonim.
datatype: Wajib. Menentukan tipe data parameter input UDF. Untuk informasi lebih lanjut tentang tipe data yang didukung oleh MaxCompute, lihat Edisi Tipe Data MaxCompute V2.0.
returns: Opsional. Menentukan nilai balik UDF. Nilai balik adalah variabel. Jika tidak ditentukan, nilai parameter function_name akan dikembalikan secara default.
parameter_out: Wajib. Menentukan parameter respons UDF.
function_expression: Wajib. Menentukan ekspresi (logika implementasi) UDF.
Contoh
function my_add(@a BIGINT) as @a + 1;Pernyataan terkait
BUAT FUNGSI SQL: Membuat UDF SQL permanen. Setelah UDF SQL permanen dibuat dan disimpan dalam sistem metadata MaxCompute, semua operasi kueri dapat memanggil UDF tersebut.
DESKRIPSI FUNGSI: Menanyakan informasi tentang UDF yang tersimpan secara permanen, termasuk nama fungsi, pemilik, waktu pembuatan, nama kelas, dan daftar sumber daya. UDF SQL sementara tidak dapat ditanyakan menggunakan pernyataan ini.
HAPUS FUNGSI: Menghapus UDF yang ada dari proyek MaxCompute.
PILIH FUNGSI: Memanggil UDF SQL. UDF SQL sementara hanya dapat dipanggil di dalam skrip tempat UDF didefinisikan dan tidak dapat dipanggil di lingkungan kueri lainnya.