达梦数据库存储过程

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

达梦数据库简单存储过程

一、存储过程概述

存储过程数据库系统中,一组为了完成特定功能的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**)
   数据操纵语句(**INSERT**、**DELETE**、**UPDATE**)
   游标定义及操纵语句(**DECLARE CURSOR**、**OPEN**、**FETCH**、**CLOSE**)
   事务控制语句(**COMMIT**、**ROLLBACK**)
   动态SQL执行语句(**EXECUTE IMMEDIATE**)
   SQL语句必须以分号结尾,否则语法分析报错。

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

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

image.png

编写存储过程

image.png

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

image.png

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

image.png


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('总经理助理')

image.png

相关文章
|
1月前
|
存储 SQL 关系型数据库
【MySQL 数据库】9、存储过程
【MySQL 数据库】9、存储过程
205 0
|
2月前
|
存储 数据库
Navicate 如何导出数据库中的存储过程、事件、视图等?
Navicate 如何导出数据库中的存储过程、事件、视图等?
|
3月前
|
安全 druid Java
Seata 1.8.0 正式发布,支持达梦和 PolarDB-X 数据库
Seata 1.8.0 正式发布,支持达梦和 PolarDB-X 数据库
Seata 1.8.0 正式发布,支持达梦和 PolarDB-X 数据库
|
3月前
|
存储 Java 数据库
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数(二)
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数
38 0
|
1月前
|
存储 SQL 数据挖掘
视图、触发器和存储过程:提升数据库功能
视图、触发器和存储过程:提升数据库功能
19 1
|
2月前
|
存储 数据库
【数据库】分支与循环&函数&存储过程
【数据库】分支与循环&函数&存储过程
22 1
|
2月前
|
存储 Linux 数据库
期末速成数据库极简版【存储过程】(5)
期末速成数据库极简版【存储过程】(5)
18 0
|
3月前
|
存储 SQL Java
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数(一)
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数
35 0
|
3月前
|
存储 SQL 安全
MSSQL存储过程:数据库操作的得力助手
MSSQL存储过程:数据库操作的得力助手
34 0
|
3月前
|
SQL Oracle 容灾
达梦数据库和orcale数据库有何区别
达梦数据库和orcale数据库有何区别
163 1

热门文章

最新文章