powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / выгрузка/загрузка БД с поврежденными данными
5 сообщений из 5, страница 1 из 1
выгрузка/загрузка БД с поврежденными данными
    #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
выгрузка/загрузка БД с поврежденными данными
    #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
выгрузка/загрузка БД с поврежденными данными
    #32371161
Александр Спелицин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А еще лучше открыть соответствующий файл в блокноте и посмотреть, что там творится. Может быть есть смысл исправлять прямо там. Если ошибок немного и таблица небольшая, то это самый лучший способ. Imho :-).
...
Рейтинг: 0 / 0
выгрузка/загрузка БД с поврежденными данными
    #32372097
r1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
r1
Гость
2 ASCRUS
Thanks

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

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

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


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