|
|
|
выгрузка/загрузка БД с поврежденными данными
|
|||
|---|---|---|---|
|
#18+
Есть клиент-серверная система собственной разработки компании. Когда-то при сбое (я еще там тогда не работал) в одной из таблиц повредились несколько дат. Сейчас при выгрузке данных из 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'; ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2004, 05:42 |
|
||
|
выгрузка/загрузка БД с поврежденными данными
|
|||
|---|---|---|---|
|
#18+
автор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. Вместо NULL можно поставить любое значение по умолчанию, которое стоит проставить в испорченные даты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2004, 09:24 |
|
||
|
выгрузка/загрузка БД с поврежденными данными
|
|||
|---|---|---|---|
|
#18+
А еще лучше открыть соответствующий файл в блокноте и посмотреть, что там творится. Может быть есть смысл исправлять прямо там. Если ошибок немного и таблица небольшая, то это самый лучший способ. Imho :-). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2004, 09:57 |
|
||
|
выгрузка/загрузка БД с поврежденными данными
|
|||
|---|---|---|---|
|
#18+
2 ASCRUS Thanks 2 Александр Спелицин В маленьких файлах я так и сделал, только вот тот файл, на котором происходит ступор весом в 7 Гб, его ни одна программа под Виндоуз отредактировать не может :), вопросы его редактирования обсуждались в соответствующих форумах, знакомый Линуксоид его подшаманил, только ошибок оказалось слишком много и разные. Вроде с датами победили, так теперь новая появилась: primary key not unique. Полный пинцет %-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2004, 02:42 |
|
||
|
выгрузка/загрузка БД с поврежденными данными
|
|||
|---|---|---|---|
|
#18+
Сталкивался с похожим, и мне кажется проблема не в датах и потом ключах, а в ограничителях - по умолчанию при выгрузке данных "," и если в чар поле у тебя есть запятая - то все что после нее он(ASA) попытается пихать в следующие столбцы - получишь явное несоответствие типов - нарушение целостности и т.д. Либо подбери квотеры по выгрузке, либо выгони в dbf через isql и грузи из него. Если 7 может выгрузить - то думаю она сможет и работать с таблицей, и рихтовку данных попробуй делать там (если надо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2004, 10:11 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=32372097&tid=2014721]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
155ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 255ms |
| total: | 493ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...