Как загрузить данные из excel в oracle sql developer

Обновлено: 04.07.2024

Импортировать данные из файлов Excel в SQL Server или базу данных SQL Azure можно несколькими способами. Некоторые методы позволяют импортировать данные за один шаг непосредственно из файлов Excel. Для других методов необходимо экспортировать данные Excel в виде текста (CSV-файла), прежде чем их можно будет импортировать. В этой статье перечислены часто используемые методы и содержатся ссылки для получения дополнительных сведений.

Список методов

Для импорта данных из Excel можно использовать следующие средства:

Сначала экспортировать в текст (SQL Server и база данных SQL) Непосредственно из Excel (только в локальной среде SQL Server)
Мастер импорта неструктурированных файлов мастер импорта и экспорта SQL Server
Инструкция BULK INSERT Службы SQL Server Integration Services
BCP Функция OPENROWSET
Мастер копирования (Фабрика данных Azure)
Фабрика данных Azure.

Если вы хотите импортировать несколько листов из книги Excel, обычно нужно запускать каждое из этих средств отдельно для каждого листа.

Этот список не дает полного описания таких сложных инструментов и служб, как SSIS или фабрика данных Azure. Дополнительные сведения об интересующем вас решении доступны по ссылкам ниже.

Дополнительные сведения о подключении к файлам Excel, а также об ограничениях и известных проблемах, связанных с загрузкой данных в файлы этого приложения и из них, см. в разделе Загрузка данных в приложение Excel или из него с помощью служб SQL Server Integration Services (SSIS).

Если у вас не установлен SQL Server или SQL Server есть, но нет SQL Server Management Studio, см. статью Скачивание SQL Server Management Studio (SSMS).

Мастер импорта и экспорта SQL Server

Импортируйте данные напрямую из файлов Excel, выполнив инструкции на страницах мастера импорта и экспорта SQL Server. При необходимости сохраните параметры в виде пакета служб SQL Server Integration Services (SSIS), доступного для настройки и многократного применения в будущем.

В SQL Server Management Studio подключитесь к экземпляру SQL Server Компонент Database Engine.

Разверните узел Базы данных.

Щелкните базу данных правой кнопкой мыши.

Наведите указатель мыши на пункт Задачи.

Выберите один из следующих параметров:

Импорт данных

Экспорт данных

Запуск мастера SSMS

Подключение к источнику данных Excel

Пример использования мастера для импорта из Excel в SQL Server см. в разделе Get started with this simple example of the Import and Export Wizard (Начало работы с помощью простого примера использования мастера импорта и экспорта).

Сведения о других способах запустить мастер импорта и экспорта см. в разделе Запуск мастера импорта и экспорта SQL Server.

Службы SQL Server Integration Services

Если вы работали со службами SSIS и не хотите запускать мастер экспорта и импорта SQL Server, создайте пакет SSIS, который использует для потока данных источник Excel и назначение SQL Server.

Дополнительные сведения о компонентах SSIS см. в указанных ниже статьях.

Чтобы научиться создавать пакеты SSIS, см. руководство How to Create an ETL Package (Как создать пакет ETL).

Компоненты потока данных

OPENROWSET и связанные серверы

В базе данных SQL Azure невозможно импортировать данные непосредственно из Excel. Сначала необходимо экспортировать данные в текстовый файл (CSV). Примеры см. в разделе Пример.

Поставщик ACE (прежнее название — поставщик Jet), который подключается к источникам данных Excel, предназначен для интерактивного клиентского использования. Если поставщик ACE используется на сервере SQL Server, особенно в автоматизированных процессах или процессах, выполняющихся параллельно, вы можете получить непредвиденные результаты.

Распределенные запросы

Импортируйте данные напрямую из файлов Excel в SQL Server с помощью функции Transact-SQL OPENROWSET или OPENDATASOURCE . Такая операция называется распределенный запрос.

В базе данных SQL Azure невозможно импортировать данные непосредственно из Excel. Сначала необходимо экспортировать данные в текстовый файл (CSV). Примеры см. в разделе Пример.

Перед выполнением распределенного запроса необходимо включить параметр ad hoc distributed queries в конфигурации сервера, как показано в примере ниже. Дополнительные сведения см. в статье ad hoc distributed queries Server Configuration Option (Параметр конфигурации сервера "ad hoc distributed queries").

В приведенном ниже примере кода данные импортируются из листа Excel Sheet1 в новую таблицу базы данных с помощью OPENROWSET .

Ниже приведен тот же пример с OPENDATASOURCE .

Чтобы добавить импортированные данные в существующую таблицу, а не создавать новую, используйте синтаксис INSERT INTO . SELECT . FROM . вместо синтаксиса SELECT . INTO . FROM . из предыдущих примеров.

Для обращения к данным Excel без импорта используйте стандартный синтаксис SELECT . FROM . .

Дополнительные сведения о распределенных запросах см. в указанных ниже разделах.

    (Распределенные запросы по-прежнему поддерживаются в SQL Server 2016, но документация по этой функции не обновлена.)

Связанные серверы

Кроме того, можно настроить постоянное подключение от SQL Server к файлу Excel как к связанному серверу. В примере ниже данные импортируются из листа Excel Data на существующем связанном сервере EXCELLINK в новую таблицу базы данных SQL Server с именем Data_ls .

Вы можете создать связанный сервер в SQL Server Management Studio или запустить системную хранимую процедуру sp_addlinkedserver , как показано в примере ниже.

Дополнительные сведения о связанных серверах см. в указанных ниже разделах.

Примеры и дополнительные сведения о связанных серверах и распределенных запросах см. указанных ниже разделах.

Предварительное требование — сохранение данных Excel как текста

Чтобы использовать другие методы, описанные на этой странице (инструкцию BULK INSERT, средство BCP или фабрику данных Azure), сначала экспортируйте данные Excel в текстовый файл.

В Excel последовательно выберите Файл | Сохранить как и выберите как целевой тип файла Текст (разделитель — табуляция) (*.txt) или CSV (разделитель — запятая) (*.csv) .

Если вы хотите экспортировать несколько листов из книги, выполните эту процедуру для каждого листа. Команда Сохранить как экспортирует только активный лист.

Чтобы оптимизировать использование средств импорта, сохраняйте листы, которые содержат только заголовки столбцов и строки данных. Если сохраненные данные содержат заголовки страниц, пустые строки, заметки и пр., позже при импорте данных вы можете получить непредвиденные результаты.

Мастер импорта неструктурированных файлов

Импортируйте данные, сохраненные как текстовые файлы, выполнив инструкции на страницах мастера импорта неструктурированных файлов.

Как было описано выше в разделе Предварительное требование, необходимо экспортировать данные Excel в виде текста, прежде чем вы сможете импортировать их с помощью мастера импорта неструктурированных файлов.

Дополнительные сведения о мастере импорта неструктурированных файлов см. в разделе Мастер импорта неструктурированных файлов в SQL.

Команда BULK INSERT

BULK INSERT — это команда Transact-SQL, которую можно выполнить в SQL Server Management Studio. В приведенном ниже примере данные загружаются из файла Data.csv с разделителями-запятыми в существующую таблицу базы данных.

Как было описано выше в разделе Предварительное требование, необходимо экспортировать данные Excel в виде текста, прежде чем вы сможете использовать BULK INSERT для их импорта. BULK INSERT не может считывать файлы Excel напрямую. С помощью команды BULK INSERT можно импортировать CSV-файл, который хранится локально или в хранилище BLOB-объектов Azure.

Дополнительные сведения и примеры для SQL Server и базы данных SQL см. в следующих разделах:

Средство BCP

BCP — это программа, которая запускается из командной строки. В приведенном ниже примере данные загружаются из файла Data.csv с разделителями-запятыми в существующую таблицу базы данных Data_bcp .

