当前位置: 首页 > news >正文

【赵渝强老师】达梦数据库的DMSQL

在这里插入图片描述

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应用程序的效果。
在这里插入图片描述
《达梦数据库从零开始》

http://www.dtcms.com/a/314739.html

相关文章:

  • Dify的部署(Docker Desktop )
  • 【Python小工具】图片转PDF
  • 破除陈规陋习的有效措施
  • Dynamic Programming【DP】2
  • RAG中的评估指标总结:BLEU、ROUGE、 MRR、MAP、nDCG、Precision@k、Recall@k 等
  • AR远程协作网页设计:虚实融合场景下的故障标注与操作指引界面
  • cf--思维训练
  • Git如何为多平台配置密钥和用户信息?
  • Git简易教程
  • PEAFOWL-IEEE-2025
  • Integer Types Range and varieties
  • 20250723-算法分析与设计之旅行商问题(Traveling Salesman Problem,TSP)
  • Antlr学习笔记 01、maven配置Antlr4插件案例Demo
  • golang的数组
  • SpringBoot-手动配置环境
  • VUE2 学习笔记17 路由
  • 一起学springAI系列一:流式返回
  • 嵌入式 - 数据结构:查找至双向链表
  • CUDA后端错误的根源与系统性解决方案
  • python文件操作:写入内容write
  • Linux 服务器性能监控、分析与优化全指南
  • Linux 安装与配置 MySQL 教程
  • 项目实战二:RPC
  • 自制简易SHELL
  • 数据结构:单向链表、双向链表
  • Java中给List<T> 对象集合去重
  • 深化中坦经贸合作 谱写东非璀璨新篇!东非商贸物流中心(EACLC)正式启航
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现路口车辆速度的追踪识别(C#代码UI界面版)
  • 通过java将 word(.doc) 转 md
  • Java数组转换为逗号分隔字符串的方法