达梦数据库存储过程及存储过程调用

/***Manager***/CREATE OR REPLACE PROCEDURE "GZAPP_09"."SP_OLAP_V_BUILDINGTYPE"("P_DATE" IN DATE)
AUTHID DEFINER
IS
/*=============================================================
*功能说明:房屋类型分析(高层楼宇,多层楼宇,临时棚屋,其它)
* 统计市级别,行政区,街镇,居委会
* 入口参数:统计时间
* 出口参数:无
* 创建人及时间: dfb 20160922
* 修改人及时间:
*============================================================*/
v_sqlcode number;
v_sqlerrm varchar2(4000);
v_begintime varchar2(20);
v_endtime varchar2(20);
v_fwdlx varchar2(10);
v_sql varchar2(5000);
BEGIN
v_begintime:=to_char(sysdate,‘yyyy/mm/dd hh24:mi:ss‘);
EXECUTE IMMEDIATE ‘TRUNCATE TABLE TN_OLAP_V_BUILDINGTYPE_TMP1‘;
delete from OLAP_V_BUILDINGTYPE;
commit;

insert into TN_OLAP_V_BUILDINGTYPE_TMP1(
TJQY,
QYDM,
FWLX01 ,
FWLX02 ,
FWLX03 ,
FWLX04 )

SELECT TJQY,
qydm,
FWLXGCLY FWLX01,--高层楼宇类型栋数
FWLXDCLY FWLX02,--低层楼宇类型栋数
FWLXLSPW FWLX03,--临时棚屋类型栋数
FWLXQT FWLX04 --其他类型栋数
FROM T_STAT_CZWD
where tjrq=p_date
and bblx=‘M‘;
COMMIT;

-- 01-04类房屋栋类型
for fwdlx in 1 .. 4 loop

if fwdlx < 10 then
v_fwdlx := ‘0‘ || fwdlx;
else
v_fwdlx := fwdlx;
end if;

v_sql :=‘INSERT INTO OLAP_V_BUILDINGTYPE
( BUITYPEDM,--房屋栋类型代码
BUITYPEMC,--房屋栋类型名称
TJQY,--统计区域
QYDM,--区域代码
QYMC,--区域名称
XZQDM,--行政区代码
XZQ, --行政区名称
JZDM ,--街镇代码
JZ, --街镇名称
JWHDM,--居委会代码
JWH , --居委会名称
AMOUNT--数量
)
select t.FWDLX,
a.mc,
t.tjqy,
t.qydm,
case when tjqy=‘‘SHIJB‘‘ THEN ‘‘全市‘‘
when tjqy=‘‘XZQ‘‘ then b.xzq
when tjqy=‘‘JZ‘‘ THEN b.jz
when tjqy=‘‘JWH‘‘ THEN b.jwh
end qymc,
b.xzqdm,
b.xzq,
b.jzdm,
b.jz ,
b.jwhdm,
b.jwh,
t.amount
from (select ‘‘‘||v_fwdlx||‘‘‘ FWDLX,qydm ,FWLX‘||v_fwdlx||‘ amount,tjqy from TN_OLAP_V_BUILDINGTYPE_TMP1) t,
--(select * from t_xtzd where dmlx=‘‘FWLX‘‘) a,
(select BUITYPEDM dm,BUITYPEMC mc,id from OLAP_MEASURE_BUILDINGTYPE) a,--把系统字典表改成这个维表 修改于2016.10.11 dfb
OLAP_V_LOCALAREA b
where t.FWDLX=a.id
and t.qydm=b.qydm ‘;
execute immediate v_sql;
end loop;

v_endtime:=to_char(sysdate,‘yyyy/mm/dd hh24:mi:ss‘);
--记录程序执行开始时间和结束时间
insert into T_LOG(pro_name,tj_date,begin_time,end_time,run_result) values(‘SP_OLAP_V_BUILDINGTYPE‘,p_date,v_begintime,v_endtime,‘Y‘);
commit;
--异常处理
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
v_sqlcode :=sqlcode;
v_sqlerrm :=substr(sqlerrm, 1, 2000);
insert into T_LOG(pro_name,err_time,err_code,err_infor,run_result,tj_date) values(‘SP_OLAP_V_BUILDINGTYPE‘,sysdate,v_sqlcode,v_sqlerrm,‘N‘,p_date);
commit;
DBMS_OUTPUT.PUT_LINE(SUBSTR(SQLERRM, 1, 200));

END SP_OLAP_V_BUILDINGTYPE;

------------------------------------------------存储过程调用-----------------------------------------------

/***Manager***/CREATE OR REPLACE PROCEDURE "GZAPP_09"."PKG_STAT_DAY"("P_DATE" IN DATE)
AUTHID DEFINER

IS
/*=============================================================
*功能说明:日报表调度汇总
* 入口参数:统计时间
* 出口参数:无
* 创建人及时间: dfb 20160906
* 修改人及时间:
*============================================================*/
v_sqlcode number;
v_sqlerrm varchar2(4000);
v_begintime varchar2(20);
v_endtime varchar2(20);
BEGIN

v_begintime:=to_char(sysdate,‘yyyy/mm/dd hh24:mi:ss‘);

