【问题标题】:Oracle Apex Cards View with PL/SQL Parsed at Runtime运行时解析 PL/SQL 的 Oracle Apex Cards 视图
【发布时间】:2015-12-22 11:32:31
【问题描述】:

我正在尝试让卡片报告视图与 Oracle Apex 一起使用,但由于 this SO question 中提到的一个错误,我正在尝试使用在运行时解析的查询。

为查询选择了“使用通用列名(仅在运行时解析查询)”。

不幸的是,卡片视图需要正确的列标题才能工作。这是我的代码:

DECLARE

  l_query VARCHAR2(4000);
  l_app number := v('APP_ID');
  l_session number := v('APP_SESSION');

  --Bug happens on the ':11:' part, page 1 works fine
  l_url VARCHAR2(500) := (APEX_UTIL.PREPARE_URL(
           p_url => 'f?p=' || l_app || ':11:' || l_session || '::NO:::'
  ));
BEGIN
  l_query:= 
    'SELECT 
       post_id,
       user_id as "CARD_SUBTEXT",
       image as "CARD_IMAGE",
       title as "CARD_TITLE",
       ''' || l_url || ''' as "CARD_LINK",
       text as "CARD_TEXT"
     FROM posts';

  IF v('P1_TEXT_SEARCH') IS NOT NULL THEN
    l_query := l_query||' '||'
    WHERE 
    (   
     CONTAINS(title, ''$' || :P10_TEXT_SEARCH || ''') > 0 
    ) OR
    (
     CONTAINS(text, ''$' || :P10_TEXT_SEARCH || ''') > 0
    )
   ';
  END IF; 

  htp.p(l_query);
  RETURN l_query;
END;

如下所示:

有什么想法可以让它发挥作用吗?

【问题讨论】:

  • 为什么要使用通用列名选项?
  • 因为this bug
  • 在这种情况下,您可以复制卡片报告模板,并将新模板中的列引用#CARD_TEXT# 等更改为#COL01# 等?
  • 谢谢,这似乎是正确的方向。但是,我复制了卡片报告模板,然后对其进行了编辑(我无法编辑主模板)。现在它在报告中出现“未找到数据”。也许需要另一个 SO 问题
  • 没关系,快到了!谢谢

标签: oracle plsql oracle-apex


【解决方案1】:

正如 Tony Andrews 所指出的,我可以复制和编辑模板以将值设置为 #COL1##COL2# ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-15
    • 1970-01-01
    • 1970-01-01
    • 2021-09-06
    • 1970-01-01
    • 2019-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多