我正在尝试创建一个包含值列表(chrome.downloads.download
)的页面和一个根据此列表中的表名显示表内容的区域
e.g。
P2_LIST
但是我无法保存它:
select * from :P2_LIST
ORA-06550: line 1, column 21: ORA-00903: invalid table name
是一个LOV,其列表仅包含有效的表名。
有办法做到这一点吗?
当我从双重中选择P2_LIST
时,我可以看到它保持正确的P2_LIST
,如果我对表名进行硬编码,那么它也会返回。
我的想法是,只需在共享组件中添加一个条目,就可以向此页面添加更多表格。
如果可以解决这个问题我的下一部分是我也想为此使用连接值:
e.g。如果我有两张桌子:
然后我想要使用以下内容:
TABLE_NAME
这样我可以在其他地方使用相同的LOV。
我正在运行:Application Express 5.0.3.00.03
答案 0 :(得分:1)
是的,使用动态SQL查询。
而不是select * from :P2_LIST
定义报告,如下所示:
declare
q long;
begin
q := 'select * from ' || :P2_LIST || ';';
return q;
end;
您还需要:
(PL / SQL中的NB long
是一个定义为varchar2(32760)
的子类型,我只是用它来保存输入!)
答案 1 :(得分:0)
我可以在这里建议只跟随。为每个表创建一个区域,然后在Conditions
选项卡上的区域属性中选择
Condition Type
- Value of Item / Column in Expression 1 = Expression 2
Expression 1
- P2_LIST
(没有冒号)Expression 2
- 此区域中的表名称提交后,您的页面将显示所选表格的查询结果。