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 的过程属性。 |