declare
cursor c1 is
select last_name ls from empc;
type x is table of employees.last_name%type;
x1 x := x();
cnt integer :=0;
begin
for z in c1 loop
cnt := cnt +1;
x1.extend;
x1(cnt) := z.ls;
if x1(cnt) = 'NULL' then
DBMS_OUTPUT.PUT_LINE('---');
end if;
dbms_output.put_line(cnt || ' '|| x1(cnt));
end loop;
end;
在这段代码中,我需要在这种情况下用一些值替换空值(------)。但我无法找到解决方案。
答案 0 :(得分:1)
假设您希望X1
具有与空值不同的值。
您可以在查询(光标)中使用NVL功能,如下所示:
cursor c1 is
select nvl(last_name, '----') ls from empc;
但如果这是你想要做的所有事情,那么你可以让整个事情更简单:
declare
type x is table of employees.last_name%type;
x1 x := x();
begin
select nvl(last_name, '---') ls bulk collect into x1 from empc;
-- This is just for printing the results
for cnt in x1.first .. x1.last loop
dbms_output.put_line(cnt || ' '|| x1(cnt));
end loop;
end;