达梦数据库的过程包使用

达梦数据库的过程包使用

过程包即Package,它是存储过程的延伸,包的实现主要包括包头和包体,其中包头主要用于定义接口,包体主要用以实现包体中声明的存储过程、函数等。如果业务中需要用到大量的存储过程,则需要用过程包对存储过程进行进一步的包装,Package 分为Package声明以及Packge body,需要先声明存储过程,存储过程中相关的数据,在Package body中实现声明中的存储过程。

1、查看所有角色
首先创建一张测试的表来测试
create table tab_package_cs (id int, name varchar(100), city varchar(100));
insert into tab_package_cs values(10,‘fuzhou‘,‘福州‘);

2、开始创建包
现在我们开始创建包,创建包分两部分内容:包头和包体,创建包前是需要先对包里的动作做定义申明,也就是我们说的包头,然后再建包体。我们创建一个包来做实验,这个包里有我们可以存储多个存储过程,每个过程又都可以执行一段自己的代码,我们分别在包里设置新删改查表的过程。
create or replace package pkp_package_cs is
e_nocs exception;
cscount int;
pcur cursor;
procedure addcs(pname varchar(100), pcity varchar(100));
procedure removecs(pname varchar(100), pcity varchar(100));
procedure removecs(pid int);
function getcscount return int;
procedure cslist;
end pkp_package_cs;
/

3、创建包体内容语句
create or replace package body pkp_package_cs as
procedure addcs(pname varchar(100), pcity varchar(100)) as
begin
insert into tab_package_cs values(11, pname, pcity);
cscount = cscount + sql%rowcount;
end addcs;
procedure removecs(pname varchar(100), pcity varchar(100)) as
begin
delete from tab_package_cs where name like pname and city like pcity;
cscount = cscount - sql%rowcount;
end removecs;
procedure removecs(pid int) as
begin
delete from tab_package_cs where id = pid;
cscount = cscount - sql%rowcount;
end removecs;
function getcscount return int as
begin
return cscount;
end getcscount;
procedure cslist as
declare
v_id int;
v_name varchar(100);
v_city varchar(100);
begin
if cscount = 0 then
raise e_nocs;
end if;
open pcur for select id, name, city from tab_package_cs;
loop
fetch pcur into v_id,v_name,v_city;
exit when pcur%notfound;
print (‘no.‘ + (cast (v_id as varchar(100))) + ‘ ‘ + v_name + ‘????‘ + v_city );
end loop;
close pcur;
end cslist;
begin
select count(*) into cscount from tab_package_cs;
end pkp_package_cs;
/

4、调用包
首先我们来使用下这个包,调用包里插入表的过程
call pkp_package_cs.addcs (‘xiamen‘, ‘厦门‘);
查询表的数据情况
select * from tab_package_cs;

首先我们来使用下这个包,调用包里删除记录的过程
call pkp_package_cs.removecs (‘xiamen‘, ‘厦门‘);
select * from tab_package_cs;

5、包的管理
编译包,当对包体做修改里可以重新编译
alter package pkp_package_cs compile;

删除包主体和包头,顺序要先删除包体再删除包头
drop package body pkp_package_cs;
drop package pkp_package_cs;

原文地址:https://blog.51cto.com/14615334/2463430

时间: 2024-08-29 18:46:14

达梦数据库的过程包使用的相关文章

[转帖]达梦数据库(DM6)和ORACLE 10g的异同点

达梦数据库(DM6)和ORACLE 10g的异同点    https://bbs.aliyun.com/detail/351337.html 花花浪子 级别: 小白 发帖 0 云币 -41 加关注 写私信 只看楼主 更多操作楼主  发表于: 2017-03-24 比较惭愧,在当上本版版主后一直没有贡献一篇有营养的帖子,由于手上正好有达梦数据 DM6的版本,加上对ORACLE 10G比较熟悉,所以就这2种数据库的异同点做一个对比,也请大家不吝赐教. 对于达梦数据库,因为目前的工作是DBA,主要是对

linux平台配置odbc连接dm7达梦数据库

