SQL kullanıcı tanımlı işlevleri (UDF), Java veya Python kodu yazmadan yeniden kullanılabilir iş mantığını doğrudan SQL içinde kapsüllemenize olanak tanır. Java/Python UDF'lerinden farklı olarak, SQL UDF'leri anonim işlevler de dahil olmak üzere işlev türünde parametreleri destekler. CREATE SQL FUNCTION deyimi, MaxCompute meta veri sisteminde depolanan kalıcı bir SQL UDF oluşturur.
Meta veri sistemine kalıcı olarak kaydedilmeyen geçici bir SQL UDF oluşturmak için bunun yerine FUNCTION deyimini kullanın.
Önkoşullar
Başlamadan önce aşağıdaki koşulları sağladığınızdan emin olun:
Alibaba Cloud hesabınızda işlev düzeyinde izinlere (oluşturma, sorgulama, çağırma ve silme) sahip olmanız. Ayrıntılar için bkz. MaxCompute izinleri
SQL düzenleyicinizde betik modunun etkinleştirilmiş olması.
CREATE SQL FUNCTIONifadesinin yaygın SQL düzenleme modunda çalıştırılması hataya neden olur. Ayrıntılar için bkz. Betik modunda SQL
Sözdizimi
create sql function <function_name>(@<parameter_in1> <datatype>[, @<parameter_in2> <datatype>...])
[returns @<parameter_out> <datatype>]
as [begin]
<function_expression>
[end];
Tek ifadeli bir UDF için begin ve end anahtar sözcüklerini atlayıp ifadeyi doğrudan as anahtar sözcüğünden sonra yazın. Çoklu ifade içeren mantık için ifadeleri begin...end bloğu içine alın.
Parametreler
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Örnekler
Basit UDF
Tek ifadeli mantık için ifadeyi doğrudan as anahtar sözcüğünden sonra yazın:
-- Increment a BIGINT value by 1
create sql function my_add(@a BIGINT) as @a + 1;
as anahtar sözcüğünden sonraki ifade işlev gövdesidir. Bu ifade yerleşik operatörlere, yerleşik işlevlere veya diğer UDF'lere başvurabilir.
Çoklu İfadeli UDF
Ara değişkenler gerektiren mantık için birden çok ifadeyi sarmak üzere begin...end yapısını kullanın:
-- Sum three BIGINT values using an intermediate variable
create sql function my_sum(@a BIGINT, @b BIGINT, @c BIGINT) returns @my_sum BIGINT
as begin
@temp := @a + @b;
@my_sum := @temp + @c;
end;
returns @my_sum BIGINT ifadesi dönüş değişkenini açıkça adlandırır. returns anahtar sözcüğünü atlarsanız işlev varsayılan olarak function_name değerini döndürür.
İşlev Türü Giriş Parametreleri
SQL UDF'leri işlev türünde parametreleri kabul ederek yerleşik işlevlerin veya diğer UDF'lerin bağımsız değişken olarak geçirilmesine olanak tanır. Ayrıntılı örnekler için bkz.:
Sonraki Adımlar
Bir SQL UDF oluşturduktan sonra bu işlevi yönetmek ve çağırmak için ilgili deyimleri kullanın:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|