达梦数据库存储过程

达梦数据库简单存储过程



一、存储过程概述

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

语法

CREATE [OR REPLACE ] PROCEDURE<过程声明><AS_OR_IS><模块体>
<过程声明> ::= <存储过程名定义> [WITH ENCRYPTION][(<参数名><参数模式><参数类型> [<默认值表达式>] {,<参数名><参数模式><参数类型> [<默认值表达式>] })][<调用权限子句>]
<存储过程名定义> ::=[<模式名>.]<存储过程名>
<AS_OR_IS>::= AS | IS
<模块体> ::= [<声明部分>]
BEGIN
<执行部分>
[<异常处理部分>]
END
[存储过程名]
<声明部分> ::=[DECLARE]<声明定义>{<声明定义>}
<声明定义>::=<变量声明>|<异常变量声明>|<游标定义>|<子过程定义>|<子函数定义>;
<执行部分>::=<DMSQL程序语句序列>{;<DMSQL程序语句序列>}
<DMSQL程序语句序列> ::= [<标号说明>]<DMSQL程序语句>; <标号说明>::=<<<标号名>>>
<DMSQL程序语句>::=<SQL语句>|<控制语句>
<异常处理部分>::=EXCEPTION<异常处理语句>{;<异常处理语句>}

可执行部分是存储过程的核心部分,由SQL语句和流控制语句构成。支持的SQL语句包括:
数据查询语句(SELECT)
数据操纵语句(INSERTDELETEUPDATE)
游标定义及操纵语句(DECLARE CURSOROPENFETCHCLOSE)
事务控制语句(COMMITROLLBACK)
动态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('总经理助理')

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值