Как я могу это исправить? - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть следующий запрос:

SELECT parameter1, parameter1 
FROM kcrt_table_entries 
WHERE parameter_set_field_id = (SELECT parameter_set_field_id 
                                FROM knta_parameter_set_fields 
                                WHERE PROMPT = 'Matrix:'
                               )
  AND request_id = (SELECT kr.request_id 
                    FROM kcrt_requests kr 
                    WHERE kr.request_type_id = (SELECT request_type_id 
                                                FROM kcrt_request_types 
                                                WHERE request_type_name = 'RHB - Risk Rating Questionnaire'
                                               ) 
                      AND kr.status_id = (SELECT status_id 
                                          FROM kcrt_statuses 
                                          WHERE status_name = 'Admin-Reading'
                                         ) 
                   ) 
  AND parameter2 <  100 
  AND parameter3 >= 100

Когда я его запускаю, выдается следующая ошибка:

ORA-01722: неверный номер 01722. 00000 - «неверный номер» * Причина: указанный номер был недействительным. * Действие: Укажите правильный номер.

Пожалуйста, помогите мне решить эту проблему.

1 Ответ

0 голосов
/ 18 сентября 2018

Почему вы выбираете PARAMETER1 дважды?

По состоянию на полученную ошибку: кажется, что имена столбцов должны совпадать, по крайней мере, глядя на их имена (например, request_id до request_id, status_id до status_id и т. Д. .) так что все что осталось, это две последние строки:

AND parameter2 <  100 
AND parameter3 >= 100

Если типы данных этих столбцов не NUMBER, а VARCHAR2, тогда вы должны заключить 100 в одинарные кавычки (т. Е. Использовать '100' вместо).

Если это не поможет, предоставьте дополнительную информацию (описание таблиц поможет).

...