达梦数据库存储过程

达梦数据库存储过程

达梦数据库简单存储过程

一、存储过程概述

存储过程数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。在数据量特别庞大的情况下利用存储过程能达到倍速的效率提升

语法

CREATE [OR REPLACE ] PROCEDURE<过程声明><模块体>

<过程声明> ::= <存储过程名定义> [WITH ENCRYPTION][(<参数名><参数模式><参数类型> [<默认值表达式>] {,<参数名><参数模式><参数类型> [<默认值表达式>] })][<调用权限子句>]

<存储过程名定义> ::=[<模式名>.]<存储过程名>

::= AS | IS

<模块体> ::= [<声明部分>]

BEGIN

<执行部分>

[<异常处理部分>]

END

[存储过程名]

<声明部分> ::=[DECLARE]<声明定义>{<声明定义>}

<声明定义>::=<变量声明>|<异常变量声明>|<游标定义>|<子过程定义>|<子函数定义>;

<执行部分>::={;}

::= [<标号说明>]; <标号说明>::=<<<标号名>>>

::=|<控制语句>

<异常处理部分>::=EXCEPTION<异常处理语句>{;<异常处理语句>}

可执行部分是存储过程的核心部分,由SQL语句和流控制语句构成。支持的SQL语句包括:

数据查询语句(**SELECT**)

数据操纵语句(**INSERT**、**DELETE**、**UPDATE**)

游标定义及操纵语句(**DECLARE CURSOR**、**OPEN**、**FETCH**、**CLOSE**)

事务控制语句(**COMMIT**、**ROLLBACK**)

动态SQL执行语句(**EXECUTE IMMEDIATE**)

SQL语句必须以分号结尾,否则语法分析报错。

二、达梦数据库简单存储过程编写

首先我们先在一个模式名下创建存储过程,最好不要在SYSDBA模式下创建

编写存储过程

使用DM8初始化创建的数据库实例里面的JOB表

然后我们编辑存储过程,设置变量,将sql进行修改,给变量赋值,并将条件设置为输入变量,并最终进行出参打印出来as后为我们设置的出参变量,变量名+变量数据类型,用分号隔开查询的指定列名into出参,按查询顺序依次赋值条件为入参A最终打印B1B2B3,并用||分割显示

AS

B1 VARCHAR;B2 INT;B3 INT ;

BEGIN

/*执行体*/

SELECT

JOB_ID,

MIN_SALARY,

MAX_SALARY INTO B1,B2,B3

FROM DMHR.JOB

WHERE JOB_TITLE=A;

print('ID='||B1||' 最低工资:'||B2||' 最高工资:'||B3);

END;

点击确定保存结束后,我们在查询语句中,调用存储过程,查看是否正确显示这里因为我们设置的入参变量为varchar类型,如果设置的为int型,则不需要用引号,但是入参必须和相应的列名数据类型相同,否则会出错

调用存储过程

CALL DMHR.T1('总经理助理')

相关探索