SAP HANA SQL-i salvestatud protseduuride õpetus

Mis on SQL-i salvestatud protseduurid?

Protseduur on üksus/moodul, mis täidab konkreetset ülesannet. Seda protseduuri saab kombineerida suuremate programmide moodustamiseks. Põhimõtteliselt moodustab see "mooduldisaini". Protseduuri saab käivitada teise protseduuriga, mida nimetatakse kutsumisprogrammiks.

Protseduurid on korduvkasutatavad töötlemisplokid, millel on konkreetne andmete teisendamise jada. Protseduuril võivad olla mitme sisendi/väljundi parameetrid. Protseduuri saab luua kirjutuskaitstud või lugemis-kirjutatavana.

An SQL Protseduuri saab luua aadressil –

  • Skeemi tasemel (kataloogi sõlm)
  • Paketi tasemel (sisusõlm)

Salvestatud protseduuri süntaks sisse SAP HANNA on nagu allpool näidatud -

SÜNTAKS

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 }

Käsk CREATE PROCEDURE loob protseduuri, kasutades programmeerimiskeelt mainimist .

SÜNTAKSI ELEMENTID

Elemendid KIRJELDUS
Protseduuri nimi
Parameeter on siin määratletud. IN, OUT, INOUT parameeter on olemas. Iga parameeter on tähistatud märksõnadega IN/OUT/INOUT

• IN – kasutatakse Pass Value To protseduuri jaoks kui SISEND. See on kirjutuskaitstud parameeter.

• OUT – kasutatakse protseduurist tagastatava väärtuse jaoks kui VÄLJUND.

• INOUT – kasutatakse protseduuri läbimise ja tagastamise jaoks sama parameetriga.

KEEL Määrab protseduuris kasutatava programmeerimiskeele. Vaikimisi: SQLSCRIPT
SQL TURVALISUS Määrab protseduuri turvarežiimi. Vaikimisi: DEFINER

• DEFINER – määrab, et protseduuri täitmine toimub protseduuri defineerija õigustega.

• INVOKER – määrab, et protseduuri teostamine toimub protseduuri kutsuja õigustega.

See määratleb protseduuri kehas kvalifitseerimata objektide skeemi. Kui midagi pole määratletud, kasutatakse protseduuri jaoks praegust seansi skeemi.
LOEB SQL ANDMEID See märgib protseduuri kirjutuskaitstuks, see tähendab, et protseduur ei muuda andmebaasi andmeid ega nende struktuuri ning protseduur ei sisalda DDL- ega DML-lauseid. See protseduur kutsub ainult teisi kirjutuskaitstud protseduure.
TULEMUSE VAATEGA See määrab tulemuse vaate, mida kasutatakse kirjutuskaitstud protseduuri väljundina.
Kui protseduuri jaoks on määratud tulemuse vaade, saab seda välja kutsuda SQL lause samas protsessis tabeli või vaatega.
JÄRGMISE TÄITMINE See avaldus sunnib protseduuriloogika järjestikust täitmist. Paralleelsust ei toimu.
See määratleb valitud programmeerimiskeele põhjal protseduuri põhiosa.
AINULT PÄIS Kui kasutatakse ainult päist, luuakse OID-ga ainult protseduuri atribuudid.