SELECT * FROM :TABLENAME
是我的查询,Apex不让我跑,因为应用程序不知道表名。如何使用变量作为表名动态查询。
答案 0 :(得分:3)
以下是:
select * from dual
return 'select * from ' || :P22_TABLE_NAME;
答案 1 :(得分:0)
您应该知道表单可能需要查询的表。如果您有一个名为TABLE_NAME
的应用程序项,您可以将结果合并在一起并选择正确的表格,如下所示:
select col1, col2, col3 from tablex where :TABLE_NAME = 'TABLEX'
union all
select col1, col2, col3 from tabley where :TABLE_NAME = 'TABLEY'
union all
select col1, col2, col3 from tablez where :TABLE_NAME = 'TABLEZ'
这种方法的好处是将检查查询的语法是否正确,以及表格是否具有正确的列;此解决方案不受SQL注入攻击。
缺点是如果添加了新表,则必须修改查询。但是如果你像这样在飞行中创建表格,那么你应该考虑修改你的策略。