#sql-server #oracle #sql-server-2008 #oracle10g #data-transfer
#sql-сервер #Oracle #sql-server-2008 #oracle10g #передача данных
Вопрос:
У меня есть таблица в SQL Server 2008 R2. Она содержит 1 млн или более записей. Теперь я хочу создать таблицу в Oracle с тем же содержимым, что и в SQL Server 2008 R2.
Ответ №1:
Существует несколько способов сделать это. Сначала вы можете ознакомиться со следующим руководством: Перенос базы данных Microsoft SQL Server в Oracle Database 11g
Я выполнял эту задачу в прошлом, используя следующие шаги:
- Создайте таблицу в базе данных Oracle (только схему, не данные).
- Экспортируйте данные с SQL server в 1 или более файлов формата CSV (или любых других файлов с разделителями (я предлагаю создавать файлы, содержащие не более 100 000 записей)
- Используйте SQL*Loader (утилита Oracle) для загрузки данных из файлов в oracle.
Утилита Oracle SQL*Loader — это инструмент командной строки, который позволяет загружать данные из файлов в Oracle. Он использует управляющий файл, который определяет исходный файл, его структуру и стратегию загрузки.
Преимущество использования инструмента по сравнению с загрузкой с использованием инструкций INSERT заключается в скорости загрузки. Поскольку этот инструмент обходит файлы журналов, это чрезвычайно сложно.
Вот ссылка на руководство по загрузке SQL: ЧАСТО задаваемые вопросы по SQL * Loader
Из этого руководства:
Использование:
sqlldr username/password@server control=loader.ctl
Образец управляющего файла:
(1) load data
(2) infile 'c:datamydata.csv'
(3) into table emp
(4) fields terminated by "," optionally enclosed by '"'
(5) ( empno, empname, sal, deptno )
Строка 1: Указывает, что вы хотите загрузить данные в таблицу
Строка 2: Указывает исходный файл, содержащий данные
Строка 3: Указывает целевую таблицу
Строка 4: Указывает разделитель столбцов (запятая в примере) и что строковые значения могут быть заключены в символ «char.
Строка 5: Задает порядок столбцов в файле
Пример файлов данных (соответствует файлу управления выше):
10001,"Scott Tiger", 1000, 40
10002,"Frank Naude", 500, 20
Надеюсь, это помогло.
Коби