我正在使用pl/sql過程。我有一個初始化變量myvar,我想檢查它的值:如果它不包含'Z',我希望它包含'P'。SQL - 比解碼更簡單的功能
我目前做這種方式:
myvar := decode(myvar,'Z','Z','P');
我只是想知道是否有一個simplier辦法做到這一點。我的意思是,解碼已經很簡單了,但我覺得指定變量的內容已經在裏面了,這很奇怪!
如果這樣的功能就存在,它應該是這樣的:
Function myfunction(a In Varchar2, b In Varchar2, c In Varchar2)
Return Varchar2
Is
Begin
if a <> b
then
return c;
end if;
return a;
End myfunction;
任何幫助,將不勝感激!
DECODE是一個SQL趣味ction,而不是PL/SQL函數。所以你的「myvar:=解碼...」將不起作用。 – 2011-03-02 12:30:22
@Rob。據我所知,沒有什麼能夠阻止在PL/SQL程序中使用SQL函數。無論如何,解碼在我的程序中工作正常。 – Hal 2011-03-02 15:02:40
不與解碼。 SQL> declare 2 myvar varchar2(1); 3 begin 4 myvar:=解碼(myvar,'Z','Z','P'); 5 end; 6/ myvar:=解碼(myvar,'Z','Z','P');* 錯誤在第4行: ORA-06550:第4行,第12列: PLS-00204:函數或僞列'DECODE'可能僅在SQL語句中使用 ORA-06550:第4行第3列: PL/SQL:語句被忽略 – 2011-03-02 15:05:48