Как мы можем использовать логическое выражение для оператора where в Oracle? - PullRequest
1 голос
/ 30 января 2020

У меня другая проблема с PL SQL, и я хотел бы попросить вас о помощи. Чтобы объяснить проблему, я буду использовать простой пример: у меня есть таблица «tab» для столбцов «code» и «description» и функция, возвращающая логическое значение. Я хотел бы выбрать каждый код, описание так, чтобы myFunction (code) = true. Я попробовал это утверждение:

SELECT code, description from tab where myFunction(code)=true

Я получил эту ошибку:

ORA-00900: недействительное SQL -соглашение.

Спасибо заранее ребята.

1 Ответ

1 голос
/ 30 января 2020

Вы не можете BOOLEAN является PL / SQL типом данных и не существует в SQL.

Если вы хотите вернуть истинное значение затем возвращает литерал (то есть 0 / 1 или 'Y' / 'N' et c.) и сравнивает его.

SELECT code,
       description
FROM   tab
WHERE  myFunction(code) = 1
...