- 浏览: 44594 次
- 性别:
- 来自: 福建
最新评论
create or replace procedure getSystemNotice(pHumanID in INTEGER)
is
iCount INTEGER ;
fromTable sys_refcursor;
msgcur sys_refcursor;
var_MAXID INTEGER ;
var_EVENTSQL CLOB ;
var_EVENTID INTEGER ;
var_HASGREENCHANNEL INTEGER;
var_EXPOFLAG INTEGER;
var_CIVIFLAG INTEGER;
var_READFLAG INTEGER;
var_SQL varchar2(10000);
var_CONTENT VARCHAR2(500) ;
var_DISPLAYTYPE INTEGER ;
var_ISREAD INTEGER ;
Begin
/*待办案卷*/
Select count(*) into iCount from dlsys.tchumanfolderlist where TaskItemID=2 and humanID=pHumanID;
If iCount>0 then
/*获取开启待办案卷箱子的查询语句*/
Select HUMANLISTSQL into var_EVENTSQL from dlsys.tchumanfolderlist where TaskItemID=2 and humanID=pHumanID;
/*获取案卷eventID*/
var_SQL := 'Select eventID from ('||var_EVENTSQL||')';
open fromTable for var_SQL;
loop
fetch fromTable into var_EVENTID;
exit when fromTable%notfound;
if var_EVENTID is not null then
/*获取案卷相关信息*/
Select eventDESC,HASGREENCHANNEL,EXPOFLAG,CIVIFLAG,READFLAG into
var_CONTENT ,
var_HASGREENCHANNEL,
var_EXPOFLAG,
var_CIVIFLAG,
var_READFLAG
from umdata.toEvent where eventID=var_EVENTID;
/*根据案卷信息设定网站数据*/
var_DISPLAYTYPE:=0;
If var_HASGREENCHANNEL=1 then
var_DISPLAYTYPE:=3;
end if;
if var_EXPOFLAG=1 then
var_DISPLAYTYPE:=2;
end if;
if var_CIVIFLAG=1 then
var_DISPLAYTYPE:=1;
End if;
If var_READFLAG=1 then
var_ISREAD:=1;
else
var_ISREAD:=0;
End if;
/*判定是新增还是变更*/
Select nvl(count(*),0) into iCount from umdata.tcinstantmsg where BIZID=var_EVENTID;
If iCount=0 and var_READFLAG =0 then
Select MAX(ID) into var_MAXID from umdata.tcinstantmsg;
Insert into umdata.tcinstantmsg (ID,BIZID,SUBSYSTEMID,MSGTYPEID,MSGTYPENAME,MSGTITLE,CONTENT,HUMANID,DISPLAYTYPE,ISREAD)
values (var_MAXID+1,var_EVENTID,10000,1101,'待办案卷','待办案卷 ',var_CONTENT,pHumanID,var_DISPLAYTYPE,var_ISREAD);
else
if iCount<>0 then
Update umdata.tcinstantmsg set ISREAD=var_ISREAD where ISREAD<>var_ISREAD
and HumanID=pHumanID
and BIZID=var_eventID;
end if;
End if;
commit;
end if;
End loop;
End if;
close fromTable;
/*我的消息,每次刷新前先删除网站中我的消息信息*/
Delete from umdata.tcinstantmsg where MSGTYPEID=1105 and HumanID=pHumanID;
commit;
/*获取我的消息相关信息*/
Select MAX(ID) into var_MAXID from umdata.tcinstantmsg;
open msgcur for
Select MESSAGETEXT,receiveflag from dlmis.trlogmessage
where receiveHumanID=pHumanID
and (receiveflag<>1 or receiveflag is null )
and (deleteflag<>1 or deleteflag is null) and sysdate-senddate<1 and sysdate-senddate>=0;
loop
fetch msgcur into var_CONTENT ,var_READFLAG;
exit when msgcur%notfound;
/*插入我的消息*/
Insert into umdata.tcinstantmsg (ID,SUBSYSTEMID,MSGTYPEID,MSGTYPENAME,MSGTITLE,CONTENT,HUMANID)
values (var_MAXID+1,10000,1105,'我的消息','我的消息',var_CONTENT,pHumanID);
commit;
end loop;
close msgcur;
Exception
When others then
Rollback;
End getSystemNotice;
/
is
iCount INTEGER ;
fromTable sys_refcursor;
msgcur sys_refcursor;
var_MAXID INTEGER ;
var_EVENTSQL CLOB ;
var_EVENTID INTEGER ;
var_HASGREENCHANNEL INTEGER;
var_EXPOFLAG INTEGER;
var_CIVIFLAG INTEGER;
var_READFLAG INTEGER;
var_SQL varchar2(10000);
var_CONTENT VARCHAR2(500) ;
var_DISPLAYTYPE INTEGER ;
var_ISREAD INTEGER ;
Begin
/*待办案卷*/
Select count(*) into iCount from dlsys.tchumanfolderlist where TaskItemID=2 and humanID=pHumanID;
If iCount>0 then
/*获取开启待办案卷箱子的查询语句*/
Select HUMANLISTSQL into var_EVENTSQL from dlsys.tchumanfolderlist where TaskItemID=2 and humanID=pHumanID;
/*获取案卷eventID*/
var_SQL := 'Select eventID from ('||var_EVENTSQL||')';
open fromTable for var_SQL;
loop
fetch fromTable into var_EVENTID;
exit when fromTable%notfound;
if var_EVENTID is not null then
/*获取案卷相关信息*/
Select eventDESC,HASGREENCHANNEL,EXPOFLAG,CIVIFLAG,READFLAG into
var_CONTENT ,
var_HASGREENCHANNEL,
var_EXPOFLAG,
var_CIVIFLAG,
var_READFLAG
from umdata.toEvent where eventID=var_EVENTID;
/*根据案卷信息设定网站数据*/
var_DISPLAYTYPE:=0;
If var_HASGREENCHANNEL=1 then
var_DISPLAYTYPE:=3;
end if;
if var_EXPOFLAG=1 then
var_DISPLAYTYPE:=2;
end if;
if var_CIVIFLAG=1 then
var_DISPLAYTYPE:=1;
End if;
If var_READFLAG=1 then
var_ISREAD:=1;
else
var_ISREAD:=0;
End if;
/*判定是新增还是变更*/
Select nvl(count(*),0) into iCount from umdata.tcinstantmsg where BIZID=var_EVENTID;
If iCount=0 and var_READFLAG =0 then
Select MAX(ID) into var_MAXID from umdata.tcinstantmsg;
Insert into umdata.tcinstantmsg (ID,BIZID,SUBSYSTEMID,MSGTYPEID,MSGTYPENAME,MSGTITLE,CONTENT,HUMANID,DISPLAYTYPE,ISREAD)
values (var_MAXID+1,var_EVENTID,10000,1101,'待办案卷','待办案卷 ',var_CONTENT,pHumanID,var_DISPLAYTYPE,var_ISREAD);
else
if iCount<>0 then
Update umdata.tcinstantmsg set ISREAD=var_ISREAD where ISREAD<>var_ISREAD
and HumanID=pHumanID
and BIZID=var_eventID;
end if;
End if;
commit;
end if;
End loop;
End if;
close fromTable;
/*我的消息,每次刷新前先删除网站中我的消息信息*/
Delete from umdata.tcinstantmsg where MSGTYPEID=1105 and HumanID=pHumanID;
commit;
/*获取我的消息相关信息*/
Select MAX(ID) into var_MAXID from umdata.tcinstantmsg;
open msgcur for
Select MESSAGETEXT,receiveflag from dlmis.trlogmessage
where receiveHumanID=pHumanID
and (receiveflag<>1 or receiveflag is null )
and (deleteflag<>1 or deleteflag is null) and sysdate-senddate<1 and sysdate-senddate>=0;
loop
fetch msgcur into var_CONTENT ,var_READFLAG;
exit when msgcur%notfound;
/*插入我的消息*/
Insert into umdata.tcinstantmsg (ID,SUBSYSTEMID,MSGTYPEID,MSGTYPENAME,MSGTITLE,CONTENT,HUMANID)
values (var_MAXID+1,10000,1105,'我的消息','我的消息',var_CONTENT,pHumanID);
commit;
end loop;
close msgcur;
Exception
When others then
Rollback;
End getSystemNotice;
/
发表评论
-
索引组织表
2012-08-14 08:54 0因为表的数据分布跟索引不匹配,造成了很高的CLUSTERING ... -
oracle设置字符集
2010-11-10 13:33 1237查看字符集: select * from sys.nls_d ... -
ORA-01092 数据库打不开的问题原因(数据库升级不成功的问题)
2010-11-10 11:26 7181Oracle10.2.0.1到10.2.0.4升级,升级完成后 ... -
数据热恢复文档
2010-09-28 20:11 996热备份 热备份是在数据库运行的情况下,采用archi ... -
关于JOB
2010-09-27 20:30 834-- ---------------------------- ... -
JOB突然停止工作了
2010-09-26 09:59 3409本文通过一次Oracle Job任务异常案例诊断,分析其原 ... -
SQL语句经典集
2010-08-30 10:50 835用ROWNUM,取表的某段值: select * from ( ... -
LINUX下安装ORACLE 10G步骤详解
2010-07-24 08:50 926相关的安装操作 -
LINUX下ORACLE9I的RMAN的备份和恢复操作
2010-07-24 08:15 9611、转换服务器归档模式,如果已是归档模式可跳过此步: ... -
ORACLE安全原则
2010-07-10 08:09 854一、数据库安全原则 1.只安装oracle必须的组件 ... -
oracle 常用命令
2010-07-01 10:51 667oracle 常用命令文件 -
没有备份数据文件,只有归档文件的完整恢复
2010-06-17 08:52 1206前提条件 1. 归档模式下。 2. 数据 ... -
oracle修改归档模式
2010-06-11 16:30 1056首先查看数据库现有模式可使用以下语句 select name ... -
数据库恢复相关问题
2010-05-30 22:18 666当只有归档日志文件,某个文件丢失时: 采用alter data ... -
用SQL*LOADER,将文本数据导入数据库中
2010-05-11 17:15 991用SQL*LOADER... 首先要写个CTL文件, ... -
oracle调用外部程序小例
2010-05-10 18:24 2396例如: 调用java的存储过程: SQL> crea ... -
oracle 函数结构示例
2010-05-08 10:40 1004FUNCTION 写法: CREATE OR REPLACE ... -
个人oracle初学笔记
2010-05-08 10:33 941//修改会话格式; alter session set nls ... -
ORACLE EXECUTE IMMEDIATE 用法
2010-05-08 10:21 175412月1日 ORACLE EXECUTE IMMEDIATE ... -
oracle 查看当前用户所有表之间的主外键关系和约束,删除约束
2010-05-08 09:36 4230user_constraints:包括约束的所有信息; use ...
相关推荐
通过以上对Oracle存储过程、游标和函数的详细介绍,我们可以看到这些特性为Oracle数据库提供了一种强大而灵活的方式来处理数据。掌握这些技术对于开发高效的应用程序至关重要。在未来的学习和实践中,我们应该不断...
"Oracle存储过程游标详解" Oracle 存储过程游标是指在 Oracle 数据库中使用游标来实现对结果集的处理和操作。游标可以分为静态游标和REF游标两种类型。静态游标是指结果集已经确实(静态定义)的游标,可以进一步...
在本例中,“Oracle存储过程实例使用显示游标”着重展示了如何在存储过程中调用函数,并通过游标来处理和更新数据。 首先,我们需要了解存储过程的基本结构。一个存储过程通常包含以下部分: 1. **声明部分**:在...
本主题将深入探讨Oracle中的几个核心概念:函数、存储过程、游标以及简单的实例,这些都是数据库管理员和开发人员日常工作中不可或缺的部分。 首先,我们来了解**Oracle函数**。函数是预定义的代码块,接受零个或多...
本示例展示了如何使用 CallabledStatement 来调用 Oracle 存储过程,并实现 IN OUT 参数和游标类型参数的使用。这种方法可以提高应用程序的性能和安全性。同时,游标类型参数的使用可以实现数据的批量处理,提高应用...
**一、Oracle存储过程** 存储过程是预编译的SQL语句集合,它们被存储在数据库中并可以按需调用。存储过程有以下几个优点: 1. **性能提升**:由于存储过程在首次创建时就被编译,因此后续调用时执行速度快。 2. **...
游标循环是指通过循环结构(如`LOOP`、`WHILE`或`FOR`循环)来遍历游标中的每一行数据。这种方式特别适用于处理多行数据的情况。 ##### 1. 使用`LOOP`循环 ```sql DECLARE CURSOR c_employees IS SELECT * FROM ...
在数据库管理领域,SQL Server和Oracle都是广泛应用的关系型数据库管理系统,它们都支持存储过程和游标的使用,这两种特性极大地增强了数据库的功能性和效率。存储过程是预编译的SQL语句集合,而游标则用于逐行处理...
PL/SQL 是 Oracle 专有的扩展 SQL 语言,结合了 SQL 的数据查询功能和过程编程语言的控制结构。它提供了变量、循环、条件判断、异常处理等功能,使得编写复杂的数据库应用程序变得可能。PL/SQL 代码块可以嵌入到 ...
包含oracle存储过程的增、删、查、改 %type、%rowtype的使用 自定义函数 PL/SQL块
但是,显式游标循环处理的代码更容易理解和维护。 使用游标时,还有一些注意事项。首先,游标打开之后,必须执行至少一次fetch操作,这样游标的属性才能生效。在while循环处理游标的过程中,应该将数据处理逻辑放在...
在Oracle数据库系统中,"Job"、"存储过程"、"视图"和"游标"是四个核心的数据库管理工具,它们对于数据库的高效运行和数据管理至关重要。接下来,我们将详细探讨这些概念以及它们在实际应用中的结合实例。 1. Job...
通过理解并熟练运用Oracle的存储过程和游标,开发者可以构建高效、模块化的数据库应用,提高代码复用性和数据库性能。在实际开发中,应根据需求合理选择使用函数或存储过程,并灵活运用游标处理复杂查询和结果集。
### 存储过程和游标详解 #### 一、存储过程概述 存储过程,作为数据库管理系统(DBMS)中的一种重要特性,尤其在Oracle等关系型数据库中被广泛应用。它允许开发者将一系列SQL语句和控制流语句组合在一起,封装为一个...
本文将从 Oracle 存储过程的基础知识开始,逐步深入到 Oracle 存储过程的高级应用,包括 Hibernate 调用 Oracle 存储过程和 Java 调用 Oracle 存储过程的方法。 Oracle 存储过程基础知识 Oracle 存储过程是 Oracle...
Oracle存储过程返回游标是一种常见的数据处理方式,它允许开发者在存储过程中执行SQL查询并返回结果集,供调用者进一步处理。游标在数据库编程中扮演着重要角色,尤其在处理多行记录时,提供了灵活的数据遍历手段。...
存储过程是由一系列SQL语句和过程化SQL语句(如循环、条件判断等)组成的单元,它们被编译并保存在数据库中。当存储过程被调用时,整个过程将作为一个整体被执行,这可以极大地提高执行效率,并简化应用程序的设计。...
如果使用了游标,就要尽量避免在游标循环中再进行表连接的操作。 游标是一种强大的机制,可以帮助应用程序逐行处理结果集。但是,在使用游标时,需要注意避免性能问题,并且合理使用游标类型和状态。
Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的功能来处理数据,包括函数、游标和触发器。在本文中,我们将深入探讨这些概念,并通过一些实际的例子来理解它们的用法。 1. **Oracle函数**:函数...