首页 > 解决方案 > ORA-00923: 在 Oracle APEX 中未找到预期的 FROM 关键字

问题描述

我正在尝试使用动态 sql 使用 sql 查询编辑器绘制图表。我已经在第 4 页中构建了一部分查询,我想在第 5 页中使用它。

在第 4 页中,我将将参数传递给存储过程的查询构建到数据库中的一个包中,并接收查询的一部分。我需要用这种方式

这是结构查询的一部分:

:P4_STRINGA_VIEW = from VIEW_OEE_MAC_MENSILE where V_COD_MACCHINA= 'REP03' and V_ANNO = '2020';

在此处输入图像描述

我尝试在没有关键字“From”的情况下构建查询,结果如下: 在此处输入图像描述

在我看到的很多关于动态 sql 的示例中,其中大多数使用 pl\sql 代码。从数据库获取数据的图表系列选项是 sql 查询和 PL\sql 函数体以返回 sql 查询。我都试过了,但我总是遇到同样的错误。

我已经查找了有关它的示例和文档,但我没有找到解决问题的方法

标签: oracleplsqloracle-apexoracle-apex-19.1

解决方案


此示例适用于 SQL*Plus;也应该在 Apex 中。

返回语句的函数(你只有一个函数体;使用declare而不是我发布的第一行)select看起来像这样;我硬编码p4_stringa_view,因为我不知道你是如何得到它的:

SQL> create or replace function f_test return varchar2 as
  2    p4_stringa_view varchar2(200) := 'from emp where deptno = 10';
  3    retval varchar2(200);
  4  begin
  5    return q'[select 'A' label, ename as V_OEE ]' || p4_stringa_view;
  6  end;
  7  /

Function created.

执行时返回

SQL> select f_test from dual;

F_TEST
--------------------------------------------------------------------------------
select 'A' label, ename as V_OEE from emp where deptno = 10

select声明本身是否有效?

SQL> select 'A' label, ename as V_OEE from emp where deptno = 10  ;

L V_OEE
- ----------
A CLARK
A KING
A MILLER

SQL>

是的,它确实。



推荐阅读