SAP HANA SQL ストアド プロシージャ チュートリアル

SQL ストアド プロシージャとは何ですか?

プロシージャは、特定のタスクを実行するユニット/モジュールです。 この手順を組み合わせて、より大きなプログラムを作成できます。 これは基本的に「モジュラーデザイン」を形成します。 プロシージャは、呼び出しプログラムと呼ばれる別のプロシージャによって呼び出すことができます。

プロシージャは、特定のデータ変換シーケンスを備えた再利用可能な処理ブロックです。 プロシージャには複数の入力/出力パラメータを含めることができます。 プロシージャは、読み取り専用または読み取り/書き込みとして作成できます。

An SQL プロシージャは次の場所で作成できます –

  • スキーマレベル(カタログノード)
  • パッケージレベル(コンテンツノード)

ストアド プロシージャ構文 SAP HANA 以下に示すとおりです –

構文

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 }

CREATE PROCEDURE ステートメントは、言及されたプログラミング言語を使用してプロシージャを作成します。 。

構文要素

要素 DESCRIPTION
プロシージャ名
パラメータはここで定義されます。 IN、OUT、INOUTパラメータがあります。 各パラメータはキーワード IN/OUT/INOUT を使用してマークされます。

• IN – 値を INPUT として渡すプロシージャに使用されます。 読み取り専用パラメータです。

• OUT – プロシージャからの戻り値に OUTPUT として使用されます。

• INOUT – 同じパラメータによるプロシージャへの渡し値と戻り値に使用されます。

言語 プロシージャで使用されるプログラミング言語を定義します。 デフォルト: SQLSCRIPT
SQLセキュリティ プロシージャのセキュリティ モードを指定します。 デフォルト: ディファイナー

• DEFINER – プロシージャの実行がプロシージャの定義者の権限で実行されることを指定します。

• INVOKER – プロシージャの実行がプロシージャの呼び出し者の権限で実行されることを指定します。

プロシージャ本体内の非修飾オブジェクトのスキーマを定義します。 何も定義されていない場合は、セッションの現在のスキーマがプロシージャに使用されます。
SQL データを読み取ります これは、プロシージャを読み取り専用としてマークします。これは、プロシージャがデータベース データやその構造を変更せず、プロシージャに DDL または DML ステートメントが含まれていないことを意味します。 このプロシージャは、他の読み取り専用プロシージャのみを呼び出します。
結果ビューあり 読み取り専用プロシージャの出力として使用される結果ビューを定義します。
プロシージャに結果ビューが指定されている場合、その結果ビューは SQL テーブルまたはビューと同じプロセス内のステートメント。
順次実行 このステートメントは、プロシージャ ロジックの順次実行を強制します。 並列処理は行われません。
選択したプログラミング言語に基づいてプロシージャの本体を定義します。
ヘッダーのみ ヘッダーのみを使用した場合、プロシージャ プロパティのみが OID を使用して作成されます。