Получение ошибки: «ORA-20999: не удалось проанализировать SQL запрос! <p>ORA-06550: строка 3, столбец 25: ORA-00936: отсутствует выражение - PullRequest
1 голос
/ 04 апреля 2020

Я использую Oracle Apex и создаю отчет, основанный на возврате sql из тела pl sql.

Вот как выглядит мое утверждение:

DECLARE
    l_query varchar2(1000); 
BEGIN
   l_query := 'SELECT ' || :P10_MYVAR || ' from dual ';
   return l_query;
END;

Я получаю следующее сообщение об ошибке:

ORA-20999: Parsing returned query results in "ORA-20999: Failed to parse SQL query! <p>ORA-06550: line 3, column 25: ORA-00936: missing expression</p>".

Если я пытаюсь без каких-либо переменных связывания, он компилируется нормально:

DECLARE
        l_query varchar2(1000); 
    BEGIN
       l_query := 'SELECT sysdate from dual ';
       return l_query;
    END;

Я не понимаю, почему происходит эта ошибка. Если я запускаю команду непосредственно в базе данных:

SELECT :P10_MYVAR from dual

Это работает нормально. Почему я получаю эту ошибку?

1 Ответ

2 голосов
/ 04 апреля 2020

Предположительно, вы имели в виду:

DECLARE
    l_query varchar2(1000); 
BEGIN
   l_query := 'SELECT :P10_MYVAR from dual';
   return l_query;
END;

То есть: вы хотите, чтобы имя параметра находилось внутри запроса, а не соединялось со строкой.

...