Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.11.11;
Скачать: [xml.tar.bz2];

Вниз

conversion from string   Найти похожие ветки 

 
Blunder   (2002-10-18 21:22) [0]

IB 5
Проблема в следующем. было поле для хранения дат типа VARCHAR(10)
с помощью
update RDB$FIELDS set
RDB$FIELD_TYPE = 35,
RDB$FIELD_LENGTH = 8,
RDB$CHARACTER_LENGTH = NULL,
RDB$CHARACTER_SET_ID = NULL
where RDB$FIELD_NAME = "RDB$106"
превратил это поле в DATE,всё прошло успешно, но как выяснилось в этом поле хранились некорректные данные для некоторых записей типа "31.02.2002" или "20.14.2000"
в DATE все преобразовалось, но DATE с такими косяками естественно не дружит и теперь при любом обращении к записям с таким косяком естественно вылазит invalid conversion from string.
Что делать таким же способом в VARCHAR(10) переделать тоже не дает видимо по той же причине.


 
Anatoly Podgoretsky   (2002-10-18 21:43) [1]

Определи эти записи и запиши в них нормальные даты


 
Blunder   (2002-10-18 21:56) [2]

не могу, записи определил, при любой попытке обращения к ним говорит conversion from string.


 
Anatoly Podgoretsky   (2002-10-18 22:00) [3]

А ты пробовал для этой записи сделать UPDATE


 
Blunder   (2002-10-18 22:07) [4]

обижаешь :)) конечно пробовал пишет всё ту же фразу, если бы не это я бы в форум не писал бы, может можно как то его обратно к варчару привести исправить и вернуть ???


 
Anatoly Podgoretsky   (2002-10-18 22:09) [5]

Тогда попытка удаления или скажем ремонта базы, вроде бы есть такая утилита.


 
Blunder   (2002-10-19 00:01) [6]

ни фига с этим полем не делается кроме drop :(((


 
Johnmen   (2002-10-19 01:54) [7]

Это называется "Доигрался хрен на скрипке" !
Вот ответь, какого ... тебя понесло в системные таблицы ?
Что, по-хорошему не мог решить проблему ?


 
Anatoly Podgoretsky   (2002-10-19 11:54) [8]

Делаем резюме
Просмотреть нельзя
Изменить нельзя
удалить нельзя
ремонту не поддается

Делаем вывод
таблицу или поле в могилу

Причина
Johnmen © (19.10.02 01:54)


 
kaif   (2002-10-19 20:28) [9]

Напиши специальное приложение, которое одну за другой запрашивает записи из этой таблицы (по одной). Для тех записей, что прочитались - копирует дату в нормальное поле даты (создай его). Для тех, что дали сбой при чтении в секции try-except-end обходи эту ошибку, чтобы цикл не вылетал. Если у тебя даже миллион записей, то за час машина справится с такой задачей.
Затем удали старое поле с помощью DROP.

Приложение пишется за 5 минут. Овчинка выделки стоит.


 
Blunder   (2002-10-21 19:46) [10]

я уже почти так и сделал, только я UDF написал которая получает дату, проверяет её на правильность и если правильная то возвращает, а если не то присваивает значение 01.01.1000 и
потом сделал alter table FOLDERS add TMP date computed by (datecorr(FOLDER_date));

DATECORR это UDF.
Вобщем всё получилось, большое спасибо за подсказки.


 
kaif   (2002-10-22 12:04) [11]

Ты нашел более красивое решение.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.11.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
14-34237
Peter Gluhiy
2002-10-23 13:50
2002.11.11
Для любителей OnLine тестов!


1-33925
kull
2002-10-30 11:26
2002.11.11
Как в Word-e пробежаться по всем объектам?


1-33980
panna
2002-10-30 15:46
2002.11.11
Помогите пожалуйста!


3-33898
VZ Alexandr
2002-10-22 20:20
2002.11.11
Помогите с Insert


14-34244
Bis
2002-10-23 13:36
2002.11.11
А не сделать ли из интересных глюков задачки ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский