# PL/SQL Developer. 2. Выполнение запросов и редактирование данных.
Пишем запрос, нажимаем F8 или кнопку на панели инструментов и получаем таблицу — результат запроса.

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

Чтобы загрузить все записи нужно нажать правую.
# История запросов
Если отправить несколько запросов подряд то справа становятся доступны кнопки по которым можно переключатся по истории запросов. Кнопка «вверх» отобразит предыдущий отправленный запрос, а кнопка «вниз» следующий.

# Экспорт результатов запроса
Часто результат запроса нужно экспортировать, для этого есть отдельная кнопка. Экспортировать можно в том числе в виде Sql скрипта который будет содержать insert’ы выбранных записей

# Режим просмотра одиночной записи
В случае если в таблице много полей бывает полезен режим просмотра одиночной записи. В этом случае выводится таблица с двумя столбцами — название поля и значение. Переключение по записям происходит по кнопкам на панели инструментов.

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


Редактирование осуществляется в самой таблице

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

Откатить не зафиксированные изменения можно кнопкой Rollback
Что делать, если скорость исполнения запросов в PL/SQL вас не устраивает?
Oracle SQL Developer – полностью бесплатное приложение. Поэтому скачивание его не вызовет никаких проблем у пользователя.
Данная среда разработки позволяет соединиться с любой целевой схемой базы данных Oracle при использовании стандартной аутентификации Oracle Database. После подключения можно выполнять операции с объектами в базе данных.
Приложение дает разработчикам баз данных удобный способ выполнения основных задач:
- Просмотр и управление объектами базы данных
- Выполнение операторов SQL и скриптов
- Редактирование и отладка кода PL/SQL
- Импорт и экспорт данных
- Просмотр и создание отчетов
Более того, при помощи Oracle SQL Developer можно соединиться со схемами для выбранных сторонних (не Oracle) баз данных, таких как MySQL, Microsoft SQL Server и Microsoft Access, а также просматривать метаданные и данные в этих базах данных.
Плюсы использования
Проверить быстроту выполнения запросов в данной среде разработки вы можете самостоятельно. Вспомните SQL-запрос, который в PL/SQL Developer «крутится» более 10 минут, и запустите его.
Мы с коллегами, например, выполняя рядовые выгрузки, ощутили прирост в скорости примерно в 5-7 раз! Достаточно весомый аргумент, чтобы обратить внимание на данное приложение.
Oracle SQL Developer подойдет тем людям, которые любят смотреть, что получается на выходе после малейшего изменения в запросе.
А также для исполнения запросов, в которых в where указано очень много условий: длинный список клиентов через or (Рис. 1) или, например, имеется много строк с like (Рис. 2).
Немаловажно знать, как осуществляется экспорт полученных в ходе выполнения запроса данных. Воспользуемся встроенными возможностями экспорта Oracle SQL Developer:
- Начнем с того, что после отработки запроса на экране будет представлена лишь часть полученных данных. Чтобы «прогрузить» данные до конца можно воспользоваться колесиком мышки, а можно нажать сочетание клавиш Ctrl+End.
- Чтобы сохранить данные в таблицу Excel необходимо в результирующей таблице перейти в контекстное меню и выбрать Export (Рис. 3).
3. Задаем необходимый формат файла – Format (Рис. 4 – ШАГ 1). В нашем случае это «excel 2003+ (xlsx)».
Выбираем путь, куда будет сохранен файл – Browse (Рис. 4 – ШАГ 2). Здесь же указываем имя файла.
Нажимаем последовательно на кнопки «Следующий» и «Готово» (Рис. 4 – ШАГ 3).
4. Процесс экспорта данных будет демонстрироваться в отдельном окне.
По завершении экспорта, в указанной нами директории появится Excel-файл: на листе «Export Worksheet» представлены выгруженные данные, а на листе «SQL» – скрипт, с помощью которого они были получены. Таким образом, можно в нужный момент вспомнить, откуда тот или иной файл взялся у вас на компьютере.
Еще одним немаловажным плюсом Oracle SQL Developer является его кросс-платформенность: можно запускать на Windows, Linux и macOS.
Некоторые особенности использования
Стоит сказать об умении определять границы SQL-запросов. Oracle SQL Developer требует обязательно отделять запросы точкой с запятой, а иначе он не будет понимать, где один запрос закончился, а другой начался.
Конечно, прирост в скорости исполнения запросов влечет за собой большую ресурсоемкость. Прежде всего это касается оперативной памяти компьютера . Данный факт, безусловно, является недостатком данной среды разработки.
Интерфейс Oracle SQL Developer также можно отнести к минусам, т.к. без специальной статьи тяжело сразу понять, куда нужно нажимать.
При возникновении проблем с подключением и настройкой Oracle SQL Developer, в конце статьи будет приведена пошаговая инструкция «Как начать работу с Oracle SQL Developer».
Исходя из выше изложенного оптимальный вариант использования Oracle SQL Developer – это выполнение и промежуточное тестирование действительно «тяжелых» SQL-запросов. А встроенные возможности экспорта помогут легко сохранить полученные данные.
Также не стоит забывать о том, что данный продукт является совершенно бесплатным . Возможно, для кого-то Oracle SQL Developer станет отличным инструментом для тестирования тех или иных скриптов в домашних условиях (кросс-платформенность позволит работать не только на Windows), а для тех, кто только начинает знакомство с SQL-запросами, весьма удобной «учебной» средой разработки.
Как начать работу с Oracle SQL Developer
После успешной установки и запуска Oracle SQL Developer необходимо:
- Создать новое соединение с источником данных. Это можно сделать из меню File → New → Connections, а также из окна Connections, нажав на значок «+» (Рис. 5).
Руководство по созданию запроса Oracle из Кластера больших данных SQL Server
Поддержка надстройки «Кластеры больших данных» Microsoft SQL Server 2019 будет прекращена. Мы прекратим поддержку Кластеров больших данных SQL Server 2019 28 февраля 2025 г. Все существующие пользователи SQL Server 2019 с Software Assurance будут полностью поддерживаться на платформе, а программное обеспечение будет продолжать поддерживаться через SQL Server накопительных обновлений до этого времени. Дополнительные сведения см. в записи блога объявлений и в статье о параметрах больших данных на платформе Microsoft SQL Server.
В этом руководстве описывается, каким образом выполняется запрос данных Oracle из кластера больших данных SQL Server 2019. Для работы с этим руководством требуется доступ к серверу Oracle. Требуется учетная запись пользователя Oracle с правами на чтение для внешнего объекта. Поддерживается проверка подлинности пользователя через прокси-сервер Oracle. Если у вас нет доступа к серверу, из этого руководства вы можете узнать о принципах виртуализации данных для внешних источников в кластере больших данных SQL Server.
В этом руководстве описано следующее:
- Создание внешней таблицы для данных во внешней базе данных Oracle.
- Объединение этих данных с важными данными в главном экземпляре.
При необходимости вы можете скачать и выполнить скрипт, содержащий команды из этого руководства. См. инструкции в разделе Примеры виртуализации данных на сайте GitHub.
Предварительные требования
- Средства работы с большими данными
- kubectl
- Azure Data Studio
- Расширение SQL Server 2019
Создание таблицы Oracle
Далее описывается создание примера таблицы с именем INVENTORY в Oracle.
- Подключитесь к базе данных и экземпляру Oracle, которые вы хотите использовать для этого руководства.
- Чтобы создать эту таблицу INVENTORY , используйте следующую инструкцию:
CREATE TABLE "INVENTORY" ( "INV_DATE" NUMBER(10,0) NOT NULL, "INV_ITEM" NUMBER(10,0) NOT NULL, "INV_WAREHOUSE" NUMBER(10,0) NOT NULL, "INV_QUANTITY_ON_HAND" NUMBER(10,0) ); CREATE INDEX INV_ITEM ON HR.INVENTORY(INV_ITEM);Создание внешнего источника данных
Для начала необходимо создать внешний источник данных, который может обращаться к вашему серверу Oracle.

