DMSQL程序是达梦数据库对标准SQL语言的扩展,是一种过程化SQL语言。在DMSQL程序中,包括一整套数据类型、条件结构、循环结构和异常处理结构等,DMSQL程序中可以执行SQL语句,SQL语句中也可以使用DMSQL函数。
视频讲解如下 |
---|
【赵渝强老师】达梦数据库的DMSQL |
DMSQL程序是一种技术,而不是一种独立的工具,它是和DM数据库服务器紧密结合在一起的。可以认为这种技术是执行DMSQL程序的一种机器,它可以接受任何有效的DMSQL程序,按照语言本身所规定的语义执行,并将结果返回给客户。DMSQL程序可以分为存储模块和客户端DMSQL程序两类。
- 存储模块程序
用户可以使用DMSQL程序语言创建过程或函数,称为存储过程和存储函数。这些过程或函数像普通的过程或函数一样,有输入、输出参数和返回值,它们与表和视图等数据库对象一样被存储在数据库中,供用户随时调用。存储过程和存储函数在功能上相当于客户端的一段SQL批处理程序,但是在许多方面有着后者无法比拟的优点,它为用户提供了一种高效率的编程手段,成为现代数据库系统的重要特征。通常,我们将存储过程和存储函数统称为存储模块。
- 客户端DMSQL程序
客户端DMSQL程序可以实现的功能与存储模块一致,不同的是客户端DMSQL程序并不创建一个具体的数据库对象。其处理方法为DM数据库服务器在预编译阶段将客户端DMSQL程序转化为虚过程。虚过程不需要存储,创建后立即执行,当执行的语句释放时,虚过程对象也一同被释放。客户端DMSQL程序只从语法上和存储模块兼容,完成和存储模块一样的功能,是一种编程手段。
DMSQL程序的基本结构如下所示:
declare
说明部分
begin
程序体部分
exception
例外处理部分
end;
/
# 其中:
# 说明部分包括:变量常量的说明、游标的申明和例外的申明。
# 程序体部分包括:DML语句序列、条件判断语句和循环语句等。
# 例外处理部分包括:如何处理程序体部分产生例外的语句序列。
在了解了DMLSQL的基本内容后,下面的步骤将开发第一个DM数据库的DMLSQL程序。该程序将在屏幕上输出Hello World的字符串。
(1)登录数据库。
disql sysdba/Welcome_1
(2)在命令行中直接书写DMLSQL程序,打印“Hello World”。程序代码如下:
SQL> declare
--说明部分
begin
--程序体
dbms_output.put_line('Hello World');
end;
/
# 输入回车后执行DMSQL程序。输出的信息如下:
# DMSQL 过程已成功完成
# 已用时间: 5.035(毫秒). 执行号:3500.
# 在输出的信息中没有打印Hello World。
# 这是因为在默认情况下,DM数据库服务器输出是关闭的,需要手动将其打开。
(3)打开达梦服务器的输出开关。
SQL> set serveroutput on
(4)在disql输入一个右斜线重新执行第(1)步中的DMLSQL程序。
SQL> /
# 输出的信息如下:
Hello World
# DMSQL 过程已成功完成
# 已用时间: 0.910(毫秒). 执行号:3502.
(5)在命令行中可以开发并执行DMLSQL程序,但是使用起来并不是很方便。借助DM管理工具可以更好地开发、运行和调试DMLSQL的应用程序。下图展示了在DM管理工具中运行DMLSQL应用程序的效果。