- 浏览: 257894 次
- 性别:
- 来自: 烟台
最新评论
-
全冠清:
雷总???
原谅我离开你 -
geminiyellow:
qingzi2534 写道发这个帖子的时候,我订婚了,距离今天 ...
原谅我离开你 -
qingzi2534:
发这个帖子的时候,我订婚了,距离今天已经过去整整3年了。这3年 ...
原谅我离开你 -
qingzi2534:
我没有自己创业,只是考了个电视台的事业编制,这个工作也做块两年 ...
工作两年半,准备创业.成名是越早越好,创业也是一样. -
shily_yuanling:
呵呵……我也是因为做自己的事业而和男朋友分手了,为什么不能女程 ...
原谅我离开你
不知道这样写存储过程,是不是不够优化?
- create or replace function F_GET_WORK_DAYS_COLOR
- (
- in_begin_date DATE,
- in_end_date DATE,
- in_first_days number,
- in_second_days number
- )
- return varchar2 is
- /*=========================================================
- 功能:去掉休息日,去工作日,
- 说明:传入日期 和 工作日天数,返回到期时间
- 创建:
- 修改:
- 时间:2006-12-12
- =========================================================*/
- v_color varchar(20);
- v_days number(6);
- --v_exception Exception;
- begin
- select count(1)
- into v_days
- from ZX_CALENDAR_AND_REST z
- where z.calendar_day >= trunc(in_begin_date)
- and z.calendar_day <= trunc(in_end_date)
- and z.rest_flag = 'N';
- if v_days > in_first_days and v_days <= in_second_days then
- v_color := 'yellow';
- elsif v_days > in_second_days then
- v_color := 'red';
- else
- v_color := 'white';
- end if;
- return v_color;
- exception
- when others then
- rollback;
- -- p_pub_error_log(v_result, sqlcode, sqlerrm, 'sf_f_note_issue_confirm');
- return sysdate;
- end;
- create or replace function F_ZX_WORK_SHEET_VERIFY_NOTICES(
- begin_day date,
- end_day date,
- v_operator varchar2,
- stat_bureau varchar2)
- return integer is
- ------------------------------------------------------------------------------------------
- -- 功能:工单通告预警
- -- 参数:当前日期
- -- 创建: 2007-1-24
- -- 修改:
- ------------------------------------------------------------------------------------------
- v_day date;
- v_end_day date;
- v_busi varchar2(8);
- v_result integer;
- begin
- v_day := sysdate ;
- v_busi := stat_bureau;
- v_end_day := end_day;
- --初使化v_busi
- if v_busi = '%' then
- v_busi := 'TT';
- end if;
- --清除已经发布的内容
- v_result := -10;
- delete from ZX_WORK_SHEET_VERIFY_NOTICES h
- where h.start_day = begin_day and
- h.end_day = v_end_day and
- (h.STAT_BUREAU = v_busi or h.bureau_code = v_busi); --新加的列,统计单位
- dbms_output.put_line('liuhui');
- --插入数据
- v_result := -20;
- if v_busi = 'TT' then
- insert into ZX_WORK_SHEET_VERIFY_NOTICES
- (
- NOTICE_LEVEL ,
- NOTICE_DAY ,
- SHEET_NUM ,
- SHEET_RATE ,
- RATE_NUM ,
- REMARK ,
- BUREAU_CODE ,
- OPERATOR ,
- DATA_TIME ,
- START_DAY ,
- END_DAY ,
- STAT_BUREAU )
- SELECT DECODE(W.COLOR,'red',1,'yellow',2,3),
- v_day,
- W.NUM,
- 0,
- 0,
- DECODE(W.COLOR,'red','非常严重','yellow','严重',''),
- W.BUREAU_CODE,
- v_operator ,
- v_day,
- begin_day ,
- v_end_day ,
- v_busi
- FROM
- (select count(1) NUM,
- z.bureau_code BUREAU_CODE,
- max(F_GET_WORK_DAYS_COLOR(z.confirm_date,decode(z.back_verify_date,'',sysdate,z.back_verify_date),3,13)) COLOR
- from ZX_WORK_SHEET_VERIFY z
- where F_GET_WORK_DAYS_COLOR(z.confirm_date,decode(z.back_verify_date,'',sysdate,z.back_verify_date),3,13) <> 'white'
- and z.confirm_sign = 'Y' and z.app_date between begin_day and v_end_day and (z.error_type <> '0' or z.error_type is not null)
- group by z.bureau_code,F_GET_WORK_DAYS_COLOR(z.confirm_date,decode(z.back_verify_date,'',sysdate,z.back_verify_date),3,13)
- ORDER BY COLOR,NUM ) W;
- ELSE
- insert into ZX_WORK_SHEET_VERIFY_NOTICES
- (
- NOTICE_LEVEL ,
- NOTICE_DAY ,
- SHEET_NUM ,
- SHEET_RATE ,
- RATE_NUM ,
- REMARK ,
- BUREAU_CODE ,
- OPERATOR ,
- DATA_TIME ,
- START_DAY ,
- END_DAY ,
- STAT_BUREAU )
- SELECT DECODE(W.COLOR,'red',1,'yellow',2,3),
- v_day,
- W.NUM,
- 0,
- 0,
- DECODE(W.COLOR,'red','非常严重','yellow','严重',''),
- W.BUREAU_CODE,
- v_operator ,
- v_day,
- begin_day ,
- v_end_day ,
- v_busi
- FROM
- (select count(1) NUM,
- z.bureau_code BUREAU_CODE,
- max(F_GET_WORK_DAYS_COLOR(z.confirm_date,decode(z.back_verify_date,'',sysdate,z.back_verify_date),3,13)) COLOR
- from ZX_WORK_SHEET_VERIFY z
- where F_GET_WORK_DAYS_COLOR(z.confirm_date,decode(z.back_verify_date,'',sysdate,z.back_verify_date),3,13) <> 'white'
- and z.confirm_sign = 'Y' and z.app_date between begin_day and v_end_day and (z.error_type <> '0' or z.error_type is not null)
- group by z.bureau_code,F_GET_WORK_DAYS_COLOR(z.confirm_date,decode(z.back_verify_date,'',sysdate,z.back_verify_date),3,13)
- ORDER BY COLOR,NUM ) W
- WHERE W.BUREAU_CODE = v_busi;
- end if;
- ------合计
- v_result := -30;
- IF v_busi = 'TT' then
- insert into ZX_WORK_SHEET_VERIFY_NOTICES
- (
- NOTICE_LEVEL ,
- NOTICE_DAY ,
- SHEET_NUM ,
- SHEET_RATE ,
- RATE_NUM ,
- REMARK ,
- BUREAU_CODE ,
- OPERATOR ,
- DATA_TIME ,
- START_DAY ,
- END_DAY ,
- STAT_BUREAU )
- SELECT DECODE(t.notice_level,'',3,t.notice_level),
- v_day,
- sum(nvl(t.sheet_num,0)),
- '',
- max(0),
- max(t.remark),
- 'TT' ,
- v_operator ,
- v_day,
- begin_day ,
- v_end_day ,
- v_busi
- from ZX_WORK_SHEET_VERIFY_NOTICES t
- where t.start_day = begin_day
- and t.end_day = v_end_day
- and t.bureau_code <> v_busi
- and t.stat_bureau = v_busi
- group by rollup(t.notice_level);
- end if;
- ----工单超期率 不包括天津的
- v_result := -40;
- if v_busi = 'TT' then
- update ZX_WORK_SHEET_VERIFY_NOTICES B
- set (B.SHEET_RATE) = (select round(decode((select count(*) from ZX_WORK_SHEET_VERIFY z
- where z.app_date between begin_day and v_end_day
- and z.bureau_code = a.bureau_code
- and (z.confirm_date <> date'1900-1-1' or z.confirm_date is not null)),0,0,
- (select sum(c.SHEET_NUM) from ZX_WORK_SHEET_VERIFY_NOTICES c
- where c.bureau_code = a.bureau_code
- and a.notice_level = c.notice_level
- and b.start_day = c.start_day
- and c.end_day = b.end_day and c.bureau_code <> v_busi and
- c.stat_bureau = v_busi )
- /
- (select count(*) from ZX_WORK_SHEET_VERIFY z
- where z.app_date between begin_day and v_end_day
- and z.bureau_code = a.bureau_code
- and (z.confirm_date <> date'1900-1-1' or z.confirm_date is not null))),4)*100
- from ZX_WORK_SHEET_VERIFY_NOTICES a
- WHERE A.BUREAU_CODE = B.BUREAU_CODE
- AND A.NOTICE_LEVEL = B.NOTICE_LEVEL
- and b.start_day = a.start_day
- and a.end_day = b.end_day
- and a.bureau_code <> v_busi AND A.STAT_BUREAU = B.STAT_BUREAU);
- else
- update ZX_WORK_SHEET_VERIFY_NOTICES B
- set (B.SHEET_RATE) = (select round(decode((select count(*) from ZX_WORK_SHEET_VERIFY z
- where z.app_date between begin_day and v_end_day
- and z.bureau_code = a.bureau_code
- and (z.confirm_date <> date'1900-1-1' or z.confirm_date is not null)),0,0,
- (select sum(nvl(c.SHEET_NUM,0)) from ZX_WORK_SHEET_VERIFY_NOTICES c
- where c.bureau_code = a.bureau_code
- and a.notice_level = c.notice_level
- and b.start_day = c.start_day
- and c.end_day = b.end_day
- )
- /
- (select count(*) from ZX_WORK_SHEET_VERIFY z
- where z.app_date between begin_day and v_end_day
- and z.bureau_code = a.bureau_code
- and (z.confirm_date <> date'1900-1-1' or z.confirm_date is not null))),4)*100
- from ZX_WORK_SHEET_VERIFY_NOTICES a
- WHERE A.BUREAU_CODE = B.BUREAU_CODE
- AND A.NOTICE_LEVEL = B.NOTICE_LEVEL
- and b.start_day = a.start_day
- and a.end_day = b.end_day
- and a.bureau_code = v_busi AND A.STAT_BUREAU = B.STAT_BUREAU);
- end if;
- -----排名
- v_result := -50;
- if v_busi = 'TT' then
- update ZX_WORK_SHEET_VERIFY_NOTICES B
- set (B.RATE_NUM) = (select r.row_num
- FROM (
- SELECT row_number () over (PARTITION by z.NOTICE_LEVEL order by z.SHEET_RATE asc) row_num,
- Z.BUREAU_CODE , Z.NOTICE_LEVEL
- FROM ZX_WORK_SHEET_VERIFY_NOTICES Z where
- begin_day = z.start_day and v_end_day = z.end_day and z.notice_level <> 3 AND Z.BUREAU_CODE <> v_busi
- AND Z.STAT_BUREAU = v_busi
- ) r
- WHERE r.BUREAU_CODE = B.BUREAU_CODE AND r.NOTICE_LEVEL = B.NOTICE_LEVEL );
- else update ZX_WORK_SHEET_VERIFY_NOTICES B
- set (B.RATE_NUM) = '';
- end if;
- commit;
- return 0;
- exception
- when others then
- begin
- rollback ;
- P_PUB_ERROR_LOG(v_result,sqlcode,sqlerrm,'F_ZX_WORK_SHEET_VERIFY_NOTICES');
- return v_result;
- end;
- END;
发表评论
-
ORACLE中的物化视图
2007-12-30 16:07 2848物化视图是包括一个查询结果的数据库对像,它是远程数据的的本 ... -
数据库查询,两种方法,为什么查询出不一样的数据量。
2007-10-19 16:21 1715select count(1) FROM aaaaa DD, ... -
SQL语句性能调整
2007-03-27 11:25 1611SQL语句性能调整的目标是: 去掉不必要的大表全表扫描 ... -
Oracle 基本知识
2007-03-24 15:30 1360一个表空间只能属于 ... -
Oracle函数小解
2007-03-24 15:18 2338SQL中的单记录函数 1.ASCI ... -
Oracle 数据类型
2007-03-24 15:14 1741... -
简单理解外连接
2007-01-16 17:42 4376sql的高级查询有四种连接,分别是:等值连接,非等值连接,外连 ...
相关推荐
植株在生长过程中通常有20片左右的叶子,显示出良好的生长活力。其果穗呈现筒形,穗长大约17.9厘米,穗行数稳定在14-16行,穗轴为红色,籽粒类型为半马齿型,颜色饱满。每100粒的重量约为36.7克,出籽率高达86.0%,...
ASP.NET SQL 存储过程分页是...通过创建合适的存储过程,正确配置ASP.NET的控件,以及处理好分页事件,我们可以构建出高效且用户友好的数据展示页面。在实际开发中,应不断学习和优化这些技巧,以适应不同场景和需求。
MySQL 存储过程实践指南 MySQL 存储过程是 MySQL 数据库中的一种程序化对象,它允许用户根据...通过这些实验,我们可以更好地理解和掌握 MySQL 存储过程的概念、语法格式和使用方法,从而提高数据库的性能和安全性。
描述中提到的“没有用过,不知道好不好用”,这可能是用户对于特定的解码工具或技术的初次尝试。在实际应用中,选择合适的解码工具至关重要,因为不同的工具可能有不同的兼容性、效率和易用性。 标签中的“解码方法...
但是,自定义动态数组可以作为学习过程的一部分,帮助理解内存管理、动态分配和增长策略等概念。下面我们将深入探讨动态数组的基本原理及其可能的实现方式。 动态数组的核心特性包括: 1. **动态扩展**:当数组满...
我虽然已经有多年不写代码了,但看这本书的时候,让我又重新感受到做程序员的乐趣:用代码建设属于自己的系统,让电脑听从自己的指令,对系统的每个部分都了如指掌。 黑客(hacker)实际是褒义词,维基百科的解释是...
我虽然已经有多年不写代码了,但看这本书的时候,让我又重新感受到做程序员的乐趣:用代码建设属于自己的系统,让电脑听从自己的指令,对系统的每个部分都了如指掌。 黑客(hacker)实际是褒义词,维基百科的解释是...
知心招聘源码是一款基于Web的招聘管理系统,用于模拟企业招聘流程和求职者应聘过程。在这款毕业设计中,开发者可能涵盖了多个IT领域的知识点,包括前端开发、后端开发、数据库设计以及用户交互等。虽然作者自谦地...
注册表是Windows系统中的核心数据库,存储着系统和应用程序的各种配置信息,包括软件设置、硬件设备信息、用户设置等。通常,通过“regedit”命令或者“运行”对话框来访问注册表编辑器,但这种方式往往需要在层次...
标题“GWT(很好的资料和书籍不好你打我)”可能是在幽默地强调GWT的相关资源虽然优秀,但可能不容易找到,特别是高质量的书籍。这提示我们,尽管GWT是一个强大的工具,但学习资源的获取可能会有一些挑战。 描述中...
"我的代泊员"是一款由上海泊友慧信息技术有限公司开发的应用程序,专注于提供停车代泊服务。这款项目的核心目标是为用户提供便捷、安全的车辆停放解决方案,尤其在城市中的繁忙地段,用户可以通过此应用轻松找到专业...
Bandicam采用高效的压缩算法,即便在高分辨率下录制,文件大小也能得到很好的控制,减少了存储空间的需求。同时,压缩后的视频在画质上几乎无损,保持了原始的清晰度。 **6. 图形处理单元(GPU)加速** 为了提高...
优缺点:OPT 算法因为要需要预先知道一个进程在整个运行过程中页面走向的全部情况,因此只是一种理想状态,实际是不可能实现的。但是,它可以作为一种衡量其他算法优劣的标准。 页面置换算法是存储管理的重要组成...
在描述中提到“不好弄了”,这可能意味着该工具的使用过程可能较为复杂,或者由于某些原因(如版本更新、API变动或技术支持减少)使得操作变得困难。 标签同样为"M250L JS写3G工具",进一步强调了这个主题是关于...
1. **建存储过程时Create后一定不要用TAB键:** 在编写存储过程时,使用`CREATE`命令后直接输入存储过程内容,避免使用TAB键,以免引起语法错误。 2. **使用临时表:** 临时表用于存储临时数据,在存储过程执行完毕后...
本身工作在辐射环境里/运输过程中受到辐射(如过海关时被X光机检查)。长时间存放导致存储失效,某些0、1位自行翻转。无论如何,在硬件上存放的程序都是不可靠的。如果完全不能运行,那到也不会造成太大的损失。怕就...
- **ATOMIC及NOT ATOMIC区别**:`ATOMIC`表示整个存储过程作为一个不可分割的操作执行;`NOT ATOMIC`则允许多个操作同时发生。 - **C及SQL存储过程名称都要注意长度**:遵循DB2对象名称长度限制。 - **怎样获得自己...