达梦数据库以 RDBMS 为核心,以 SQL 为标准,是一个能跨越多种软硬件平台.具有大型数据综合管理能力的.高效稳定的通用数据库管理系统.(本次实验环境以dm7为例) DM7 提供了多种数据库访问接口,包括 ODBC.JDBC.DPI.OLEDB 以及嵌入方式等. 下面介绍Linux 平台如何配置ODBC 连接DM7 达梦数据库,这里主要讲手工配置DM7 的ODBC 连接. 1.环境说明 系统环境:中标麒麟NeoKylin Advance V6.0 x86_64.iso [[email pro

DB 查询分析器 6.03 如何灵活、快捷地操作国产达梦数据库

DB 查询分析器 6.03 如何灵活.快捷地操作国产达梦数据库 马根峰 (广东联合电子服务股份有限公司, 广州 510300) 摘要       本文详细地介绍了"万能数据库查询分析器",中文版本<DB 查询分析器>.英文版本<DB Query Analyzer>6.03如何灵活.快捷地操作国产达梦数据库.除了创建基于不同数据库产品的ODBC数据源有所不同外,用"万能数据库查询分析器"操作任何数据库.EXCEL.TXT/CSV文件的方法跟本文

达梦数据库(第一部分)

达梦数据库相关的操作 1. 安装步骤 1.1下载达梦安装包,下载完成之后解压,双击setup.exe,得到如下图所示,语言和时区默认为"简体中文"."中国标准时间",点击"确定": 1.2进入安装向导,点击"开始",如下图: 1.3进入许可证协议,选择"我接受",点击"下一步",如下图: 1.4进入组件版本信息界面,点击"下一步",如下图: 1.5进入上传key文件界

达梦数据库部署

达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM.本次将进行DM8的开发版本的部署 1  系统软硬件要求 1.1  硬件要求 达梦官方文档中给出的硬件要求如下:  1.2  软件要求 软件环境的要求如下 1.3  环境检查 本次是在centos6上安装DM8的开发版,系统检测信息如下 /** 操作系统版本*/ [[email protected] ~]# cat /etc/redhat-release CentOS release 6.6 (Final) /

Linux平台达梦数据库V7单实例安装方式之静默方式

一 前言 我们在学习任何一个应用时,了解它的最初步骤通常是学会如何进行安装配置,后序才去关心如何使用,学习达梦数据库也是如此,而达梦数据库的安装提供了多种方式,接下来会一一介绍每种安装方式,达梦数据库支持多个操作系统平台的安装,本篇主要介绍Linux平台下的静默方式安装. 二 安装需求 2.1 硬件需求 用户应根据 DM 及应用系统的需求来选择合适的硬件配置,如 CPU 的指标.内存及磁盘容量等.档次一般应尽可能高一些,尤其是作为数据库服务器的机器,基于 Java 的程序运行时最好有较大的内存.

达梦数据库的备份和还原

达梦数据库的备份和还原 达梦数据库的备份还原方式:物理备份还原和逻辑备份还原物理备份:冷备:(dmap服务打开的状态下,数据库是关闭的)热备:(dmap服务一定是打开的,数据库是打开的,数据库要开归档)物理备份还原是对数据库的操作系统物理文件(如数据文件.控制文件和日志文件等)的备份还原. 逻辑备份:导出:dexp导入:dimp逻辑导出和逻辑导入数据库对象分为四种级别:数据库级.用户级.模式级和表级.四种级别独立互斥,不能同时存在.四种级别所提供的功能: ? 数据库级(FULL):导出或导入整个

达梦数据库的问题随手记--持续更新

达梦数据库的问题随手记 这篇主要是记录在操作达梦数据库过程中出现的问题随手做记录,有些问题是刚开始不熟悉原因乱操作导致的,部分问题因为各种原因没详细研究,部分问题已经处理有做了描述. 20191016安装时提示法执行二进制文件 /tmp/DMInstall/install/install_zh_UTF.sh:行334: /tmp/DMInstall/source/jdk/bin/java: 无法执行二进制文件 继续执行后还是有提示错误,如下: 原因:是DM7版本不匹配.针对泰山服务器,要用arm

达梦数据库的初始运用

用命令方式建立数据库 在达梦的bin目录下使用dminit ./dminit path=/dm7/data db_name=DM01 instance_name=EST port_num=5327 达梦数据库的状态 4种状态 shutdown mount open suspend 状态切换 shutdown -- mount shutdown -- open open -- mount 查看状态 select status$ from v$instance; 启动数据库 方式一 在达梦安装bin