一个项目有14个工作流程,每个流程需要在一定的工作日内办结,否则超时;
工作日可以自定义的;
现在希望得出各项目在各流程中超时的信息;
现在三张表:wf_instance、wf_node、workingTime
wf_instance是保存各项目流程信息的表,包括流程的起始时间(date类型)和结束时间,
wf_node是保存个流程的表,包括规定的超时天数(int 类型 如:1,2,3等)等
workingTime是保存工作日的表,存储的数据为日期(VARCHAR2类型,如:2011-05-02,2011-05-03,)逗号分隔的字符串
因为想得到得到各环节的超时信息,一个项目各个流程用合并单元格的形式
所以需要从数据库方向着手分页显示数据,oralce不是很明白
求高手指定方法或者思路,主要是计算超时的部分
工作日可以自定义的;
现在希望得出各项目在各流程中超时的信息;
现在三张表:wf_instance、wf_node、workingTime
wf_instance是保存各项目流程信息的表,包括流程的起始时间(date类型)和结束时间,
wf_node是保存个流程的表,包括规定的超时天数(int 类型 如:1,2,3等)等
workingTime是保存工作日的表,存储的数据为日期(VARCHAR2类型,如:2011-05-02,2011-05-03,)逗号分隔的字符串
因为想得到得到各环节的超时信息,一个项目各个流程用合并单元格的形式
所以需要从数据库方向着手分页显示数据,oralce不是很明白
求高手指定方法或者思路,主要是计算超时的部分
解决方案 »
- oracle10 安装后,开始--所有程序---,中没有Enterprise Manager Console,这正常吗
- 关于插入顺序问题
- 設計table的時候,大家都加不加PK FK的限制哦?
- 两个SELECT语句执行后产生两个结果集,想将这两个结果集合并成一个结果集
- 求助:把a用户的数据导到b用户上
- ***************----请问这个快照怎么不可以更新数据源表-------------******************
- 我的Oracle 9i无法启动
- pl/sql 中,如何将数据库中blob字段取出后,转换成raw类型
- 建表时的问题?
- 自建类型的操作
- 请教高手一个EBS的问题
- 物化视图只create不作为select对象
2、你说的那张表就是wf_node这个表
至于建议,哥们我没有数据库修改权,加个字段啥的还可以,动整个表结构没那个权限,而且修改东西太多
CREATE OR REPLACE FUNCTION splitstr(p_string IN VARCHAR2, p_delimiter IN VARCHAR2)
RETURN str_split
PIPELINED
AS
v_length NUMBER := LENGTH(p_string);
v_start NUMBER := 1;
v_index NUMBER;
BEGIN
WHILE(v_start <= v_length)
LOOP
v_index := INSTR(p_string, p_delimiter, v_start); IF v_index = 0
THEN
PIPE ROW(SUBSTR(p_string, v_start));
v_start := v_length + 1;
ELSE
PIPE ROW(SUBSTR(p_string, v_start, v_index - v_start));
v_start := v_index + 1;
END IF;
END LOOP; RETURN;
END splitstr;--调用字符分隔符
select count(*) days
from table(splitstr('2011-12-17,2011-12-18,2011-12-19,2011-12-20,2011-12-21,2011-12-22,2011-12-23,2011-12-24,',','))
where column_value>'2011-12-18' and column_value<'2011-12-22';
这个时间是有序的但不是连续的,用“,”分隔的时间字符串;
例如楼上所示的调用例子
2011-12-22,2011-12-23,2011-12-24,' sj from dual)
select max(to_date(s_J,'yyyy/mm/dd'))-min(to_date(s_J,'yyyy/mm/dd')) from(select regexp_substr(sj,'[^,]+',1,rownum) s_j from a
connect by rownum<=length(regexp_replace(sj,'[^,]+')))