#sql #oracle #oracle-sqldeveloper
Вопрос:
Как я могу загрузить сегодняшнюю дату в переменную для использования в WHERE
предложении. Я перепробовал несколько комбинаций, но не смог заставить нижеприведенное работать.
variable v_today DATE;
SELECT SYSDATE INTO v_today FROM DUAL;
ОШИБКА: ORA-00905: отсутствует ключевое слово
Заранее спасибо.
Комментарии:
1. SQL не поддерживает переменные, вам нужно использовать PL/SQL или проверить, поддерживает ли разработчик Oracle SQL какую-либо замену текста
2. Почему ты не пользуешься
where your_field {comparison operator} sysdate
?3. @a_horse_with_no_name — Что ты имеешь в виду? Возможно, переменные привязки не упоминаются в стандарте SQL, но они поддерживаются Oracle (единственный диалект, с которым я знаком) и, вероятно, многими другими. Очевидно, оперативная группа это знает. Проблема в том, что SQ*Plus не поддерживает
date
тип данных для переменных привязки (хотя Oracle SQL поддерживает!)4. что вы хотите сделать с этими данными после ?
5. Ответ зависит от того, что вы используете в качестве интерфейса. Эта
variable
команда является командой SQL*Plus (поддерживается также другими интерфейсами, например разработчиком SQL). SQL*Plus не поддерживаетdate
тип данных для переменных привязки, что означает, что первая команда уже должна была завершиться ошибкой с другим сообщением. Итак, какой интерфейс вы используете и как вы пытались выполнить эти команды (чтобы получить ошибку, которую вы получили)?