下面的代碼返回錯誤ORA-00942: table or view does not exist
,我想可能是因爲PL/SQL運行時引擎(或者我不知道是什麼)試圖將table_in
作爲表處理,但是爲什麼會這樣做,我已經將table_in
聲明爲變量。變量未被替換(學習動態PL/SQL)
ex26011601
表存在與相同架構中的值。
set serveroutput on
declare
function tabcount (table_in in varchar2)
return pls_integer
is
l_return pls_integer;
begin
select count(*) into l_return from table_in;
return l_return;
end;
begin
dbms_output.put_line(tabcount('ex26011601'));
end;
我明白EXECUTE IMMEDIATE
會解決這個目的。我試圖得到的是爲什麼現在的聲明有必要和什麼錯誤,即使在聲明中聲明'table_in'也不能被視爲變量。或者,爲什麼變量不在那裏?
這是因爲你的SELECT語句的 –
PL/SQL不只是胡亂替代恰好匹配任意文本參數名稱。在參數化遊標的上下文中,它只評估綁定變量。 –