【发布时间】:2020-11-04 03:35:17
【问题描述】:
目前正在处理一个存储的 PL/SQL 函数 FINDDEPENDENTS,它通过给定的员工编号 (e#) 查找员工的家属姓名。然后,该函数必须返回包含所有家属姓名的字符串。所有家属的姓名必须用逗号 (,) 分隔。
这是所需输出的片段:
00100 Albert: Bolt, Edee, Judy
00110 Alvin:
00120 Alice: Blures, Edee, Kadi
我目前的输出:
SQL> select FINDDEPENDENTS(E#) from Employee;
FINDDEPENDENTS(E#)
----------------------------------------------------------------------------------------------------
00100 Albert:, Bolt, Edee, Judy
00101 Peter:
00103 Ami:
00105 Robert:
00107 Wendy:
00109 Michael:
00110 Alvin:
00120 Alice:, Blues, Edee, Kadi
00125 Angela:
00136 Aban:
00150 Bob:
00187 Eadger:
00200 Carl:, Eva
00250 Douglass:
14 rows selected.
我当前的代码:
set echo on
set feedback on
set linesize 100
set pagesize 200
set serveroutput on
--
create or replace function FINDDEPENDENTS(empid in Employee.E#%TYPE)
RETURN VARCHAR IS
EID Employee.E#%TYPE;
Ename Employee.Name%TYPE;
DEPNAME Dependent.DName%TYPE;
finalRow VARCHAR(2000);
CURSOR q IS
--
select DName from Dependent WHERE E#=empid;
begin
select E#, Name INTO EID, Ename FROM Employee WHERE E#= empid;
finalRow:= EID || ' ' || Ename || ': ';
open q;
loop
fetch q into depname;
if q%notfound then exit;
end if;
finalRow:= finalRow || ', ' || DEPNAME;
end loop;
close q;
return(finalRow);
end FINDDEPENDENTS;
/
如何编辑输出以使 : 后没有逗号?
【问题讨论】: