Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.08.2011, 13:16   #1
ShowMeYourStyle
 
Регистрация: 04.07.2011
Сообщений: 7
По умолчанию перенос таблиц с mssql2008 на oracle 11g

Подскажите каким образом лучше всего перенести таблицы? Не БД а просто дюжину таблиц со всеми данными
ShowMeYourStyle вне форума Ответить с цитированием
Старый 02.08.2011, 14:11   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

начиная от написания простенького конвертора (на любом языке высокого уровня),
или
от образования гетерогенных соединений (в Oracle сделать линк на нужную БД в MS SQL), потом дюжина запросов вида create table xxxx as select * from mssql_link@xxxx

и заканчивая выгрузкой данных в SQL скрипты и выполнение этих скриптов в Oracle.


Самые большие проблемы будут с переносом ключей (особенно внешних), индексов, триггеров... А если, не дай Бог, есть внутрисерверная логика (хранимые процедуры) - то БОЛЬШОЙ и СЛОЖНЫЙ ТРУД обеспечен...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.08.2011, 15:42   #3
ShowMeYourStyle
 
Регистрация: 04.07.2011
Сообщений: 7
По умолчанию

Пытаясь импортировать с помощью SQL Export Import wizard получаю следующее:

Цитата:
Warning: Preparation SQL Task 1: Произошли ошибки во время выполнения многошаговой операции OLE DB. По возможности, проверьте значения всех состояний OLE DB. Работа не выполнена. (SQL Server Import and Export Wizard)

Warning: Preparation SQL Task 1: Произошли ошибки во время выполнения многошаговой операции OLE DB. По возможности, проверьте значения всех состояний OLE DB. Работа не выполнена. (SQL Server Import and Export Wizard)

Error 0xc002f210: Preparation SQL Task 1: Executing the query "CREATE TABLE "BL_manual_kazpost_mit_OPS" (
"selle..." failed with the following error: "ORA-00955: имя уже задействовано для существующего объекта". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
(SQL Server Import and Export Wizard)
ShowMeYourStyle вне форума Ответить с цитированием
Старый 02.08.2011, 15:48   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Executing the query "CREATE TABLE "BL_manual_kazpost_mit_OPS" (
"selle..." failed with the following error: "ORA-00955: имя уже задействовано для существующего объекта".
невозможно создать таблицу BL_manual_kazpost_mit_OPS, т.к. в Oracle уже есть объект с таким именем.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.08.2011, 15:56   #5
ShowMeYourStyle
 
Регистрация: 04.07.2011
Сообщений: 7
По умолчанию

Спасибо Сергей за ответы, там с прошлого раза просто создалась таблицы, удалил её но теперь получаю следующее:

Цитата:
Warning: Preparation SQL Task 1: Произошли ошибки во время выполнения многошаговой операции OLE DB. По возможности, проверьте значения всех состояний OLE DB. Работа не выполнена. (SQL Server Import and Export Wizard)

Error 0xc002f210: Preparation SQL Task 1: Executing the query "CREATE TABLE "BL_manual_kazpost_mit_OPS_kazserve r4..." failed with the following error: "ORA-00972: слишком длинный идентификатор". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
(SQL Server Import and Export Wizard)
ShowMeYourStyle вне форума Ответить с цитированием
Старый 02.08.2011, 16:58   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

в Oracle все идентификаторы (наименования) объектов - будь то название таблицы, наименование поля, название индекса, триггера, процедуры и НЕ МОГУТ БЫТЬ ДЛИНЕЕ 30 символов! (я знаю, что это совсем мало, но таковы суровые реалии жизни...)

название вашей таблицы BL_manual_kazpost_mit_OPS_kazserver 4 имеет длину 35 символов.
В Oracle таблица не может иметь такое длинное имя.
Вам прийдётся сокращать имя до 30 символов (или придумывать другое, но не длинее 30 символов).
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.08.2011, 06:27   #7
ShowMeYourStyle
 
Регистрация: 04.07.2011
Сообщений: 7
По умолчанию

Ну, как обычно, проблема на проблеме:

Во время процесса переноса таблиц, который шёл нормально, получил следующее:
Цитата:
Additional Information
Недостаточно памяти для обработки команды (System.Drawing)
полный код ошибки:

Цитата:
- Copying to "LG_DT_Fenix_B3" (Error)
Messages
Error 0xc0202009: Data Flow Task 2: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available. Source: "OraOLEDB" Hresult: 0x80004005 Description: "ROW-00060: *㲰孭¢᪠: [dainsert,16]".
(SQL Server Import and Export Wizard)

Error 0xc0209029: Data Flow Task 2: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERRO R. The "input "Destination Input" (286)" failed because error code 0xC020907B occurred, and the error row disposition on "input "Destination Input" (286)" specifies failure on error. An error occurred on the specified object of the specified component. There may be error messages posted before this with more information about the failure.
(SQL Server Import and Export Wizard)

Error 0xc0047022: Data Flow Task 2: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "Destination 7 - LG_DT_Fenix_B3" (273) failed with error code 0xC0209029 while processing input "Destination Input" (286). The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running. There may be error messages posted before this with more information about the failure.
(SQL Server Import and Export Wizard)

Error 0xc02020c4: Data Flow Task 2: The attempt to add a row to the Data Flow task buffer failed with error code 0xC0047020.
(SQL Server Import and Export Wizard)

Error 0xc0047038: Data Flow Task 2: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. The PrimeOutput method on component "Source 7 - LG_DT_Fenix_Back_P_total_bonusi" (192) returned error code 0xC02020C4. The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing. There may be error messages posted before this with more information about the failure.
(SQL Server Import and Export Wizard)

Последний раз редактировалось ShowMeYourStyle; 03.08.2011 в 06:31.
ShowMeYourStyle вне форума Ответить с цитированием
Старый 03.08.2011, 16:59   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я пас... я не знаю, что это за ошибка...

p.s.
может проблема связана с кодировкой..
Цитата:
"ROW-00060: *㲰孭¢᪠: [dainsert,16]".
весьма похоже, что там Unicode в строке..
может быть, проблема связана с этим?..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.08.2011, 06:23   #9
ShowMeYourStyle
 
Регистрация: 04.07.2011
Сообщений: 7
По умолчанию

Эх, спасибо Сергей

Пришлось искать новые пути, теперь перекидываю через ODBC tool PL/SQL Developer
Намного медленнее, зато пока вроде всё перекидывается.

Ещё раз благодарю
ShowMeYourStyle вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматический перенос данных с таблиц Excel в текст Word YSL Microsoft Office Word 52 27.06.2021 05:01
Проблемы с установкой Oracle 11g Database Altera Софт 5 08.02.2011 09:10
Сформировать из 30 таблиц 15 000 таблиц, за 15 минут. kola672 Фриланс 31 19.10.2010 01:22
Перенос данных из таблиц alco84 Microsoft Office Access 8 01.03.2010 16:41