2015-04-06 3 views
0

У меня возникли проблемы с этим запросом. Я пытаюсь создать запрос, в котором пользователь сможет ввести 2 даты во время выполнения. Он просит меня для входа, как для даты начала и окончания насытить, но тогда придумывает: ORA-00904: "JAN": invalid identifierUser Input Query

Мой запрос в настоящее время:

SELECT p.FirstName, p.email, a.Avatar_Name, s.Species_Name, a.Avatar_Level, a.Skill, s.Wisdom_Level, a.AvA_DOB, a.Hoard 
    FROM Players P, Avatars A, Species S 
    WHERE a.Player_ID = p.Player_ID 
    AND a.Species_ID = s.Species_ID 
    AND Avatar_Level = 'Master' 
    AND AvA_DOB BETWEEN &startdate AND &enddate 
    ORDER BY Hoard DESC; 

Я хочу, чтобы пользователь мог найти список аватаров между двумя датами, которые вводит пользователь. Любая помощь, пожалуйста? Если вам нужна дополнительная информация, пожалуйста, спросите! (: (SQL PLUS)

+2

и эти различные вопросы ... – Siyual

+0

Какие ошибки SQLPLUS возвращение –

+0

Ну, это спрашивает меня для входа, как для даты начала и окончания насытить, но тогда придумывает: ORA-00904 : «JAN»: недопустимый идентификатор – user3191460

ответ

1

значения дат в SQL должны быть завернуты в одиночные кавычки, Oracle будет отбрасывать эти строки на дату типа данных, но это безопаснее использовать явное преобразование, с ожидаемой маской формата

.. ?
SELECT p.FirstName, p.email, a.Avatar_Name, s.Species_Name, a.Avatar_Level, a.Skill, s.Wisdom_Level, a.AvA_DOB, a.Hoard 
    FROM Players P, Avatars A, Species S 
    WHERE a.Player_ID = p.Player_ID 
    AND a.Species_ID = s.Species_ID 
    AND Avatar_Level = 'Master' 
    AND AvA_DOB BETWEEN to_date('&startdate', 'dd-mmm-yyyy') 
       AND to_date('&enddate', 'dd-mmm-yyyy') 
    ORDER BY Hoard DESC; 
+0

Да, благодарю вас за ответ. Я действительно понял это, когда я снова посмотрел на него, у меня просто было напоминание от Боба ха-ха! Спасибо, во всяком случае. – user3191460