Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Önemli
Bu özellik Genel Önizleme aşamasındadır.
Şunlar için geçerlidir: Databricks Runtime 17.0 ve üzeri
Unity Kataloğu'nda bağımsız değişkenleri alan veya değiştiren, SQL deyimleri kümesini yürüten ve isteğe bağlı olarak bir sonuç kümesi döndüren bir yordam oluşturur.
Konumsal parametre çağırmaya ek olarak, adlandırılmış parametre çağırma kullanarak yordamları da çağırabilirsiniz.
Sözdizimi
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 |
MODIFIES SQL DATA ] }
Parametreler
VEYA DEĞİŞTİR
Belirtilirse, aynı ada sahip bir yordam değiştirilir. Mevcut bir işlevi bir yordamla değiştiremezsiniz. Bu parametreyi ile
IF NOT EXISTS
belirtemezsiniz.EĞER MEVCUT DEĞİLSE
Belirtilirse, yordamı yalnızca bu nota sahip bir yordam henüz mevcut olmadığında oluşturur. Aynı ada sahip bir yordam varsa, bildirim göz ardı edilir. Bu parametreyi ile
OR REPLACE
belirtemezsiniz.-
İşlemin adı. İsteğe bağlı olarak yordam adını bir şema adıyla niteleyebilirsiniz. Ad uygun değilse, geçerli şemada kalıcı yordam oluşturulur.
Yordam adı, şemadaki tüm yordamlar (yordamlar ve işlevler) için benzersiz olmalıdır.
procedure_parameter
Yordamın bir parametresini belirtir.
-
Parametre adı, prosedür içinde benzersiz olmalıdır.
IN, INOUT veya OUT
İsteğe bağlı olarak parametresinin modunu açıklar.
İÇİN
Yalnızca giriş parametresini tanımlar. Varsayılan değer budur.
INOUT
Bir giriş-çıkış bağımsız değişkenini kabul eden bir parametre tanımlar. Yordam işlenmeyen bir hata olmadan tamamlanırsa, son parametre değerini çıkış olarak döndürür.
DIŞARIYA
Bir çıkış parametresi tanımlar. Parametre,
NULL
olarak başlatılır ve eğer yordam işlenmeyen bir hatayla tamamlanmazsa, son parametre değeri çıktı olarak döndürülür.
-
Desteklenen herhangi bir veri türü.
DEFAULT default_expression
bir işlev çağrısı parametreye bağımsız değişken atamadığında kullanılacak isteğe bağlı varsayılan değerdir.
default_expression
, 'ye dönüştürülebilir olmalıdır. İfade başka bir parametreye başvurmamalı veya bir alt sorgu içermemelidir.Bir parametre için varsayılan değer belirttiğinizde, aşağıdaki tüm parametrelerin de varsayılanı olmalıdır.
DEFAULT
parametreler içinOUT
desteklenmez.YORUM
Parametresinin isteğe bağlı açıklaması.
comment
sabitSTRING
olmalıdır.
-
-
SQL Yordamının tanımına sahip bir SQL bileşik deyimi (
BEGIN ... END
).Yordam oluşturulduğunda, sözdizimsel doğruluk doğrulanır. Yordam çağrılana kadar yordam gövdesi anlamsal geçerlilik için doğrulanmaz.
özellik
Karakteristik
SQL SECURITY INVOKER
veLANGUAGE SQL
gerekli. Diğerleri isteğe bağlıdır. Herhangi bir sırada istediğiniz sayıda özellik belirtebilirsiniz, ancak her cümleyi yalnızca bir kez belirtebilirsiniz.LANGUAGE SQL
İşlev uygulamasının dili.
SQL GÜVENLIK ÇAĞıRıCıSı
Prosedür gövdesindeki tüm SQL ifadelerinin, prosedürü çağıran kullanıcının yetkisi altında yürütüleceğini belirtir.
Azure Databricks, yordamın gövdesindeki ilişkileri ve yordamları çözümlerken, çağrı sırasında geçerli kataloğu ve geçerli şemayı kullanır.
DETERMINISTIK DEĞİl
Bir yordamın belirsiz olduğu varsayılır, yani aynı bağımsız değişkenlerle çağrıldığında bile her çağrıda farklı sonuçlar döndürebilir.
YORUM işlem_yorumu
Prosedür için bir yorum.
procedure_comment
STRING
değişmez değer olmalıdır. Varsayılan değer:NULL
.SQL VERILERINI DEĞIŞTIRIR
SQL verilerini değiştirmek için bir yordam varsayılır.
Örnekler
-- 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 'forma' THEN SELECT 'Pleased to meet you.';
END CASE;
END;
> CALL greeting('informal');
Hi!
> CALL greeting('formal');
Pleased to meet you.
> CALL greeting('casual');
Hello!