日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

DM8达梦数据库存储过程函数使用

發布時間:2024/3/24 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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达梦数据库存储过程函数使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。