| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Oracle > сравение результата функции to_number с числом |
| Автор: s_a_s_h_a 4.7.2009, 16:10 | ||||||
| проблема в следующем... Есть запрос
так вот, он выдает список чисел, суммирование работает
а такая вещь уже валится с ошибкой "ORA-01722: неверное число"
Вопрос: почему? и как обойти эти грабли? З.Ы.: пробовал еще cast(replace(to_char(replace(v.sqr,'.',','),'99999999D00'),' ') as number(12,2)) такая же ерунда чуть не забыл... Oracle 9 |
| Автор: Zloxa 5.7.2009, 14:29 |
Что такое t.sqr? ЗЫ в таких ситуациях лучше явно указывать http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/initparams129.htm#sthref406 в третьем параметре to_number, либо принудительно его устанавливать перед выполнением запроса. Потому как этот параметр сессии устанавливается с клиента и, как следствие, этот запрос может перестать работать с других клиентских машин. |
| Автор: s_a_s_h_a 5.7.2009, 20:07 | ||
извиняюсь... опечатался:
Запрос из Москвы гласит, что нужно посчитать средние стоимости за кв. метр. А эти квадратные метры я могу получить только из текстового поля. Пользователи могут забивать разделители целой и дробной части по разному. Я привожу все числа к одному виду, в котором это работает на моей машине, на других машинах этот запрос выполнятся не будет. И меня интересует, как обойти грабли, когда вложенный запрос выполняется, как минимум выводятся на экран нормальные числа, а вот сравнение дальше не пашет :( |
| Автор: Zloxa 5.7.2009, 22:53 |
Разные грабли надо обходить по разному. Сначала надо понять с какими граблями мы имеем дело. Необходимо понять на каких именно данных поднимается исключение. Меня очень удивляет тот факт что вы можете посчитать суммму, но не можете отфильтроваться. Но в подобной подаче ваш вопрос более похож на шараду, на задачку на сообразительность. Мол поди догадайся на чем именно ошибка стреляет и как такое может быть. Уверен, как только вы определите ту строку, на которой стреляет исключение, ваши вопросы отпадут автоматически. |
| Автор: s_a_s_h_a 6.7.2009, 10:44 | ||
Запихал в курсор запрос, ну и if-ом условие поставил. Все замечательно работает, даже exception не пришлось ставить:
в общем, хрень какая-то... и главное суммирование-то работает Спасибо за внимание к проблеме. |