如何在Oracle窗体中的SQL查询中删除ORDER BY

如何在Oracle窗体中的SQL查询中删除ORDER BY,sql,oracleforms,Sql,Oracleforms,我有一个SQL查询,它是在特定条件下生成的,当F7/F8。生成的SQL查询通过最后一个查询插入到块“Block1”中 上次查询我返回SQL查询: SELECT column1, column2, column3, sloupec4, sloupec5, sloupec6 FROM table WHERE column1 = 12 AND column2 = 'test' ORDER BY column1, column3 desc, column 5; 如果上一个查询中的SQL查询是我执行的

我有一个SQL查询,它是在特定条件下生成的,当F7/F8。生成的SQL查询通过最后一个查询插入到块“Block1”中

上次查询我返回SQL查询:

SELECT column1, column2, column3, sloupec4, sloupec5, sloupec6
FROM table
WHERE column1 = 12
AND column2 = 'test'
ORDER BY column1, column3 desc, column 5;
如果上一个查询中的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后面的所有内容? 有一些SQL函数可以删除SQL查询中的最后几个字符吗

我在BLOCK1上有订单,我不能移除,它必须留在那里


感谢您的建议。

从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的基础知识:-)