ORA-00911 ошибка с функцией to_date - PullRequest
0 голосов
/ 23 октября 2011

Этот запрос работает как задумано:

select dit_in.id data_item_in, dit_out.id data_item_out, alg.id algo_id 

from algorithm_run arun

join algorithm_run_of arof on
arof.algorithm_run_id = arun.id

join algorithm_run_input arin on
arin.algorithm_run_id = arun.id

join data_item dit_in on
dit_in.id = arin.data_item_id

join algorithm alg on
alg.id = arof.algorithm_id

join algorithm_run_output arout on
arout.algorithm_run_id = arun.id

join data_item dit_out on
dit_out.id = arout.data_item_id

where alg.id in (182,183,143,162,125,222)

К сожалению, я получаю ошибку, когда добавляю в конце:

 and arun.start_time >= to_date(’01/jun/2011’,’dd/mm/yyyy’) 
 and arun.start_time < to_date(’01/jul/2011’,’dd/mm/yyyy') 

Я использую веб-интерфейс, сообщение об ошибкеis:

предупреждение: oci_execute () [function.oci-execute]: ORA-00911: недопустимый символ в / opt / csw / apache2 / share / htdocs / DAE / sites / default / modules /data_repository / data_repository.inc в строке 117.

предупреждение: oci_fetch_row () [function.oci-fetch-row]: ORA-24374: определение не выполнено до выборки или выполнения и выборка в / opt / csw / apache2/share/htdocs/DAE/sites/default/modules/daedatabase/daedatabase_db.inc в строке 852.

Ответы [ 3 ]

5 голосов
/ 23 октября 2011
and arun.start_time < to_date(’01/jul/2011’,’dd/mm/yyyy') 

Я вижу два разных типа кавычек вокруг этого последнего бита? Одиночная цитата и обратная цитата? Или это просто проблема вырезания / вставки или перевода?

5 голосов
/ 23 октября 2011

Попробуйте:

 and arun.start_time >= to_date(’01/06/2011’,’dd/mm/yyyy’) 
 and arun.start_time < to_date(’01/07/2011’,’dd/mm/yyyy’) 

или

 and arun.start_time >= to_date(’01/jun/2011’,’dd/mon/yyyy’) 
 and arun.start_time < to_date(’01/jul/2011’,’dd/mon/yyyy’) 

Проблема в том, что ваша строка даты (01 / июнь / 2011) не соответствует спецификатору формата (дд / мм)/ год).Вам нужно либо изменить дату, либо спецификатор, как показано в приведенных выше примерах.

2 голосов
/ 23 октября 2011

Когда Фил указывает , ваши строки заключены в две разные кавычки.Похоже, вы в основном используете модные кавычки из текстового процессора.Это проблема, потому что Oracle ожидает простых апострофов ASCII (ASCII 39).

Это, безусловно, объясняет, почему вы получаете ошибку ORA-00911.

Чтобы это исправить, вам просто нужно заменить все на '.

Чтобы избежать этого в будущем, вы должны использовать текстовый редактор или IDE при написании кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...