-1
內選擇clausule當我這樣做:PL/SQL函數返回錯誤值
select sum(m.mot)
from rmtq mq
join rmo m on mq.id = m.id
where mq.another = 138;
返回值= 2,這是正確的。但是,當我把這個代碼在函數內部:
create or replace function get(another in number) return number
is ret number := 0;
begin
select sum(m.mot)
into ret
from rmtq mq
join rmo m on mq.id = m.id
where mq.another = another
return(ret);
end;
我打電話:
exec dbms_output.put_line(get(138));
返回值= 39,這是不正確。那是什麼39?
'another'需要與函數名合格的或不同的命名形式參數。名稱解析自下而上起作用,這意味着您的查詢認爲'another'是'rmtq'表中列的名稱,而不是形式參數的名稱。 –
嘗試命名函數參數another_in,以便知道它是IN參數。 –
[相關問題](http://stackoverflow.com/q/36627313/266304)與文檔鏈接解釋你所看到的。 –