executeSQLScript

Выполните SQL скрипт в базе данных

Описание

пример

results = executeSQLScript(conn,scriptfile) использует подключение к базе данных conn чтобы вернуть массив структур, который содержит результаты как таблицу (по умолчанию) для каждого выполненного SQL SELECT оператор в файле скрипта SQL. Для любых не- SELECT SQL операторов, соответствующая таблица пуста. executeSQLScript функция выполняет все операторов SQL в файле SQL скрипта.

пример

results = executeSQLScript(conn,scriptfile,Name,Value) задает дополнительные опции, используя один или несколько аргументы пары "имя-значение". Для примера, 'DataReturnFormat','cellarray' сохраняет результаты выполненного оператора SQL как массив ячеек. Результаты хранятся в Data поле массива структур.

Примеры

свернуть все

Подключитесь к базе данных Microsoft ® SQL Server ®. Затем запустите два SELECT SQL операторы из файла скрипта SQL compare_sales.sqlимпортируйте результаты и выполните простой анализ данных о продажах. Файл содержит два запроса SQL по порядку. Первый запрос SQL извлекает продажи продуктов от американских поставщиков, а второй запрос SQL извлекает продажи продуктов от иностранных поставщиков.

Создайте подключение базы данных ODBC к базе данных Microsoft SQL Server с помощью проверки подлинности Windows ®. Укажите пустые имя пользователя и пароль .

datasource = 'MS SQL Server Auth';
conn = database(datasource,'','');

Проверьте подключение к базе данных. Если на Message свойство пусто, подключение успешно.

conn.Message
ans =

     []

Выполните скрипт SQL. SQL скрипт имеет два SQL запроса, которые получают данные о продажах от американских и иностранных поставщиков, соответственно.

scriptfile = 'compare_sales.sql';
results = executeSQLScript(conn,scriptfile)
results = 1×2 struct array with fields:
    SQLQuery
    Data
    Message

The executeSQLScript функция возвращает массив структур, содержащий две таблицы в Data поле. Первая таблица содержит результаты выполнения первого SQL-запроса в файле SQL скрипта. Вторая таблица содержит результаты выполнения второго запроса SQL.

Отображение первых восьми строк импортированных данных для второго запроса SQL в файле скрипта SQL. Данные показывают результаты продаж от иностранных поставщиков.

data = head(results(2).Data)
data=8×6 table
    productDescription             supplierName                city       Jan_Sales    Feb_Sales    Mar_Sales
    __________________    ______________________________    __________    _________    _________    _________

     'Victorian Doll'     'Wacky Widgets'                   'Adelaide'      1400         1100          981   
     'Painting Set'       'Terrific Toys'                   'London'        3000         2400         1800   
     'Sail Boat'          'Incredible Machines'             'Dublin'        3000         2400         1500   
     'Slinky'             'Doll's Galore'                   'London'        3000         1500         1000   
     'Convertible'        'Incredible Machines'             'Dublin'        6000         3100         8800   
     'Hugsy'              'The Great Teddy Bear Company'    'Belfast'       1800         9700          800   
     'Pancakes'           'Aunt Jemimas'                    'New York'      3100         9400         1540   
     'Shawl'              'Indian Export'                   'Mumbai'         235         1800         1040   

Получите имена переменных в таблице.

names = data.Properties.VariableNames
names = 1×6 cell array
    {'productDescription'}    {'supplierName'}    {'city'}    {'Jan_Sales'}    {'Feb_Sales'}    {'Mar_Sales'}

Определите самую высокую сумму продаж в январе.

max(data.Jan_Sales)
ans = 6000

Закройте подключение к базе данных.

close(conn)

Подключитесь к базе данных Microsoft ® SQL Server ®. Затем запустите два SELECT SQL операторы из файла скрипта SQL compare_sales.sql. Импортируйте результаты из запросов SQL как структуры и выполните простой анализ данных продаж. Файл содержит два запроса SQL по порядку. Первый запрос SQL извлекает продажи продуктов от американских поставщиков, а второй запрос SQL извлекает продажи продуктов от иностранных поставщиков.

Создайте подключение базы данных ODBC к базе данных Microsoft SQL Server с помощью проверки подлинности Windows ®. Укажите пустые имя пользователя и пароль .

datasource = 'MS SQL Server Auth';
conn = database(datasource,'','');

Проверьте подключение к базе данных. Если на Message свойство пусто, подключение успешно.

conn.Message
ans =

     []

Выполните скрипт SQL. SQL скрипт имеет два SQL запроса, которые получают данные о продажах от американских и иностранных поставщиков, соответственно. Задайте structure как формат возврата данных для импорта результатов запроса.

scriptfile = 'compare_sales.sql';
results = executeSQLScript(conn,scriptfile, ...
    'DataReturnFormat','structure')
results = 1×2 struct array with fields:
    SQLQuery
    Data
    Message

