ORA-00923: ключевое слово FROM не найдено там, где ожидалось в Oracle APEX - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь нарисовать диаграмму с помощью редактора запросов sql, используя динамик c sql. Я создал часть запроса на странице 4 и хотел бы использовать ее на странице 5.

На странице 4 я построил запрос, передающий параметры в процедуру сохранения в пакет в базе данных, получение части запроса. Мне нужно использовать этот способ

Это часть запроса структуры:

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

enter image description here

Я пытался построить запрос без ключевого слова «From», и вот результат: enter image description here

Во многих примерах, которые я видел о динамике c sql, большинство из них используют код pl \ sql. Параметры серии диаграмм для получения данных из базы данных: запрос sql и тело функции PL \ sql для возврата запроса sql. Я пробовал оба, но всегда получал одну и ту же ошибку.

Я искал примеры, документацию по этому поводу, но не нашел решения своей проблемы

1 Ответ

0 голосов
/ 28 мая 2020

Этот пример работает в 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>

Да, это так.


...