我有許多表可供選擇,還有一個互動式報表,其表名需要使用名為 P4_TABLE_NAME 的頁面項來設定。
其他帖子說這只能用 PL/SQL 來完成。所以我將互動式報告的來源設定為“函式體回傳 SQL 查詢”,將語言設定為 PL/SQL。這是我然后使用的代碼:
declare
v_query varchar2(500);
begin
v_query := 'select * from '||:P4_TABLE_NAME ;
return v_query;
end;
此代碼給出錯誤“無效的表名”。我也在經典報告上嘗試過,它給出了同樣的錯誤。
uj5u.com熱心網友回復:
這有點棘手,因為報告應該知道您選擇了哪些列,除非您將其設定為使用通用列名。這意味著無論您查詢哪個表,列名都是col1, col2, col3, ...
就是這樣:
我創建了一個帶有經典報告區域和選擇串列項的新頁面(它回傳我在我的架構中擁有的表)
報告的源是一個回傳查詢的函式體,正如你所說的:
declare v_query varchar2(500); begin v_query := 'select * from ' || :P4_TABLE_NAME; return v_query; end;不要忘記將“使用通用列名”設定為“是”!
專案是微不足道的:
我將它設定為“提交頁面”(這樣當我選擇一個新表格時,報告的內容會發生變化)
選擇串列項的查詢:
select table_name d, table_name r from user_tables order by table_name
運行頁面:

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/532691.html
下一篇:計算某個時期的天數
