【问题标题】:How remove ORDER BY in SQL query in Oracle Forms如何在 Oracle Forms 的 SQL 查询中删除 ORDER BY
【发布时间】:2016-01-25 19:07:36
【问题描述】:

我有一个在某些条件下生成的 SQL 查询,当 F7/F8.生成的 SQL 查询通过 LAST_QUERY 插入到块“Block1”中。

LAST_QUERY 我的返回 SQL 查询:

SELECT column1, column2, column3, sloupec4, sloupec5, sloupec6
FROM table
WHERE column1 = 12
AND column2 = 'test'
ORDER BY column1, column3 desc, column 5;

如果来自 LAST_QUERY 的 SQL 查询我将块通过

v_where =: System.Last_Query;
set_block_property('BLOCK1' default_where, v_where);

执行此操作后,显示错误和 SQL 查询如下所示:

SELECT column1, column2, column3, sloupec4, sloupec5, sloupec6
FROM table
WHERE column1 = 12
AND column2 = 'test'
ORDER BY column1, column3 desc, column 5 ORDER BY column1, column3 desc, column 5;

如何删除 ORDER BY 后面的所有内容,包括 ORDER BY? 有一些 SQL 函数可以删除 SQL 查询中的最后几个字符?

ORDER BY 我在块“BLOCK1”上,我不能删除它,它必须留在那里。

感谢您的建议。

【问题讨论】:

  • 块是否基于数据库表?

标签: sql oracleforms


【解决方案1】:

从 v_where 变量中删除 order by 子句:

v_where := :SYSTEM.LAST_QUERY;
if instr(v_where, 'ORDER BY') > 0 then
  v_where := substr(v_where, 1, instr(v_where, 'ORDER BY')-1);
end if;

【讨论】:

  • 谢谢,这正是我所需要的。我必须重复 Oracle SQL 的基础知识 :-)
猜你喜欢
  • 2021-11-09
  • 1970-01-01
  • 1970-01-01
  • 2017-02-06
  • 2019-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多