Oracle Apex Web 开发

Oracle Apex Web Development

我正在尝试构建 Oracle Apex 网页。我有 SQL 查询,我在 Db Visualizer 中 运行 并且很好。它应该获取大约 700 万条记录,但由于限制了 DB Vis 中的行而在 1000 处停止。

这是我的 SQL 查询:

    select t.*, t.rowid from table t
    where  custedp =
           ( select min(custedp) from tablex
             where  fullorderno like substr('${ORD}$',1,8) || '%' );

我正在尝试通过页面项目 P2_new 输入 ORD 变量,所以我的新 SQL 查询是

    select t.*, t.rowid from table t
    where  custedp = 
           ( select min(custedp) from tablex
             where  fullorderno like substr(:P2_new,1,8) || '%' );

我在网页新(静态内容)、页面项目(文本字段)p2_new 和提交页面的按钮中创建了一个区域。 当我将新区域从静态内容更改为经典报告时,一切都很好,页面根本不会加载。它在选项卡上有一个 loading... 并且地址栏显示 "about:blank" 。我试图验证代码,它还向我展示了

     ajax call returned server error ora-20001 :error at line 1 error when I 
     tried to validate the code using the in built validator .

您打算如何处理单个页面上显示的 700 万行?

无论如何:只要您导航到该页面,经典报告的查询就会运行。感谢 || '%',查询在整个 tablex 中搜索 min(custedp),无需等待您在 P2_NEW 项中输入内容并按下 SUBMIT 按钮。因此,如果您等待的时间足够长,它可能 return 某事 .

或者,修改该查询,使其在 P2_NEW 包含某个值时运行。例如:

select t.*, t.rowid 
from table t       
where custedp = (select min(custedp) 
                 from tablex 
                 where 1 = case when :P2_NEW is null then 2
                                else 1
                           end
                    and fullorderno like SUBSTR(:P2_new,1,8) || '%'
                ); 

此外,考虑将 P2_NEW 的源设置为 始终,替换会话状态中的任何现有值