oracle function 調用傳入的參數做條件,但卻無效

寫了一個簡單oracle 的function ,在PL/SQL中,邏輯類似如下:

create or replace function getClassinfoAmount(chnlid in number) return number is
  FunctionResult number;
  temp_amount number:=0;
 
begin
   select 
         COUNT(*) INTO temp_amount 
   from 
         wcmchnldoc 
   where 
         docchannel=chnlid;

 DBMS_OUTPUT.PUT_LINE(temp_amount);
  return temp_amount;
end getClassinfoAmount;

 

就是傳入一個chnlid參數,然後通過select語句去查數量,但每次查出來的都是總數量,限時條件並沒有起作用。也輸出過,百思不得其解

 

解決方法:

              在聲明那裏加一句:  t number:=chnlid;   將參數先賦值給t

              select語句的where條件改爲 docchannel=t;

               可得正確結果。

 

問題:1、可能是我PL/SQL版本問題。

           2、可能是ORACLE語法問題。

  待我覈實下

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章