Как зафиксировать ' РТЫ 29909: этикетка для вспомогательного оператора не буквальный number' со связанной переменной?

Следующее управление SQL текстовым индексированным столбцом КОНТЕКСТА Oracle:

variable label number;
exec :label := 1;
SELECT * FROM TEST_TABLE 
           WHERE CONTAINS(INDEXEDCOL, 'token', :label) > 0;

Результаты в:

Error report:
SQL Error: ORA-29909: label for the ancillary operator is not a literal number
29909. 00000 -  "label for the ancillary operator is not a literal number"
*Cause:    The label used for invoking the ancillary operator is not
           a literal number.
*Action:   Use a literal number as the label.

Я нашел одно упоминание о подобной проблеме здесь:

https://forums.oracle.com/forums/thread.jspa? threadID=91417

но изменение курсора со следующей командой не помогает в моем случае:

ALTER SESSION SET cursor_sharing='EXACT';

Есть также этот stackoverflow вопрос:

РТЫ 29908: недостающая основная просьба для вспомогательного оператора

но ответ не применим. Я использую Oracle 11.2.0.3.0

2
nl ja de
Я don' t видят любой прямой способ решить эту проблему. Вы могли возможно работать вокруг этого при помощи динамического SQL и возможно обертывания, что функционируют динамические SQL в pipelined. Хотя это не было бы очень удобно для пользователя.
добавлено автор Jon Heller, источник
Спасибо! Это - результат Предиката JPA CriteriaQuery p = cb.gt (cb.function ("СОДЕРЖИТ", Integer.class, путь, cb.literal ("символ"), cb.literal (1)), 0); таким образом, мои варианты справедливо ограничиваются.
добавлено автор Tomasz, источник
Oracle RU
Oracle RU
303 участник(ов)

Русскоязычная группа по Oracle. — Архитектура СУБД — PL/SQL — Оптимизация — Администрирование — Вакансии Oracle (указать инфу по вилке ЗП и удалёнке) Приглашайте коллег :-) Запрещены: личные оскорбления, обсуждения оффтопик вопросов политики и религии