Tüm Ürünler
Search
Belge Merkezi

MaxCompute:CREATE SQL FUNCTION

Son Güncelleme:Oct 04, 2026

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 FUNCTION ifadesinin 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


Parametre


Zorunlu


Açıklama


function_name


Evet


SQL UDF'nin adı. Proje içinde benzersiz olmalı ve yerleşik bir işlev adıyla aynı olmamalıdır. Her benzersiz işlev adı yalnızca bir kez kaydedilebilir. Mevcut işlev adlarını kontrol etmek için LIST FUNCTIONS komutunu çalıştırın.


parameter_in


Evet


Giriş parametreleri. Parametreler, anonim işlevler de dahil olmak üzere işlev türünde olabilir. Örnekler için bkz. işlev türü giriş parametreleri. Anonim işlev örnekleri için bkz. anonim işlev giriş parametreleri.


datatype


Evet


Her bir giriş parametresinin veri türü. MaxCompute tarafından desteklenen bir veri türü olmalıdır. Bkz. MaxCompute V2.0 veri türü sürümü. UDF'yi çağırırken giriş veri türleri burada tanımlananlarla tam olarak eşleşmelidir.


returns


Hayır


Dönüş değeri değişkeni. Atlanırsa varsayılan olarak function_name değeri döndürülür.


parameter_out


Evet (returns belirtilmişse)


Dönüş değeri için çıkış parametresi adı.


function_expression


Evet


UDF'nin uygulama mantığı. Yerleşik bir operatör, yerleşik işlev veya başka bir UDF olabilir.

Ö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:


Deyim


Açıklama


SELECT FUNCTION


Bir SQL UDF'sini çağırır.


DESC FUNCTION


UDF ayrıntılarını görüntüler: ad, sahip, oluşturma zamanı, sınıf adı ve kaynak listesi.


LIST FUNCTIONS


Bir MaxCompute projesindeki tüm UDF'leri listeler.


DROP FUNCTION


Mevcut bir UDF'yi bir MaxCompute projesinden siler.


FUNCTION


Geçici bir SQL UDF oluşturur (meta veri sistemine kalıcı olarak kaydedilmez).