<< На Главную     <В  Советы по MS SQL Server

 Время от времени случается сталкиваться с задачами, для решения которых не всегда бываешь готов. Ну это в том смысле, что задачка-то иногда бывает, может быть,   для знатоков пустяковой, но конкретно в твоем контексте требует некоторой известной квалификации. Это я к чему? Да вот намедни потребовалось залить данные из таблички Excel в базу данных Oracle. Для опытных пользователей Oracle такая манипуляция скорее всего - тьфу, выеденного яйца не стоит. Но тем, кто впервые имеет дело с Oracle - проблемка ...

 

 

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

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

 

 

Да , тут нужны  еще вот какие пояснения. База данных Oracle для случая нашего примера была   не слишком большой по размеру, не слишком сложной и доступна для ограниченного количества пользователей. Поэтому, в контексте нашего примера, на компьютере была установлена облегченная версия Oracle Database 11g Release 2 Express Edition   http://www.oracle.com/technetwork/ru/database/express-edition/downloads/index.html

Следующим вопросом был выбор оболочки для собственно управления этой самой облегченной версией. К счастью, и тут нашлось решение в виде Oracle SQL Developer http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html

 

Прим. Процедура скачки упомянутых выше продуктов вполне обычная - заводите учетку на сайте http://www.oracle.com/ и качайте себе на здоровье. Правда, скорость отдачи ну очень медленная. Гораздо проще и быстрее забрать эти вещи с территории известных зон. Там они есть ;-)

 

Однако, 'вернемся к нашим баранам' - то бишь загрузки Excel-данных в Oracle. Предположим, что вы вполне успешно проинсталлировали Oracle Express Edition и Oracle SQL Developer (строго говоря, это тема отдельного разговора). Переходим к непосредственно к работе с последним.

 

Прим. Имейте в виду - если у вас на компьютере установлен Антивирус Касперского, то есть вероятность при запуске sqldeveloper'a  получить такое сообщение :

 

Выход из создавшейся коллизии заключается в разрешении в настройках Касперского активности для модулей sqldeveloper'а. Или уж совсем лобовое решение - просто на время отключить защиту(  но это  совсем в крайнем случае)

 

Тут для начала вам придется создать соединение с правами пользователя SYSTEM (по умолчанию пароль adm). Исходная диспозиция имеет приблизительно сл. вид :

 

Комментарий к рисунку слева. Командой

CREATE USER CHIEF IDENTIFIED BY boss создаем пользователя CHIEF с паролем boss. Такой пользователь нам понадобиться, чтобы создать, в терминах Oracle схему для работы с данными.

 

Идем далее. Командой CONNECT CHIEF/boss попробуем установить соединение :

 

 

 

Нет, ошибка - потерпели неудачу. Но ничего страшного . Командой GRANT CREATE SESSION TO CHIEF разрешим пользователю CHIEF устанавливать соединения :

 

 

Вот теперь все нормально :

 

 

Прим.  Удалить пользователя CHIEF можно командой DROP USER CHIEF CASCADE (только сначала хорошенько подумайте,  а то шефу ваша идея может не очень-то и понравиться :- ) :

 

 

На следующем шаге нужно будет создать соединение ...

 

 

... ну скажем, с именем MyConn  приблизительно сл. образом :

 

 

Для тестирования параметров соединения жмем кнопку Test (см. рис. выше) . Если все прошло в штатном режиме, должны увидеть наше вновь созданное соединение :

 

 

 

На рисунке выше выбрав в контекстном меню Import Data переходим к нашей главной задаче - импорту данных из таблички Excel (собственно, все что было изложено ранее - это всего лишь предварительная подготовка).

 

Указываем excel-файл :

 

 

На следующей форме оцениваем данные в режиме предварительного просмотра:

 

 

Указываем имя вновь созданной таблицы (Sotrudniki для случая нашего примера) :

 

 

Теперь нужно сделать выбор полей для переноса - берем все :

 

 

На следующей форме жмем, само-собой, Finish ...

 

 

 

... и , опаньки, получаем такое сообщение :

 

 

Аварийное сообщение User does not have privileges to allocate an extent in the specified tablespace указывает на то, что у пользователя нет прав перераспределять выделенное пространство .  'Лечиться' такая беда командой GRANT UNLIMITED TABLESPACE to CHIEF :

 

 

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

 

Если все было сделано правильно, то в конце мастера импорта должны увидеть такое сообщение :

 

 

А окончательно достигнутый результат должен выглядеть сл. образом :

 

 

Структуру (описание полей) нашей вновь созданной таблицы можно просмотреть и откорректировать на вкладке Columns :

 

 

Теперь можно работать с табличкой Sotrudniki. Например, составить такой нехитрый запрос Select * from Sotrudniki Where Zarplata > 40000, который будет выводить всех сотрудников, у которых зарплата выше 40 000 неких у.е. :

 

 

И  нет ничего сложного в том, чтобы добавить нового сотрудника командой INSERT :

 

 

Результат будет следующим :

 

 

Ну вот, пока кажется все. Всем удачной работы  с программными продуктами от  Oracle !

Simashkov.2016

28.11.2016 г.

Назад