0
我試圖重構一段代碼。我們在表和視圖上做了類似的選擇,我想在過程中導出select,並使用表名作爲輸入參數。因此,例如:PL/SQL:我可以直接在select語句中使用過程輸入嗎?
procedure show_table (
i_table_name varchar2
)
is
begin
for c in (
select *
from i_table_name
) loop
...
end loop;
end;
但是PL/SQL認爲i_table_name是文字名稱(拋出PL/SQL:ORA-00942:表或視圖不存在)。有沒有辦法評估變量的內容?我想我可以立即執行,但我寧願不要:)
乾杯。
這可能是有益的http://stackoverflow.com/questions/15184015/oracle-procedure-using-cursor中的動態查詢 –
如果您不想動態聲明遊標,則可以聲明兩個遊標並根據參數值選擇要打開的遊標;取決於你是否擔心重複選擇或循環內的代碼重複? –
@AlexPoole我想避免循環內的重複代碼,因爲選擇將會不同。 –