- В Azure Data Studio установите подключение к главному экземпляру SQL Server в кластере больших данных. Дополнительные сведения см. в разделе Подключение к главному экземпляру SQL Server.
- Дважды щелкните подключение в окне Серверы, чтобы открыть панель мониторинга сервера для главного экземпляра SQL Server. Выберите Создать запрос.
- Выполните следующую команду Transact-SQL, чтобы изменить контекст на базу данных Sales в главном экземпляре.
USE Sales GOCREATE DATABASE SCOPED CREDENTIAL [OracleCredential] WITH IDENTITY = '', SECRET = '';CREATE EXTERNAL DATA SOURCE [OracleSalesSrvr] WITH (LOCATION = 'oracle://',CREDENTIAL = [OracleCredential]);Необязательно. Проверка подлинности прокси-сервера Oracle
Oracle поддерживает проверку подлинности прокси-сервера для обеспечения точной детализации управления доступом. Пользователь прокси-сервера подключается к базе данных Oracle, используя ее учетные данные, и олицетворяет другого пользователя в базе данных.
Пользователя прокси-сервера можно настроить таким образом, чтобы он имел ограниченный доступ по сравнению с олицетворением пользователя. Например, пользователю прокси-сервера можно разрешить подключаться с помощью определенной роли базы данных олицетворенного пользователя. Удостоверение пользователя, подключающегося к базе данных Oracle через прокси-сервер, сохраняется в соединении, даже если с помощью проверки подлинности прокси-сервера подключаются несколько пользователей. Это позволяет Oracle принудительно применять управление доступом и выполнять аудит действий, выполняемых от имени фактического пользователя.
Если в сценарии требуется использование пользователя прокси-сервера Oracle, вместо шагов 4 и 5 сделайте следующие.
-
Создайте учетные данные в области базы данных для подключения к серверу Oracle. Предоставьте соответствующие учетные данные пользователя прокси-сервера Oracle для сервера Oracle в следующей инструкции.
CREATE DATABASE SCOPED CREDENTIAL [OracleProxyCredential] WITH IDENTITY = '', SECRET = '';CREATE EXTERNAL DATA SOURCE [OracleSalesSrvr] WITH (LOCATION = 'oracle://', CONNECTION_OPTIONS = 'ImpersonateUser=%CURRENT_USER', CREDENTIAL = [OracleProxyCredential]);Создание внешней таблицы
Далее создайте внешнюю таблицу с именем iventory_ora на основе таблицы INVENTORY на сервере Oracle.
CREATE EXTERNAL TABLE [inventory_ora] ([inv_date] DECIMAL(10,0) NOT NULL, [inv_item] DECIMAL(10,0) NOT NULL, [inv_warehouse] DECIMAL(10,0) NOT NULL, [inv_quantity_on_hand] DECIMAL(10,0)) WITH (DATA_SOURCE=[OracleSalesSrvr], LOCATION='..');При выполнении запросов к Oracle в именах таблиц и столбцов будет использоваться идентификатор SQL ANSI в кавычках. В связи с этим в таких именах учитывается регистр букв. В определении внешней таблицы важно указывать имена, которые в точности соответствуют именам таблиц и столбцов в метаданных Oracle.
Запрос данных
Выполните следующий запрос, чтобы объединить данные во внешней таблице iventory_ora с таблицами в локальной базе данных Sales .
SELECT TOP(100) w.w_warehouse_name, i.inv_item, SUM(i.inv_quantity_on_hand) as total_quantity FROM [inventory_ora] as i JOIN item as it ON it.i_item_sk = i.inv_item JOIN warehouse as w ON w.w_warehouse_sk = i.inv_warehouse WHERE it.i_category = 'Books' and i.inv_item BETWEEN 1 and 18000 --> get items within specific range GROUP BY w.w_warehouse_name, i.inv_item;Очистка
Выполните следующую команду, чтобы удалить объекты базы данных, созданные в рамках этого руководства.
DROP EXTERNAL TABLE [inventory_ora]; DROP EXTERNAL DATA SOURCE [OracleSalesSrvr] ; DROP DATABASE SCOPED CREDENTIAL [OracleCredential];Дальнейшие действия
Сведения о приеме данных в пул данных:
Загрузка данных с помощью SQL
Этот поток задач демонстрирует, как очищать данные из куба, создавать правила загрузки данных, загружать данные (используя SQL) из сервера СУРБД и проверять в Smart View завершение загрузки данных.
Перед запуском этого потока задач выполните необходимые условия и получите действительную строку подключения. Для получения подробных сведений см. раздел Построение измерений и загрузка данных с использованием SQL.

- После создания измерений необходимо удалить данные из куба и снова загрузить эти данные из таблицы. В Essbase нажмите Задания , а затем выберите Новое задание .
- Выберите Очистить данные в качестве типа задания. Выберите приложение Sample и базу данных Basic и нажмите «ОК».
- Нажмите «ОК», чтобы подтвердить очистку данных. Начинается выполнение задания. Нажмите символ обновления, чтобы просмотреть состояние. После завершения в меню «Действия» выберите Сведения о задании .
- Подключитесь к кубу Sample Basic из Smart View и выполните специализированный анализ.
- Обратите внимание, что данные были очищены. Например:
Оставьте лист открытым. Затем требуется создать правила загрузки, в которых используется SQL, чтобы заново заполнить куб Sales данными из таблицы.
Поля вашего правила загрузки должны быть упорядочены следующим образом:
-
Подключения Oracle OCI: в поле Имя группы Общие введите допустимую строку подключения.
Затем требуется загрузить данные из источника «Задания».
Начинается загрузка данных. Нажмите символ обновления, чтобы просмотреть состояние. После завершения в меню «Действия» выберите Сведения о задании .

- Вернитесь к листу в Smart View и обновите его, чтобы убедиться в загрузке данных из таблицы.
