SAP HANA SQL opgeslagen procedure-zelfstudie

Wat zijn SQL opgeslagen procedures?

Een procedure is een eenheid/module die een specifieke taak uitvoert. Deze procedure kan worden gecombineerd om grotere programma's te vormen. Dit vormt feitelijk het 'Modulair Ontwerp'. Een procedure kan worden aangeroepen door een andere procedure die het aanroepende programma wordt genoemd.

Procedures zijn herbruikbare verwerkingsblokken met een specifieke reeks gegevenstransformatie. De procedure kan parameters met meerdere invoer/uitvoer hebben. De procedure kan worden gemaakt als alleen-lezen of lezen-schrijven.

An SQL Procedure kan worden aangemaakt op –

  • Op schemaniveau (catalogusknooppunt)
  • Op pakketniveau (inhoudsknooppunt)

Syntaxis van opgeslagen procedure in SAP HANA is zoals hieronder weergegeven –

SYNTAXIS

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 }

De instructie CREATE PROCEDURE creëert een procedure met behulp van de programmeertaal vermelding .

SYNTAXISCHE ELEMENTEN

ELEMENTS PRODUCTBESCHRIJVING
Procedurenaam
De parameter wordt hier gedefinieerd. IN, OUT, INOUT-parameter is aanwezig. Elke parameter wordt gemarkeerd met de trefwoorden IN/OUT/INOUT

• IN – Gebruikt voor de procedure 'Waarde doorgeven aan' als INPUT. Het is een alleen-lezen-parameter.

• OUT – Gebruikt voor de retourwaarde van de procedure als OUTPUT.

• INOUT – Gebruikt voor Pass en Return Value To Procedure met dezelfde parameter.

TAAL Definieert de programmeertaal die in de procedure wordt gebruikt. Standaard: SQLSCRIPT
SQL-BEVEILIGING Specificeert de beveiligingsmodus van de procedure. Standaard: DEFINER

• DEFINER – Specificeert dat de uitvoering van de procedure wordt uitgevoerd met de bevoegdheden van de definieeraar van de procedure.

• INVOKER – Specificeert dat de uitvoering van de procedure wordt uitgevoerd met de bevoegdheden van de aanroeper van de procedure.

Het definieert het schema voor niet-gekwalificeerde objecten in de proceduretekst. Als er niets is gedefinieerd, wordt het huidige schema van de sessie gebruikt voor de procedure.
LEEST SQL-GEGEVENS Het markeert de procedure als alleen-lezen, het betekent dat de procedure de databasegegevens of de structuur ervan niet wijzigt en dat de procedure geen DDL- of DML-instructies bevat. Deze procedure roept alleen andere alleen-lezen-procedures aan.
MET RESULTAATZICHT Het definieert de resultaatweergave die moet worden gebruikt als uitvoer van een alleen-lezen procedure.
Als er voor een procedure een resultaatweergave is opgegeven, kan deze worden aangeroepen door een SQL instructie in hetzelfde proces als een tabel of weergave.
SEQUENTIËLE UITVOERING Deze instructie dwingt de sequentiële uitvoering van de procedurelogica af. Er vindt geen parallellisme plaats.
Het definieert het hoofdgedeelte van de procedure op basis van de geselecteerde programmeertaal.
ALLEEN HOOFD Als Header Only wordt gebruikt, worden alleen procedure-eigenschappen gemaakt met OID.