недействительный номер, когда нет недопустимого номера - PullRequest
0 голосов
/ 19 ноября 2018

возникла проблема с выдачей Oracle ошибки

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

все местоположения подчиняются одним и тем же правилам, за исключением нескольких отклонений, которые были исключены.

ниже приведен пример вывода:

enter image description here

Столбец A: длина строки должна быть меньше 39

СтолбецB: высота должна быть меньше 17

Location_23_23 - остров

, некоторые локации имеют другой дизайн, поэтому я добавил проверку "-" в позиции 6, чтобы устранить их.ex (C0S1-0101)

ive экспортировал данные, и отклонений не обнаружено, но при прокрутке результатов возникает ошибка.

код ниже:

select location_id,to_number(ltrim(rtrim(substr(location_id,7,2)))) asa,to_number(ltrim(rtrim(substr(location_id,9,2)))) as b,to_number(ltrim(rtrim(substr(location_id,4,2)))) as Location_23_23
from location 
where location_id like '%C0S%'
and location_id not in ('C0SKRUSAGE','C0SKYUSAGE','C0SRBUSAGE') 
and to_number(ltrim(rtrim(substr(location_id,7,2)))) < 39  
and current_volume = 0  
and to_number(ltrim(rtrim(substr(location_id,9,2)))) < 17
and to_number(ltrim(rtrim(substr(location_id,4,2)))) between 23 and 23
and substr(location_id,6,1) = '-'

1 Ответ

0 голосов
/ 20 ноября 2018

это закончило тем, что решило мою проблему после нескольких часов игры с ним!

select location_id as Location_id
from location 
where location_id like '%C0S%'
and location_id not in ('C0SKRUSAGE','C0SKYUSAGE','C0SRBUSAGE') 
and ltrim(rtrim(substr(location_id,7,2))) < '48' 
and current_volume = 0 
and ltrim(rtrim(substr(location_id,9,2))) < '15'
and ltrim(rtrim(substr(location_id,4,2))) between '65' and '86'
and substr(location_id,6,1) = '-'

удаление TO_NUMBER и добавление '#' вокруг чисел!

...