The executeSQLScript функция возвращает массив структур, содержащий две структуры в Data поле. Первая структура содержит результаты выполнения первого SQL-запроса в файле SQL скрипта. Вторая структура содержит результаты выполнения второго SQL-запроса.

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

data = results(2).Data
data = struct with fields:
    productDescription: {9×1 cell}
          supplierName: {9×1 cell}
                  city: {9×1 cell}
             Jan_Sales: [9×1 double]
             Feb_Sales: [9×1 double]
             Mar_Sales: [9×1 double]

Определите самую высокую сумму продаж в январе.

max(data.Jan_Sales)
ans = 6000

Закройте подключение к базе данных.

close(conn)

Входные параметры

свернуть все

Подключение к базе данных, заданное как ODBC connection объект или JDBC connection объект, созданный с использованием database функция.

Имя файла скрипта SQL, содержащего один или несколько операторов SQL для выполнения, заданное как вектор символов или строковый скаляр. Файл должен быть текстовым файлом и может содержать комментарии в дополнение к SQL запросам. Запуск однострочных комментариев с --. Строковые комментарии заключаются в /*...*/.

Файл скрипта SQL может содержать одни или несколько операторов SQL, завершенных точкой с запятой или ключевым словом GO. Ниже приведен пример двух SELECT SQL операторы.

SELECT productDescription, supplierName
FROM suppliers A, productTable B
WHERE A.SupplierNumber = B.SupplierNumber;

SELECT supplierName, Country
FROM suppliers;

Пример: 'C:\work\sql_file.sql'

Типы данных: char | string

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: results = executeSQLScript(conn,scriptfile,'DataReturnFormat','numeric','ErrorHandling','store') возвращает результаты запросов в виде числовой матрицы в Data поле results массив структур и сохраняет любое сообщение об ошибке в Message область results.

Формат возврата данных, заданный как разделенная разделенными запятой парами, состоящая из 'DataReturnFormat' и одно из следующих значений:

  • 'table'

  • 'cellarray'

  • 'numeric'

  • 'structure'

Можно задать эти значения с помощью векторов символов или строковых скаляров.

The 'DataReturnFormat' аргумент пары "имя-значение" задает тип данных Data поле в results массив структур.

Пример: 'DataReturnFormat','structure' возвращает массив структур, который содержит результаты запросов, хранящиеся в структурах.

Обработка ошибок, заданная как разделенная разделенными запятой парами, состоящая из 'ErrorHandling' и одно из следующих значений:

  • 'report' - Когда инструкция SQL не выполняется, остановите выполнение остальных операторов SQL в файле скрипта SQL и отобразите сообщение об ошибке в командной строке.

  • 'store' - Когда оператор SQL не выполняется, сохраните сообщение об ошибке в Message поле results массив структур.

Можно задать эти значения с помощью векторов символов или строковых скаляров.

Пример: 'ErrorHandling','report' отображает сообщение об ошибке в командной строке.

Выходные аргументы

свернуть все

Результаты запроса из выполненных SQL- операторов в файле SQL скриптов, возвращенных как массив структур с этими полями.

Имя поляТип полевых данныхОписание поля

SQLQuery

вектор символов

Хранит оператора SQL или операторов, выполненные в файле SQL скрипта.

Data

  • таблица (по умолчанию)

  • массив ячеек

  • числовая матрица

  • структура

Хранит результаты выполненных SELECT SQL операторы.

The 'DataReturnFormat' аргумент пары "имя-значение" задает тип данных Data поле.

Для не- SELECT SQL- операторов, Data поле представляет собой пустую двойку, что означает, что выполненный запрос SQL не имеет результатов.

Message

вектор символов

Сохраняет сообщение об ошибке для соответствующего оператора SQL, которая не выполняется.

The Message поле содержит сообщение об ошибке, только если вы задаете 'ErrorHandling' аргумент пары "имя-значение" со значением 'store'.

Количество элементов в массиве структур равно количеству операторов SQL в файле SQL скрипта. results(M) содержит результаты выполнения M1ним оператором SQL в файле SQL скрипта. Если оператор SQL возвращает результаты запроса, результаты сохраняются в results(M).Data.

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

Ограничения

  • Используйте executeSQLScript функция для импорта данных в MATLAB®, особенно если у вас есть длинные и сложные запросы SQL, которые трудно преобразовать в векторы символов MATLAB или строковые скаляры. executeSQLScript функция не поддерживает SQL скрипты, содержащие непрерывные блоки PL/SQL с BEGIN и END, таких как определения хранимых процедур или определения триггеров. Однако, executeSQLScript поддерживает ли определения таблиц.

  • Скрипт SQL, содержащий одно из следующих значений, может привести к неожиданным результатам:

    • Апострофы, которые не сбежали, в том числе и в комментариях. Например, запишите вектор символов 'Here's the code' как 'Here''s the code'.

    • Вложенные комментарии.

  • Скрипт SQL, содержащий более 25 000 символов, вызывает executeSQLScript функция для возврата ошибки.

Введенный в R2019a
Для просмотра документации необходимо авторизоваться на сайте