Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / выгрузка/загрузка БД с поврежденными данными / 5 сообщений из 5, страница 1 из 1
09.01.2004, 05:42
    #32371036
r1
r1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выгрузка/загрузка БД с поврежденными данными
Есть клиент-серверная система собственной разработки компании. Когда-то при сбое (я еще там тогда не работал) в одной из таблиц повредились несколько дат. Сейчас при выгрузке данных из ASA7 и загрузке в ASA8 через ISQL при загрузке (выгрузка происходит без проблем) появляется сообщение:
Could not execute statement.
ASA error -157: Cannot convert 2003/0ABTC to date.
You can continue executing, stop executing, or quit ISQL completely.

?1) Что будет с новой БД, если я выберу Continue: в БД будет помещено поврежденное поле, будет отсутствовать запись (кортеж) с поврежденным полем целиком, что-то другое?
?2) можно ли восстановить данные утилитой validate?
?3) можно ли получить какие-нибудь данные о поврежденных данных (под Oraclе-ом делается примерно так
select owner, object_name from dba_objects where status <> 'VALID'; )
...
Рейтинг: 0 / 0
09.01.2004, 09:24
    #32371133
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выгрузка/загрузка БД с поврежденными данными
авторASA error -157: Cannot convert 2003/0ABTC to date.
You can continue executing, stop executing, or quit ISQL completely.

?1) Что будет с новой БД, если я выберу Continue: в БД будет помещено поврежденное поле, будет отсутствовать запись (кортеж) с поврежденным полем целиком, что-то другое?
Ничего не будет :) Команда загрузки даных генерит ошибку и выходит, а ISQL спрашивает, продолжать ли выполнение следующих команд в батче.

Самый простой способ загрузить таблицу с поврежденными данными - это создать временную таблицу, с аналогичной структурой загружаемой таблицы, но в поле даты вместо типа Date поставить тип varchar(10) и соответствующе загрузить даные в нее. Далее простым запросом перегнать данные из нее в исходную, самому отсеивая неправильные даты:
Код: plaintext
1.
2.
3.
4.
  insert into DestTable (FieldDate, Field1, Field2, Field3)
    select case when IsDate(FieldDate) then FieldDate else NULL end, 
      Field1, Field2, Field3
    from #TempTable

Вместо NULL можно поставить любое значение по умолчанию, которое стоит проставить в испорченные даты.
...
Рейтинг: 0 / 0
09.01.2004, 09:57
    #32371161
Александр Спелицин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выгрузка/загрузка БД с поврежденными данными
А еще лучше открыть соответствующий файл в блокноте и посмотреть, что там творится. Может быть есть смысл исправлять прямо там. Если ошибок немного и таблица небольшая, то это самый лучший способ. Imho :-).
...
Рейтинг: 0 / 0
10.01.2004, 02:42
    #32372097
r1
r1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выгрузка/загрузка БД с поврежденными данными
2 ASCRUS
Thanks

2 Александр Спелицин
В маленьких файлах я так и сделал, только вот тот файл, на котором происходит ступор весом в 7 Гб, его ни одна программа под Виндоуз отредактировать не может :), вопросы его редактирования обсуждались в соответствующих форумах, знакомый Линуксоид его подшаманил, только ошибок оказалось слишком много и разные. Вроде с датами победили, так теперь новая появилась: primary key not unique. Полный пинцет %-)
...
Рейтинг: 0 / 0
10.01.2004, 10:11
    #32372114
L0cat0r
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выгрузка/загрузка БД с поврежденными данными
Сталкивался с похожим, и мне кажется проблема не в датах и потом ключах,
а в ограничителях - по умолчанию при выгрузке данных "," и если в чар поле у тебя есть запятая - то все что после нее он(ASA) попытается пихать в следующие столбцы - получишь явное несоответствие типов - нарушение целостности и т.д.

Либо подбери квотеры по выгрузке, либо выгони в dbf через isql и грузи из него.

Если 7 может выгрузить - то думаю она сможет и работать с таблицей, и рихтовку данных попробуй делать там (если надо)
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / выгрузка/загрузка БД с поврежденными данными / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]