SAP HANA SQL 存储过程教程

什么是 SQL 存储过程?

过程是一个执行特定任务的单元/模块。这个过程可以组合成更大的程序。这基本上构成了“模块化设计”。一个过程可以被另一个称为调用程序的过程调用。

过程是具有特定数据转换序列的可重用处理块。过程可以具有多输入/输出参数。过程可以创建为只读或读写。

可以在以下位置创建 SQL 过程:

  • 在 Schema 级别(Catalog 节点)
  • 在 Package 级别(Content 节点)

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 语句使用提到的编程语言 创建过程。

语法元素

元素 描述
过程名称
在此定义参数。有 IN、OUT、INOUT 参数。每个参数都用关键字 IN/OUT/INOUT 标记。

• IN – 用于将值作为输入传递给过程。它是只读参数。

• OUT – 用于将值作为输出返回自过程。

• INOUT – 用于通过同一参数将值传递和返回自过程。

LANGUAGE 定义过程中使用的编程语言。默认值:SQLSCRIPT
SQL SECURITY 指定过程的安全模式。默认值:DEFINER

• DEFINER – 指定过程的执行是以过程定义者的权限执行的。

• INVOKER – 指定过程的执行是以过程调用者的权限执行的。

它定义了过程体中非限定对象的模式。如果未定义任何内容,则使用会话的当前模式来执行过程。
SQL DATA 它将过程标记为只读,这意味着过程不会修改数据库数据或其结构,并且过程不包含 DDL 或 DML 语句。此过程仅调用其他只读过程。
WITH RESULT VIEW 它定义了用作只读过程输出的结果视图。
如果为过程指定了结果视图,则可以在与表或视图相同的进程中通过 SQL 语句调用它。
顺序执行 此语句将强制过程逻辑按顺序执行。不发生并行。
它根据所选的编程语言定义过程的主体。
仅标题 如果使用“仅标题”,则仅创建具有 OID 的过程属性。