我有一个名为CustomerDetails的表:
DeletKey | ReplacedKey
CID0001 | CUSTID01
CID0002 | CUSTID02
CID0003 | (NULL)
当给予函数的输入是CID0001,CID0003
时输出应为CUSTID01,CID0003。
当CID0001替换为CUSTID01且CID0003为空时,它应该返回输入值。
如何在plsql中编写具有多个输入值的函数。删除并替换输入的客户ID后,应返回替换的客户ID。 如果没有替换它(ReplacedKey为NULL),它应该打印输入值。
我的代码:没有输入。我该如何为此添加输入值?
create or replace function ChangeList
as
cursor c1
select replaced ReplacedKey.CustomerDetails%type
deleted DeletKey.CustomerDetails%type
from CustomerDetails;
begin
open c1;
loop ``
if ReplacedKey is null
then
dbms_output.put_line('DeletedKey' ||deleted);
else
dbms_output.put_line('ReplacedKey'||replaced);
end if;
end loop;
close c1:
end;
输入prg- Nothing
prg-DelettedKey CID0003的输出 取代Key CUSTID01
我应该给出的输入:CID0001 CID0003
我需要的输出:CUSTID01 CID0003
答案 0 :(得分:2)
你需要的只是一个虚拟的
select NVL(ReplacedKey,DELETKEY) from table
答案 1 :(得分:0)
带参数的函数:
create or replace function ChangeList(p_cid varchar2) return varchar2
as
ret varchar2;
begin
select nvl(ReplacedKey, p_cid)
into ret
from CustomerDetails
where DeletKey = p_cid;
return ret;
exception when no_data_found then return 'no data found';
end;