【DM】达梦数据库中的包实例

CREATE OR REPLACE PACKAGE PERSON AS --创建规范

NOPERSON EXCEPTION; --定义异常

PERSONCOUNT INT; --定义变量

CSR CURSOR; --定义游标

PROCEDURE ADDPERSON(NAME VARCHAR(50),CITY VARCHAR(50)); --加人

PROCEDURE REMOVEPERSON(V_NAME VARCHAR(50),V_CITY VARCHAR(50)); --删人

PROCEDURE REMOVEPERSON(V_ID INT); --重载、删人

FUNCTION GETPERSONCOUNT RETURN INT; --函数,返回人数

PROCEDURE GETPERSONLIST; --获取所有人信息

END PERSON; --结束创建

创建包主体

CREATE OR REPLACE PACKAGE BODY PERSON AS

PROCEDURE ADDPERSON(NAME VARCHAR(50),CITY VARCHAR(50)) AS

BEGIN

INSERT INTO TEST(NAME,CITY) VALUES(NAME,CITY);

PERSONCOUNT=PERSONCOUNT+SQL%ROWCOUNT;

END ADDPERSON;

PROCEDURE REMOVEPERSON(V_NAME VARCHAR(50),V_CITY VARCHAR(50)) AS

BEGIN

DELETE FROM TEST WHERE NAME LIKE V_NAME AND CITY LIKE V_CITY;

PERSONCOUNT=PERSONCOUNT-SQL%ROWCOUNT;

END REMOVEPERSON;

PROCEDURE REMOVEPERSON(V_ID INT) AS

BEGIN

DELETE FROM TEST WHERE ID=V_ID;

PERSONCOUNT=PERSONCOUNT-SQL%ROWCOUNT;

END REMOVEPERSON;

FUNCTION GETPERSONCOUNT RETURN INT AS

BEGIN

RETURN PERSONCOUNT;

END GETPERSONCOUNT;

PROCEDURE GETPERSONLIST AS

DECLARE

V_ID INT;

V_NAME VARCHAR(50);

V_CITY VARCHAR(50);

BEGIN

IF PERSONCOUNT=0 THEN

RAISE NOPERSON;

END IF;

OPEN CSR FOR SELECT ID,NAME,CITY FROM TEST;

LOOP

FETCH CSR INTO V_ID,V_NAME,V_CITY;

EXIT WHEN CSR%NOTFOUND;

PRINT (CAST(V_ID AS VARCHAR(50))||‘号学生是’||V_NAME||‘,来自’||V_CITY);

END LOOP;

CLOSE CSR;

END GETPERSONLIST;

BEGIN

SELECT COUNT(*) INTO PERSONCOUNT FROM TEST;

END PERSON

重新编译包

ALTER PACKAGE PERSON COMPILE;

调用包中的ADDPERSON过程,往表中加一条记录

SQL> CALL PERSON.ADDPERSON(‘赵开’,‘北京’);

DMSQL 过程已成功完成

已用时间: 1.963(毫秒). 执行号:1925.

SQL> SELECT * FROM TEST;

行号 ID NAME CITY


1 1 叶枫 上海

2 2 沈淼 武汉

3 3 罗云 成都

4 4 赵开 北京

已用时间: 0.412(毫秒). 执行号:1926.

SQL>

调用REMOVEPERSON过程,删除刚刚加的记录

SQL> CALL PERSON.REMOVEPERSON(‘赵开’,‘北京’);

DMSQL 过程已成功完成

已用时间: 13.914(毫秒). 执行号:1979.

SQL> SELECT * FROM TEST;

行号 ID NAME CITY


1 1 叶枫 上海

2 2 沈淼 武汉

3 3 罗云 成都

已用时间: 0.159(毫秒). 执行号:1980.

学习分享,共勉

这里是小编拿到的学习资源,其中包括“中高级Java开发面试高频考点题笔记300道.pdf”和“Java核心知识体系笔记.pdf”文件分享,内容丰富,囊括了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。同时还有Java进阶学习的知识笔记脑图(内含大量学习笔记)!

资料整理不易,读者朋友可以转发分享下!

Java核心知识体系笔记.pdf

记一次蚂蚁金服Java研发岗的面试经历,分享下我的复习笔记面经

中高级Java开发面试高频考点题笔记300道.pdf

记一次蚂蚁金服Java研发岗的面试经历,分享下我的复习笔记面经

架构进阶面试专题及架构学习笔记脑图

记一次蚂蚁金服Java研发岗的面试经历,分享下我的复习笔记面经

Java架构进阶学习视频分享

Java核心知识体系笔记.pdf

[外链图片转存中…(img-Dq1VFYhM-1720081420455)]

中高级Java开发面试高频考点题笔记300道.pdf

[外链图片转存中…(img-ZhzqPKLK-1720081420455)]

架构进阶面试专题及架构学习笔记脑图

[外链图片转存中…(img-g1Kusky8-1720081420456)]

Java架构进阶学习视频分享

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值