SP_OLAP_V_BUILDINGTYPE(p_date);
v_endtime:=to_char(sysdate,‘yyyy/mm/dd hh24:mi:ss‘);
--记录程序执行开始时间和结束时间
insert into T_LOG(pro_name,tj_date,begin_time,end_time,run_result) values(‘PKG_STAT_DAY‘,p_date,v_begintime,v_endtime,‘Y‘);
commit;
--异常处理
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
v_sqlcode :=sqlcode;
v_sqlerrm :=substr(sqlerrm, 1, 2000);
insert into T_LOG(pro_name,err_time,err_code,err_infor,run_result,tj_date) values(‘PKG_STAT_DAY‘,sysdate,v_sqlcode,v_sqlerrm,‘N‘,p_date);
commit;
DBMS_OUTPUT.PUT_LINE(SUBSTR(SQLERRM, 1, 200));

END PKG_STAT_DAY;

原文地址:https://www.cnblogs.com/phoneber/p/8203634.html

时间: 2024-11-20 07:20:06

达梦数据库存储过程及存储过程调用的相关文章

达梦数据库的存储过程

达梦数据库的存储过程 数据库的存储过程是非常好的一个功能,有用过oracle存储过程的同学再来写达梦的存储过程就非常容易.说说存储过程的优点: 1.让业务执行效率更高,因为语句在存储过程都是编译好的,执行速度更快.2.业务包装更灵活,允许存储过程互相调用,也类似程序方法的复用. 3.提高数据安全性,防止SQL随便注入. 1.创建存储过程(带参数)创建一张表做测试create table tab11 (id int primary key, name varchar(30)); create or

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

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

达梦数据库常用功能及命令记录--持续更新

达梦数据库常用功能及命令记录 达梦数据库语句的使用总体来说跟oracle很接近的,这篇文章主要是把常用的情况和语句做了记录,并且后续还会不断的持续更新 达梦数据库常用说明 1.测试查询语句:select 1;select top 2 from v$dm_ini; select from v$dm_ini limit 2;select * from v$dm_ini where rownum<2; 2.达梦大小写:DM7.6之前版本默认密码是转为大写存储的,登录时要注意.比如用户设置test/te

达梦数据库的过程包使用

达梦数据库的过程包使用 过程包即Package,它是存储过程的延伸,包的实现主要包括包头和包体,其中包头主要用于定义接口,包体主要用以实现包体中声明的存储过程.函数等.如果业务中需要用到大量的存储过程,则需要用过程包对存储过程进行进一步的包装,Package 分为Package声明以及Packge body,需要先声明存储过程,存储过程中相关的数据,在Package body中实现声明中的存储过程. 1.查看所有角色首先创建一张测试的表来测试create table tab_package_cs

达梦数据库的触发器管理

达梦数据库的触发器管理 触发器类型有分为操作前触发.操作后触发.DLL事件触发.系统事件触发.时间触发等等,触发器与存储过程的区别是触发器不能单独执行调用,而是在用户执行特定语句时自动触发执行触发器.以下举例常见的插入事件.更新事件做演示. 1.创建BEFORE触发器测试准备工作创建触发器前先建两张测试表(数据表和结果表),目的在数据表插入前就执行触发器里的语句,触发器里的语句是统计当前数据库的记录数.create table tab_before(id int, name varchar(20

达梦数据库

安装准备: groupadd dinstall useradd dinstall -g dinstall passwd dinstall mkdir /u02/dm7 chown dinstall.dinstall /u02/dm7 -R ulimit -a vi /etc/profile ulimit -n 65536 vi .bash_profile export DM_HOME=/u02/dm7 export PATH=$PATH:$HOME:$DM_HOME/bin export DIS

基于Enterprise Library的Winform开发框架实现支持国产达梦数据库的扩展操作

由于一个客户朋友的需求,需要我的Winform开发框架支持国产达梦数据库的操作,这个数据库很早就听过,但是真正一般项目用的很少,一般在一些特殊的项目可能需要用到.由于我的Winform开发框架,是基于Enterprise Library的数据访问层的实现,因此增加一个数据库的支持很容易,本文介绍如何在框架层面上支持这种神秘的国产数据库-达梦数据库. 1.达梦数据库的简单介绍 达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM.达梦数据库管理系统的最新版本是7.

达梦数据库安装和创建表

1.达梦数据库安装 2.达梦命令行sql工具 进去达梦数据库安装目录下的/bin目录 运行./disql 输入用户名和密码: 默认的管理用户SYSDBA 的初始密码是SYSDBA 在sql> 工具里边执行sql操作

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

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

国产达梦数据库的结合Enterprise Library的应用开发

在上篇<基于Enterprise Library的Winform开发框架实现支持国产达梦数据库的扩展操作>介绍了如何在Enterprise Library的数据访问层上支持这种神秘的国产数据库-达梦数据库.本文继续这一主题,介绍产达梦数据库的结合Enterprise Library的应用开发. 1.达梦数据库还原处理 达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM.达梦数据库管理系统的最新版本是7.0版本,简称DM7.DM7提供对SQL92的特性支持以及