Как было описано выше в разделе Предварительное требование, необходимо экспортировать данные Excel в виде текста, прежде чем вы сможете использовать BCP для их импорта. BCP не может считывать файлы Excel напрямую. Используется для импорта в SQL Server или базу данных SQL из текстового файла (CSV), сохраненного в локальном хранилище.

Для текстового файла (CSV), хранящегося в хранилище BLOB-объектов Azure, используйте BULK INSERT или OPENROWSET. Примеры см. в разделе Пример.

Дополнительные сведения о программе BCP см. в указанных ниже разделах.

Мастер копирования (Фабрика данных Azure)

Импортируйте данные, сохраненные как текстовые файлы, выполнив инструкции на страницах мастера копирования Фабрики данных Azure.

Как было описано выше в разделе Предварительное требование, необходимо экспортировать данные Excel в виде текста, прежде чем вы сможете использовать фабрику данных Azure для их импорта. Фабрика данных не может считывать файлы Excel напрямую.

Дополнительные сведения о мастере копирования см. в указанных ниже разделах.

Фабрика данных Azure

Если вы уже работали с фабрикой данных Azure и не хотите запускать мастер копирования, создайте конвейер с действием копирования из текстового файла в SQL Server или Базу данных SQL Azure.

Как было описано выше в разделе Предварительное требование, необходимо экспортировать данные Excel в виде текста, прежде чем вы сможете использовать фабрику данных Azure для их импорта. Фабрика данных не может считывать файлы Excel напрямую.

Дополнительные сведения об использовании этих источников и приемников фабрики данных см. в указанных ниже разделах.

Чтобы научиться копировать данные с помощью фабрики данных Azure, см. указанные ниже разделы.

Распространенные ошибки

Эта ошибка возникает, так как не установлен поставщик OLE DB. Установите его через Распространяемый пакет ядра СУБД Microsoft Access 2010. Не забудьте установить 64-разрядную версию, если Windows и SQL Server — 64-разрядные.

Полный текст ошибки.

Не удалось создать экземпляр поставщика OLE DB "Microsoft.ACE.OLEDB.12.0" для связанного сервера "(null)".

Это означает, что Microsoft OLEDB не был настроен должным образом. Чтобы устранить проблему, выполните приведенный ниже код Transact-SQL.

Полный текст ошибки.

32-разрядный поставщик OLE DB "Microsoft.ACE.OLEDB.12.0" не может быть загружен в процессе на 64-разрядной версии SQL Server.

Это происходит, когда 32-разрядная версия поставщика OLD DB устанавливается вместе с 64-разрядной версией SQL Server. Чтобы устранить эту проблему, удалите 32-разрядную версию и вместо нее установите 64-разрядную версию поставщика OLE DB.

Полный текст ошибки.

Поставщик OLE DB "Microsoft.ACE.OLEDB.12.0" для связанного сервера "(null)" сообщил об ошибке. Поставщик не предоставил данных об ошибке.

Не удалось проинициализировать объект источника данных поставщика OLE DB "Microsoft.ACE.OLEDB.12.0" для связанного сервера "(null)".

Обе эти ошибки обычно указывают на ошибку разрешений между процессом SQL Server и файлом. Убедитесь, что учетная запись, с которой выполняется служба SQL Server, имеет разрешение на полный доступ к файлу. Мы не рекомендуем импортировать файлы с настольного компьютера.

Илья Дергунов

Задача. У вас есть файл Excel – и вы хотите, чтобы эти данные были помещены в таблицу. Я покажу вам, как это делается, и мы задокументируем каждый шаг с большим количеством иллюстраций.

Прочитав этот пост, вы будете готовы с уверенностью импортировать данные в существующую таблицу из Excel. Хотите создать новую таблицу из Excel? Мы тоже можем это сделать.

В нашем примере я буду использовать таблицу HR.EMPLOYEES для создания XLS-файла для нашего импорта. Мы будем использовать этот файл Excel для заполнения пустой копии таблицы EMPLOYEES в другой схеме.

Шаг 0: Пустая таблица Oracle и ваш файл Excel

У вас есть таблица Oracle и один или несколько файлов Excel.

Шаг 1: Выбираем "Импорт данных" по правому щелчку мыши


Если вы уже запускали этот мастер раньше, вы можете выбрать файлы из предыдущих сеансов.

Когда вы выберете файл, мы захватим первые 100 строк для просмотра ниже. Этот "Предел строк предварительного просмотра" определяет, сколько строк вы можете использовать для проверки ИМПОРТА по мере прохождения мастера. Вы можете увеличить его, но это потребует больше ресурсов, так что не сходите с ума.

Кроме того, есть ли в вашем файле Excel заголовки столбцов? Хотим ли мы рассматривать их как строку к таблице? Скорее всего, нет. Если вы снимите флажок "Заголовок", имена столбцов станут новой строкой в вашей таблице – и, вероятно, не будут вставлены.

Иногда ваш файл Excel имеет несколько заголовков, или вам может потребоваться импортировать только определенное подмножество электронной таблицы. Используйте опцию "Пропустить строки", чтобы получить правильные данные.

Шаг 3: Создайте сценарий или импортируйте автоматически


По мере прохождения шагов в мастере мы будем держать панель предварительного просмотра содержимого файла под рукой, так что вам не придется нажимать alt+tab туда и обратно от Excel до SQL Developer.

Для этого упражнения будет использоваться метод "Вставки" (Insert). Каждая строка, обработанная в файле Excel, приведет к выполнению инструкции INSERT в таблице, в которую мы импортируем.

Если вы выберете "Вставить скрипт", мастер завершит работу скриптом ВСТАВКИ на вашем листе SQL. Это хорошая альтернатива, если вы хотите настроить SQL, или если вам нужно отладить/посмотреть, почему метод "Insert" не работает.

Шаг 4: Выберите столбцы Excel для импорта


Мастер по умолчанию использует все используемые столбцы Excel в том порядке, в котором они находятся в файле.

У вас может быть файл Excel со 100 столбцами, но ваша таблица имеет только 30. Здесь вы даете команду SQL Developer, какие столбцы должны использоваться для импорта. Вы также можете изменить порядок столбцов, что может сделать следующий шаг немного проще.

Шаг 5: Сопоставьте столбцы Excel со столбцами таблицы


Левая панель представляет столбцы в файле XLS. Информация справа показывает, куда идут эти данные и как они будут обрабатываться в Oracle.

Если вы не обращаете внимания и просто позволяете Мастеру импорта делать всё по умолчанию, то сейчас самое время проснуться. Есть большая вероятность, что порядок столбцов файла Excel не будет соответствовать определению вашей таблицы. На этом шаге вы указываете SQL Developer-у, какие столбцы в электронной таблице совпадают с какими столбцами в таблице Oracle.

А помните, как мы установили это окно предварительного просмотра на 100 строк? Мы внимательно изучаем данные, ищем проблемы, пытаясь вписать их в столбец вашей таблицы. Если мы обнаружим проблему, мы пометим столбцы этими "предупреждающими" символами.

Я загрязнил свой файл Excel некоторыми намеренно ошибочными значениями, которые, как я знаю, не будут "подходить". Когда эти строки будут обнаружены в мастере, база данных их отклонит, но остальные строки будут введены.

Давайте на секунду поговорим о форматах даты и времени.

О TIMESTAMP тоже. В файле Excel у вас, вероятно, будут некоторые поля даты и времени, которые вы хотите переместить в столбцы формата DATE или TIMESTAMP . SQL Developer обрабатывает эти значения как строки – и ВАМ нужно сообщить SQL Developer формат DATE или TIMESTAMP , чтобы иметь возможность их преобразовать.

Давайте посмотрим на HIREDATE.


Это значение "ха – ха" никогда не войдет в качестве значения HIRE_DATE – если только вы не храните ДАТЫ в VARCHAR2 , - и если вы делаете это, то делаете это НЕПРАВИЛЬНО. Всегда храните ДАТЫ в формате DATE !

Видите выпадающий селектор "Формат" (Format)? SQL Developer по умолчанию установил строку формата ДАТЫ в ‘ DD-MON-RR ’ – мы пытаемся угадать это на основе строк, которые мы рассматриваем в этом окне предварительного просмотра 100.

Если мы ошиблись в догадках или не смогли разобраться, вам нужно будет ввести это самостоятельно. Документы Oracle могут помочь вам определить правильную модель формата ДАТЫ. Если вы видите небольшое предупреждающее изображение рядом со значениями даты на панели данных, возможно, у вас неправильный формат.

Шаг 6: Проверьте свои настройки и ВПЕРЕД!


Кнопка "Готово" запустит магию.

Нажмите на кнопку "Готово" (Finish).

Если Мастер столкнется с какими-либо проблемами при выполнении вставок, вы увидите следующее:

Нажав ‘Да", мы доберемся до конца нашей истории и наших данных!

Шаг 7: Посмотрите, Что сработало, а Что нет

Если были строки, отклоненные базой данных, мы увидим их сейчас.

Теперь давайте посмотрим на наши новые табличные данные!


Я люблю сладкий запах данных по утрам!

Обратите внимание на панель "Журнал" (Log). Там можно увиеть файл, с которым мы работали, и сколько времени потребовалось для загрузки данных.

Всё! Можно выдохнуть свободно. Импорт из файла Excel в таблицу базы данных Oracle завершен. В шапке статьи вы можете посмотреть видео инструкцию - копию этого мануала на английском языке.

Есть ли альтернативный способ скопировать данные из листа Excel и вставить их в таблицу с помощью Oracle SQL Developer !?

На данный момент я использую (PL / SQL Developer), написав (для обновления) в конце оператора select Ex:

Затем вставьте столбцы из Excel в таблицу .

С уважением Адель

Это не совсем копирование и вставка, но вы можете импортировать данные из Excel с помощью Oracle SQL Developer.

Перейдите к таблице, в которую нужно импортировать данные, и щелкните вкладку Data .

После нажатия на вкладку данных вы должны заметить раскрывающееся меню с надписью Actions.

Нажмите Actions. и выберите нижний вариант Import Data.

Затем просто следуйте указаниям мастера, чтобы выбрать правильный лист и столбцы, которые вы хотите импортировать.

РЕДАКТИРОВАТЬ: Чтобы просмотреть вкладку данных:

  1. Выберите SCHEMA , в котором создана ваша таблица. (Выберите на вкладке "Подключения" на левой панели).
  2. Щелкните правой кнопкой мыши SCHEMA и выберите SCHEMA BROWSER .
  3. Выберите свою таблицу из списка (указав свою схему).
  4. Теперь вы увидите вкладку DATA .
  5. Нажмите на Actions и Import Data.

Для PLSQL версии 9.0.0.1601

  1. В контекстном меню таблицы выберите «Редактировать данные».
  2. Вставьте или отредактируйте данные
  3. Опубликовать изменение

Щелкните «Таблицы» в окне «Подключения», выберите «Импортировать данные . », следуйте указаниям мастера, и вам будет предложено ввести имя для новой таблицы.

Вы можете щелкнуть правой кнопкой мыши имя таблицы - там также отображается опция «Импортировать данные ..». Затем вы можете выполнить несколько простых шагов и добиться успеха.

Кто-нибудь знает, как импортировать новую таблицу с данными из excel?

Мне не подходит ни один из этих вариантов. Вставить данные из Excel можно следующим образом:

Добавьте дополнительный столбец слева от данных таблицы (если вы нет номеров строк, отображаемых в PL / SQL Developer, которых у вас может не быть чтобы слева был дополнительный пустой столбец).

Скопируйте строки данных из вашей электронной таблицы, включая пустую столбец.

