Saklı Prosedür SAP HANA (SQL Eğitimi)
⚡ Akıllı Özet
SAP HANA SQL Saklı Prosedürü, belirli bir veri işlemini gerçekleştiren, yeniden kullanılabilir, adlandırılmış bir SQLScript bloğudur. IN, OUT ve INOUT parametrelerini kabul eder, READS SQL DATA ile salt okunur olarak işaretlenebilir ve CREATE PROCEDURE sözdizimi kullanılarak şema veya paket düzeyinde oluşturulur.

SQL Saklı Prosedürü nedir?
A saklı yordam Prosedür, belirli bir görevi yerine getiren, adlandırılmış ve yeniden kullanılabilir bir kod birimidir. Prosedürler, daha büyük programlar halinde bir araya getirilebilir; bu da programlamanın temelini oluşturur. Modüler tasarımBir işlem başka bir işlemi çağırabilir; çağıran işleme "çağrı yapan" denir. arama programı.
Prosedürler, tanımlanmış bir veri dönüşümü dizisine sahip, yeniden kullanılabilir işlem bloklarıdır. Birden fazla giriş ve çıkış parametresi alabilirler ve salt okunur veya okuma-yazma olarak tanımlanabilirler.
An SQL prosedür SAP HANA Şu adreste oluşturulabilir:
- Şema seviyesi (Katalog düğümü) — katalog üzerinden yönetilir ve gerekli yetkilere sahip her tüketici tarafından görülebilir.
- Paket seviyesi (İçerik düğümü) — bir uygulama paketi içinde tasarım zamanı öğesi olarak yönetilir.
SAP HANA Saklı Prosedür Sözdizimi
Bir prosedür oluşturmak için genel sözdizimi şu şekildedir: SAP HANA aşağıda gösterilmiştir.
CREATE PROCEDURE <proc_name> [(<parameter_clause>)] [LANGUAGE <lang>]
[SQL SECURITY <mode>] [DEFAULT SCHEMA <default_schema_name>]
[READS SQL DATA [WITH RESULT VIEW <view_name>]] AS
{ BEGIN [SEQUENTIAL EXECUTION]
<procedure_body>
END
| HEADER ONLY }
MKS CREATE PROCEDURE Bu ifade, belirtilen programlama dilini kullanarak bir prosedür oluşturur. <lang>Varsayılan dil SQLScript'tir.
Sözdizimi Öğeleri Açıklaması
Aşağıdaki tabloda CREATE PROCEDURE sözdiziminde kullanılan her bir madde açıklanmaktadır.
| Eleman | Açıklama |
|---|---|
<proc_name> |
İşlemin adı. |
<parameter_clause> |
Her biri IN, OUT veya INOUT olarak işaretlenmiş parametrelerin listesi: • IN — prosedüre iletilen salt okunur girdi. • OUT — İşlemden döndürülen çıktı. • GİRİŞ — hem bir değer alır hem de değiştirilmiş değeri döndürür. |
LANGUAGE <lang> |
İşlemde kullanılan programlama dili. Varsayılan: SQLSCRIPT. |
SQL SECURITY <mode> |
Güvenlik modu (Varsayılan: TANIMLAYICI): • TANIMLAYICI — İşlemi oluşturanın ayrıcalıklarıyla çalışır. • İSTİHDAMCI — arayanın ayrıcalıklarıyla çalışır. |
DEFAULT SCHEMA <default_schema_name> |
Prosedür gövdesindeki niteliksiz nesneleri çözümlemek için kullanılan şema. Atlanırsa, geçerli oturum şeması kullanılır. |
READS SQL DATA |
Bu prosedürü salt okunur olarak işaretler. Veri veya şemayı değiştiremez, DDL veya DML içermez ve yalnızca diğer salt okunur prosedürleri çağırabilir. |
WITH RESULT VIEW <view_name> |
Bu, prosedürün çıktısı olarak kullanılan sonuç görünümünü tanımlar. Bir sonuç görünümü mevcut olduğunda, prosedür başka bir prosedür tarafından sorgulanabilir. SQL İfadeyi sanki bir tablo veya görünümmüş gibi sunmak. |
SEQUENTIAL EXECUTION |
İşlem gövdesinin paralellik olmaksızın ardışık olarak yürütülmesini zorlar. |
<procedure_body> |
İşlemin ana gövdesi, seçilen programlama dilinde yazılmıştır. |
HEADER ONLY |
Prosedürün gövdesini derlemeden, yalnızca OID'ye sahip özelliklerini oluşturur. İleriye dönük bildirimler için kullanışlıdır. |
Örnek: Basit Bir Saklı Prosedür Oluşturma
Aşağıdaki örnek, belirli bir müşteri için toplam satışları döndüren salt okunur bir prosedür oluşturur.
CREATE PROCEDURE GET_CUSTOMER_SALES (
IN iv_customer_id NVARCHAR(10),
OUT ev_total DECIMAL(15,2)
)
LANGUAGE SQLSCRIPT
SQL SECURITY INVOKER
READS SQL DATA AS
BEGIN
SELECT SUM(NET_VALUE) INTO ev_total
FROM "SALES"."ORDERS"
WHERE CUSTOMER_ID = :iv_customer_id;
END;
İşlemi şu şekilde çağırın:
CALL GET_CUSTOMER_SALES ('C0001', ?);
SAP HANA Studio (veya herhangi bir JDBC/ODBC istemcisi) şu değeri döndürür: ev_total Çıkış parametresinde.
Saklı bir prosedürü çağırmak
Oluşturulduktan sonra, saklı prosedür şu şekilde çağrılır: CALL Bu ifade, isteğe bağlı olarak başka bir prosedürün, bir SQLScript fonksiyonunun veya harici bir istemcinin içinde yer alabilir. En yaygın dört çağrı modeli şunlardır:
- SQL'den:
CALL my_proc(p1, p2, ?);— Yer tutucular ÇIKIŞ değerleri döndürür. - Başka bir prosedürden:
CALL another_proc(:in1, :out1); - Bir başvurudan: Giriş parametrelerini bağlayın ve çıktıyı JDBC, ODBC veya Cloud SDK aracılığıyla okuyun.
- Sanal bir masa olarak: Sonuç görünümü tanımlandığında, prosedürü görünüm adına karşı bir SELECT sorgusu ile sorgulayın.
HANA Saklı Prosedürleri için En İyi Uygulamalar
Aşağıdaki alışkanlıklar, HANA prosedürlerinin okunabilir, yüksek performanslı ve bakımı kolay olmasını sağlar:
- Parametreleri öneklerle adlandırın:
iv_giriş için,ev_ihracat için veiov_Giriş/çıkış için. - SQL VERİLERİNİ OKUMA ile niyeti işaretlemek İşlemin gerçekten salt okunur olduğu her yerde.
- SQL SECURITY INVOKER kullanın. Arayanın ayrıcalıklarına saygı göstermesi gereken ortak prosedürler için.
- Her bloğu BEGIN/END ile çevreleyin. Ve gövdeyi kısa tutun; karmaşık mantığı yardımcı prosedürlere bölün.
- İstisnaları ele alın: kullanım
DECLARE EXIT HANDLERHataların düzgün bir şekilde raporlanması için. - SELECT * seçeneğinden kaçının. İç prosedürler — planların istikrarlı kalması için gerçekten ihtiyaç duyduğunuz sütunları adlandırın.
