有表node表swimlane表schema代表流程
想查出当前流程 当前泳道的节点node sql语句为 select n.id from node n where n.swimlane_id in(select t.id from swimlane t where t.schema_id='vProcessId'); 返回是list 问题在于想对结果集存操作。用游标的话后面怎么将游标作为输入参数
想查出当前流程 当前泳道的节点node sql语句为 select n.id from node n where n.swimlane_id in(select t.id from swimlane t where t.schema_id='vProcessId'); 返回是list 问题在于想对结果集存操作。用游标的话后面怎么将游标作为输入参数
insert into 表(字段1,字段2...) select *1,*2 .....from .....
为什么要修改表结构,select 又不是只能查询一个表,又不是只能查询*
再以查出的id在表line中作为startid查询endid
再在查出的结果集中查出id为endid的节点再作为startid
select * from
(
select n.id from node n where n.swimlane_id in(select t.id from swimlane t where t.schema_id='vProcessId')
) as T
where t......
后来我就想分开写成函数再分别调用 可也是因为返回list并对list操作就不会弄了
按照我的理解,楼主在代码中生成一个查询结果集,也就是你的那条SQL。
然后将这条SQL传递给需要使用的代码段就可以了,在里对接收到的SQL进行游标处理就可以了。
返回游标 想用function 2使用返回值作为参数
c_id sys_refcursor :=getSwimLaneByProcessId(vProcessId varchar2);想这样的 不过这样写报错 不知道正确的该怎么写
隐式调用 用游标变量.列名不过还是不知道你想做什么。
-- 函数1
create or replace function funTemp return SYS_REFCURSOR
IS
v_rc SYS_REFCURSOR;
begin
open v_rc for select * from t_test;
return (v_rc);
end funTemp;-- 函数2,入参数函数1的返回类型
create or replace function funtmp2(cur SYS_REFCURSOR) return SYS_REFCURSOR
is
begin
return cur;
end funtmp2;
is
cur sys_refcursor;
cur2 sys_refcursor;
begin
cur := funtemp();
cur2:= funtmp2(cur);
return '';
end funtmp3;