В PL / SQL Developer откройте свою таблицу в режиме редактирования. Ты можешь щелкните правой кнопкой мыши имя таблицы в обозревателе объектов и выберите «Редактировать данные». или напишите свой собственный оператор выбора, который включает идентификатор строки и щелкните значок замка. Убедитесь, что ваши столбцы упорядочены так же, как в вашем электронная таблица.

Вот часть, на которую мне потребовалась целая вечность: щелкните слева сторону первой пустой строки, чтобы выделить ее. Не получится, если вы не выделять первую пустую строку.

Вставьте как обычно, используя Ctrl + V или щелкните правой кнопкой мыши «Вставить».

Я нигде не мог найти эту информацию, когда она мне нужна, поэтому я хотел обязательно ее опубликовать.

enter image description here

Я хотел бы знать, как вставлять данные из Excel в Oracle, что означает, что у меня есть рабочий лист с данными, и я хочу вставить их все в базу данных Oracle.

Как мне это сделать?

Попробуйте создать запрос Insert в Excel (если данные не такие огромные):
как:
в ячейке AA1: 'INSERT INTO <TABLE> VALUES('
то соответствующие значения из разных ячеек (т.е. "A1", "+" B1, ". + ')')
он создаст сценарии Insert в excel. Просто скопируйте скрипты и выполните.

это примерные запросы, PLZ написать свои собственные запросы в соответствии с вашим требованием для ЗАЯВЛЕНИЯ INSERT.

Многие Oracle IDE предлагают эту функцию.

Oracle SQL Developer:

  • импорт из CSV в новую или существующую таблицу
  • импорт из файлов XLS/XLSX в новую или существующую таблицу
  • может настроить сеанс внешней таблицы или SQL * Loader для импорта из файла с разделителями в новую или существующую таблицу
  • предлагает интерфейс командной строки для целей автоматизации

Я говорю об этих особенностях здесь.

Mapping excel columns to oracle table cols

конвертируйте формат файла excel в формат.csv с помощью опции save as

Сохраните содержимое ниже в файле с расширением.ctl в папке D в папке folder_name. Перед запуском этого.ctl убедитесь, что таблица должна присутствовать в вашей схеме с разными именами столбцов, не такими, как в вашем размещенном изображении. И имя столбца должно совпадать с именами.ctl файла (sc_id, sal и т.д.). И типы данных ваших столбцов должны совпадать с данными, содержащимися в CSV файле. Кроме того, убедитесь, что ваша table должна быть empty иначе вы должны использовать опции truncate или append в вашем.ctl файле.

Запустите ваш.ctl файл в sql plus с помощью следующих команд:

Вы можете использовать загрузчик sql, но если вы хотите получить более надежное решение (особенно если данные будут изменены непосредственно в электронной таблице), посмотрите на внешние таблицы в Oracle. Вы можете создать таблицу базы данных непосредственно из электронной таблицы, код выглядит следующим образом:

Обратите внимание, что что-либо со словом "ваш" в нем выше должно быть изменено на все, что вы хотите назвать вашими файлами и каталогами. Также обратите внимание, что "YOUR_DIRECTORY" - это фактический объект базы данных, который вы должны создать:

Я просто копирую подход, который работал для меня сверху ссылки

В Oracle sql developer перейдите в Таблицы → выберите данные импорта ---> выберите файл excel или csv → он отобразит столбец → импортирует данные в таблицу.

У меня есть запрос, у меня уже есть таблица ABC, и я удалил из нее несколько строк, но до этого я взял экспорт строк, которые я удалил на листе excel. Теперь мне нужно вставить эти записи обратно в таблицу. Поскольку количество записей больше, я не могу написать инструкцию Insert для всех. Таким образом, есть какой-либо способ, посредством которого я могу импортировать данные обратно в таблицу с помощью листа excel. Спасибо, Абхишек

Посмотрите другие вопросы по меткам sql oracle excel excel-2010 или Задайте вопрос

Читайте также: