Aracılığıyla paylaş


ÇAĞIRMAK

Önemli

Bu özellik Genel Önizleme aşamasındadır.

Şunun için geçerlidir:işaretli evet Databricks Runtime 17.0 ve üzeri

Saklı yordamı ada göre çağırır ve bağımsız değişkenleri yordama ve yordamdan geçirir.

Prosedür çağrıları en fazla 64 düzey iç içe olabilir.

Sözdizimi

CALL procedure_name( [ argument [, …] ]
                     [ namedParameter => argument ] [, ...] )

Parametreler

  • procedure_name

    Çağrılacak yordamın adı. Prosedür adı isteğe bağlı olarak bir şema adı ile nitelenebilir. Eğer isim nitelikli değilse, prosedür geçerli şemada çözümlenir. Eğer prosedür mevcut değilse, bir ROUTINE_NOT_FOUND hatası ortaya çıkar.

  • tartışma

    Parametrelere atanan bağımsız değişkenler için, parametreye IN atanabilecek türdeki herhangi bir ifade veya DEFAULT anahtar sözcük. OUT ve INOUT parametreleri için bağımsız değişken bir oturum değişkeni veya yerel değişken olmalıdır.

    Yordam başarısız olursa, OUT ve INOUT parametrelerinin bağımsız değişken değerleri değişmeden kalır.

  • namedParameter

    atandığı argExpr parametrenin nitelenmemiş adı.

Bağımsız değişkenlerin sayısı, yordam için belirtilen parametre sayısından büyük olmamalı. Parametrelerden daha az bağımsız değişken belirtirseniz, parametrelerin DEFAULT değerleriyle tanımlanması gerekir.

Örnekler

> CREATE OR REPLACE PROCEDURE area_of_rectangle
     (IN x INT, IN y INT, OUT area INT, INOUT acc INT)
    LANGUAGE SQL
    SQL SECURITY INVOKER
    AS BEGIN
      SET area = x * y;
      SET acc = acc + area;
      SELECT 'Area of rectangle is: ' || area;
    END;

-- Session varables to handle OUT and INOUT parameters
> DECLARE area INT;
> DECLARE acc INT DEFAULT 10;

-- Invocation by position
> CALL area_of_rectangle(5, 10, area, acc);
  Area of rectangle is: 50
> SELECT area, acc;
  area  acc
  —---  —--
    50   60

-- Invocation by name
> CALL area_of_rectangle(y => 10, x => 5, area => area, acc => acc);
  Area of rectangle is: 50
> SELECT area, acc;
  area  acc
  —---  —--
    50  120