create or replace procedure WAIT_USER_LIST
(
company_id in varchar2,
userlist out varchar2
)
is
list varchar2(100);
CURSOR cur IS
SELECT ci.id,pc.user_id,ci.parent_id FROM company_info ci,police_company pc
where ci.id = pc.company_id
CONNECT BY PRIOR ci.PARENT_ID = ci.id
START WITH ci.id = company_id order by pc.id
;
begin FOR cur_result in cur LOOP
BEGIN
list :=list ||','||cur_result.user_id;
END;
END LOOP;userlist := list;
end WAIT_USER_LIST;
(
company_id in varchar2,
userlist out varchar2
)
is
list varchar2(100);
CURSOR cur IS
SELECT ci.id,pc.user_id,ci.parent_id FROM company_info ci,police_company pc
where ci.id = pc.company_id
CONNECT BY PRIOR ci.PARENT_ID = ci.id
START WITH ci.id = company_id order by pc.id
;
begin FOR cur_result in cur LOOP
BEGIN
list :=list ||','||cur_result.user_id;
END;
END LOOP;userlist := list;
end WAIT_USER_LIST;
给list赋初值看看
where ci.id = pc.company_id
CONNECT BY PRIOR ci.PARENT_ID = ci.id
START WITH ci.id = company_id order by pc.id在PLSQL中查询的时候是四条记录,但是在存储过程中,返回的记录集多了很多。
用count(*) 试试看看结果是多少
(
company_id in varchar2,--把这个名称换个,不要用字段名
userlist out varchar2
)
然后看看你是怎么调用的