Вход на сайт
SQL SERVER -> AS400 : Data transformation
152
NEW 15.08.09 21:00
пертягиваю данные с SQL Server в AS 400.
Удается INSERT-ить, SELECT-ить через OPENQUERY.
Но UPDATE, DELETE дает ошибку. И ето при том что вначале когда таблица в AS400 была почти пустой DELETE и UPDATE шло без проблем.
Теперь дает следуюшую ошибку (привожу также пример SELECT-a который пытаюсь удалить):
SELECT * FROM OPENQUERY(S44DE055, 'select * from rl35tb14.KMFIFC1 WHERE (KBNEI1 = ''VG00001'')')
(идет без проблем)
DELETE FROM OPENQUERY(S44DE055, 'select * from rl35tb14.KMFIFC1 WHERE (KBNEI1 = ''VG00001'')')
(дает ошибку :
Der OLE DB-Provider 'IBMDASQL' konnte nicht aus der select * from rl35tb14.KMFIFC1 WHERE (KBNEI1 = 'VG00001')-Tabelle löschen.
Die Aktualisierung entsprach nicht den Schemaanforderungen.
[OLE/DB provider returned message: Key column information is insufficient or incorrect. Too many rows were affected by update.]
OLE DB-Fehlertrace [OLE/DB Provider 'IBMDASQL' IRowsetChange::DeleteRows returned 0x80040e21: DBROWSTATUS_E_SCHEMAVIOLATION]. )
подскажет кто нибуть где искать загвоздку? Как в AS400 правильно удалять и как правильно искать Key column?
Удается INSERT-ить, SELECT-ить через OPENQUERY.
Но UPDATE, DELETE дает ошибку. И ето при том что вначале когда таблица в AS400 была почти пустой DELETE и UPDATE шло без проблем.
Теперь дает следуюшую ошибку (привожу также пример SELECT-a который пытаюсь удалить):
SELECT * FROM OPENQUERY(S44DE055, 'select * from rl35tb14.KMFIFC1 WHERE (KBNEI1 = ''VG00001'')')
(идет без проблем)
DELETE FROM OPENQUERY(S44DE055, 'select * from rl35tb14.KMFIFC1 WHERE (KBNEI1 = ''VG00001'')')
(дает ошибку :
Der OLE DB-Provider 'IBMDASQL' konnte nicht aus der select * from rl35tb14.KMFIFC1 WHERE (KBNEI1 = 'VG00001')-Tabelle löschen.
Die Aktualisierung entsprach nicht den Schemaanforderungen.
[OLE/DB provider returned message: Key column information is insufficient or incorrect. Too many rows were affected by update.]
OLE DB-Fehlertrace [OLE/DB Provider 'IBMDASQL' IRowsetChange::DeleteRows returned 0x80040e21: DBROWSTATUS_E_SCHEMAVIOLATION]. )
подскажет кто нибуть где искать загвоздку? Как в AS400 правильно удалять и как правильно искать Key column?
NEW 31.08.09 11:06
в ответ Nickolaychuk 24.08.09 16:43
Спасибо за ответ. вижу что не один сталкиваюсь с подобными занятиями. Можно иногда хоть спросить совета.
Там проблема была в ID. Сам сервер AS400 я не видел, есть какая то терминальная прога, но выглядит по типу ES-ки с 80 годов.
Работаю через vpn на удаленном сервере, с которого пока нашел только способ через open query загнать данные в DB2.
После того как админ добавил ID в таблицы (какой то уж очень специфичный на вид unique identifier), стало возможым удалЯть и делать update.
Там проблема была в ID. Сам сервер AS400 я не видел, есть какая то терминальная прога, но выглядит по типу ES-ки с 80 годов.
Работаю через vpn на удаленном сервере, с которого пока нашел только способ через open query загнать данные в DB2.
После того как админ добавил ID в таблицы (какой то уж очень специфичный на вид unique identifier), стало возможым удалЯть и делать update.
NEW 31.08.09 15:52
в ответ rimqpp0 31.08.09 11:06
Alex,
Рад, что все разрешилось :)
> Спасибо за ответ. вижу что не один сталкиваюсь с подобными занятиями. Можно иногда хоть спросить совета.
Хотел ответить, что быстрее будет получить на такие вопросы ответы на sql.ru
потом увидел, что вы прекрасно об этом осведомлены. :)
Рад, что все разрешилось :)
> Спасибо за ответ. вижу что не один сталкиваюсь с подобными занятиями. Можно иногда хоть спросить совета.
Хотел ответить, что быстрее будет получить на такие вопросы ответы на sql.ru
потом увидел, что вы прекрасно об этом осведомлены. :)