Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.131.110.169] |
|
Данный раздел предназначается исключительно для обсуждения вопросов использования языка запросов SQL. Обсуждение общих вопросов, связанных с тематикой баз данных - обсуждаем в разделе "Базы данных: общие вопросы". Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ. |
Сообщ.
#1
,
|
|
|
Всем здравствуйте!
Запрос простой, как шланг: select nkl100 from geoobject where to_number(substr(nkl100, 6, 3)) > 144 order by nkl100 Поле NKL100 - строки вида 'N-37-023', 'P-35-142' etc... (номенклатуры карты масштаба 1 : 100 000). На 11 версии всё ОК, получил список некорректных номенклатур. На 12 версии получил ORA-01722: неверное число. Ничего не понимаю! Посмотрел на SQL.RU и прочих - как и ожидалось, сплошные пляски с бубном. Вот такое: select nkl100, to_number(substr(nkl100, 6, 3)) from geoobject where reg_n < 1000 order by nkl100 на 12 версии работает ОК! И вот такое работает: select nkl100, to_number(substr(nkl100, 6, 3)) from geoobject where reg_n < 1000 order by to_number(substr(nkl100, 6, 3)) |
Сообщ.
#2
,
|
|
|
Поплясал с бубном:
select nkl100, to_number(substr(nkl100, 6, 3)) from geoobject where /*nkl100 is not null and*/ length(nkl100) = 8 and to_number(substr(nkl100, 6, 3)) > 144 и нашёл ошибку в данных! Данные внесены аж в 2004 году! Надо дома глянуть, что там для этого объекта. Мои извинения тем, кто таки потратил на ЭТО время. |