DM8达梦数据库存储过程函数使用
? ? ? ?DM8數據庫的過程函數的編寫主要分為4個部分:過程頭部分,聲明定義部分,執行部分和異常處理部分。在編寫方面,過程和函數的主要區別還是函數可以返回一個值,但是過程沒有。下面就從這4個部分來分別介紹過程的編寫和一些常用的技巧(循環,條件,過程函數調用,游標等。)
? ? ? ? 在DM8的過程變異方面,數據庫提供了2種基本的編譯工具,可視窗口化的DM管理工具和命令行式的dmdbg工具。由于DM管理工具在編譯時更簡單方便,所以下面都用DM管理工具來演示編譯的過程。
目錄
1.建立最基本的存儲過程
2.過程中聲明的定義類型
3.條件語句?
4.循環語句
5.游標
6.異常處理
1.建立最基本的存儲過程
可以選擇新建存儲過程。
?也可以直接在SQL窗口中創建語句。
?這樣一個最基本的過程就寫完了。
2.過程中聲明的定義類型
在過程聲明時可以定義變量的類型與表字段的類型一致。這樣在表字段類型發生變化時,過程不會因為變量不匹配的問題而報錯。
先建一個表
?把表的字段類型定義成變量的類型
在聲明的%ROWTYPE一般用于游標中。
3.條件語句?
DM程序里面的條件語句主要有if-then條件語句,case-when條件語句和switch-case-break條件語句。這里介紹if-then條件語句。if-then語句在程序塊中出現的頻率非常高,其結構主要由if-then-(elseif-then)-(else)-end if組成。下面的過程就是做了一個簡單的判斷
4.循環語句
DM程序里的循環主要有loop循環,for循環,while循環。這里介紹下本人用的最多的for循環。在sql程序中,循環可以做到很多批量重復性的工作,大大減少了人們的工作量。這里寫一個批量往單表中插入數據的循環sql。
?跑完過程可以查看表中數據是否插入
?
5.游標
DM數據庫的游標分為動態游標和靜態游標。靜態游標又分為顯示游標和隱式游標。
靜態顯示游標:需要在聲明處定義游標,游標的結果集一旦聲明就不發生變化。
靜態隱式游標:游標不需要聲明,在數據庫的DML操作之后都會隱式的生成一個游標。
動態游標:在聲明處只需要定義游標名稱,游標結果集可以在過程的執行部分進行規定。
此處演示一下靜態顯示游標的用法。
? ? ? ? 此處選擇昨日的日期跑此過程,查看表中的數據
?
6.異常處理
? ? ? ?異常處理作為數據庫程序中非常重要的一環,在程序報錯或者異常退出時,能讓工作人員及時的定位問題的根本原因。所以,寫好異常處理部分可以減少很多維護上的時間和成本。
? ? ? ?異常處理分為預定義的異常處理和自定義的異常處理。下面演示一下預定義的異常處理和自定義的異常處理。
? ? ? ?首先先建一個日志表,用來存放每次程序執行的日志。
? ? ? ?然后寫一個完整的異常處理功能來測試一下。
?測試找一天不在昨天和今天的日期,程序就會走到拋出自定義異常的地方,隨后產看日志表就可以看到程序報錯的大致信息。
再在程序中加一個除數為0的錯誤,測試一下預定義的異常,結果如下表:?
更多資訊請上達夢技術社區了解:https://eco.dameng.com
總結
以上是生活随笔為你收集整理的DM8达梦数据库存储过程函数使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring Boot(二)——项目热部
- 下一篇: vmware虚拟机硬盘扩容