fetch

Импорт данных в Рабочее пространство MATLAB после выполнения SQL оператора

Описание

пример

results = fetch(conn,sqlquery) возвращает все строки данных после выполнения оператора SQL sqlquery для connection объект. fetch импортирует данные пакетами.

пример

results = fetch(conn,sqlquery,opts) настраивает опции для импорта данных из выполненного SQL-запроса при помощи SQLImportOptions объект.

пример

results = fetch(___,Name,Value) задает дополнительные опции, используя один или несколько аргументы пары "имя-значение" и любую из предыдущих комбинаций входных аргументов. Для примера, 'MaxRows',5 импортирует пять строк данных.

пример

[results,metadata] = fetch(___) также возвращает metadata таблица, содержащая метаданные об импортированных данных.

пример

results = fetch(conn,pstmt) возвращает все строки данных после выполнения SQL- SELECT подготовлен оператор pstmt для connection объект.

results = fetch(conn,pstmt,Name,Value) задает дополнительные опции, используя один или несколько аргументы пары "имя-значение". Для примера, 'DataReturnFormat','structure' импортирует данные как структуру.

Примеры

свернуть все

Импортируйте все данные о продукте из таблицы базы данных Microsoft ® SQL Server ® в MATLAB ® с помощью connection объект. Затем определите самую высокую удельную стоимость среди продуктов в таблице.

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

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

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

conn.Message
ans =

     []

Импортируйте все данные из productTable при помощи connection объект и SQL-запрос, а также отображение импортированных данных.

sqlquery = 'SELECT * FROM productTable';
results = fetch(conn,sqlquery)
results =

  10×5 table

    productNumber    stockNumber    supplierNumber    unitCost    productDescription 
    _____________    ___________    ______________    ________    ___________________

          9          1.2597e+05          1003            13       {'Victorian Doll' }
          8          2.1257e+05          1001             5       {'Train Set'      }
          7          3.8912e+05          1007            16       {'Engine Kit'     }
          2          4.0031e+05          1002             9       {'Painting Set'   }
          4          4.0034e+05          1008            21       {'Space Cruiser'  }
          1          4.0035e+05          1001            14       {'Building Blocks'}
          5          4.0046e+05          1005             3       {'Tin Soldier'    }
          6          4.0088e+05          1004             8       {'Sail Boat'      }
          3            4.01e+05          1009            17       {'Slinky'         }
         10          8.8865e+05          1006            24       {'Teddy Bear'     }

Определите наивысшую удельную стоимость для всех продуктов в таблице.

max(results.unitCost)
ans =

    24

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

close(conn)

Настройка настроек импорта при импорте данных из результатов SQL-запроса в базе данных. Управляйте настройками импорта путем создания SQLImportOptions объект. Затем настройте настройки импорта для различных столбцов в SQL-запросе. Импортируйте данные с помощью fetch функция.

Этот пример использует employees_database.mat файл, содержащий столбцы first_name, hire_date, и DEPARTMENT_NAME. В этом примере также используется база данных Microsoft ® SQL Server ® Version 11.00.2100 и 11.00.5058 драйверов Microsoft SQL Server.

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

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

Загрузите информацию о сотруднике в рабочую область MATLAB ®.

employeedata = load('employees_database.mat');

Создайте employees и departments таблицы базы данных с использованием информации о сотруднике.

emps = employeedata.employees;
depts = employeedata.departments;

sqlwrite(conn,'employees',emps)
sqlwrite(conn,'departments',depts)

Создайте SQLImportOptions объект с использованием SQL-запроса и databaseImportOptions функция. Этот запрос извлекает всю информацию для сотрудников, являющихся менеджерами по продажам или программистами.

sqlquery = ['SELECT * from employees e join departments d ' ...
    'on (e.department_id = d.department_id) where job_id ' ...
    'in (''IT_PROG'',''SA_MAN'')'];
opts = databaseImportOptions(conn,sqlquery)
opts = 
  SQLImportOptions with properties:

           ExcludeDuplicates: false
          VariableNamingRule: 'modify'

               VariableNames: {'employee_id', 'first_name', 'last_name' ... and 13 more}
               VariableTypes: {'double', 'char', 'char' ... and 13 more}
       SelectedVariableNames: {'employee_id', 'first_name', 'last_name' ... and 13 more}
                  FillValues: { NaN, '', ''  ... and 13 more }

             VariableOptions: Show all 16 VariableOptions

Отобразите текущие настройки импорта для переменных, выбранных в SelectedVariableNames свойство SQLImportOptions объект.

vars = opts.SelectedVariableNames;
varOpts = getoptions(opts,vars)
varOpts = 
    1x16 SQLVariableImportOptions array with properties:

   Variable Options:
                         (1) |          (2) |         (3) |     (4) |            (5) |         (6) |      (7) |      (8) |              (9) |         (10) |            (11) |        (12) |            (13) |              (14) |         (15) |          (16)
         Name: 'employee_id' | 'first_name' | 'last_name' | 'email' | 'phone_number' | 'hire_date' | 'job_id' | 'salary' | 'commission_pct' | 'manager_id' | 'department_id' | 'temporary' | 'DEPARTMENT_ID' | 'DEPARTMENT_NAME' | 'MANAGER_ID' | 'LOCATION_ID'
         Type:      'double' |       'char' |      'char' |  'char' |         'char' |      'char' |   'char' | 'double' |         'double' |     'double' |        'double' |    'double' |        'double' |            'char' |     'double' |      'double'
  MissingRule:        'fill' |       'fill' |      'fill' |  'fill' |         'fill' |      'fill' |   'fill' |   'fill' |           'fill' |       'fill' |          'fill' |      'fill' |          'fill' |            'fill' |       'fill' |        'fill'
    FillValue:           NaN |           '' |          '' |      '' |             '' |          '' |       '' |      NaN |              NaN |          NaN |             NaN |         NaN |             NaN |                '' |          NaN |           NaN

	To access sub-properties of each variable, use getoptions

Измените типы данных для hire_date, DEPARTMENT_NAME, и first_name переменные, использующие setoptions функция. Затем отобразите обновленные настройки импорта. Потому что hire_date сохраняет данные о дате и времени, меняет тип данных этой переменной на datetime. Потому что DEPARTMENT_NAME определяет конечный набор повторяющихся значений, изменяет тип данных этой переменной на categorical. Кроме того, измените имя этой переменной на строчное. Потому что first_name сохраняет текстовые данные, меняет тип данных этой переменной на string.

opts = setoptions(opts,'hire_date','Type','datetime');
opts = setoptions(opts,'DEPARTMENT_NAME','Name','department_name', ...
    'Type','categorical');
opts = setoptions(opts,'first_name','Type','string');

vars = opts.SelectedVariableNames;
varOpts = getoptions(opts,vars)
varOpts = 
    1x16 SQLVariableImportOptions array with properties:

   Variable Options:
                         (1) |          (2) |         (3) |     (4) |            (5) |         (6) |      (7) |      (8) |              (9) |         (10) |            (11) |        (12) |            (13) |              (14) |         (15) |          (16)
         Name: 'employee_id' | 'first_name' | 'last_name' | 'email' | 'phone_number' | 'hire_date' | 'job_id' | 'salary' | 'commission_pct' | 'manager_id' | 'department_id' | 'temporary' | 'DEPARTMENT_ID' | 'department_name' | 'MANAGER_ID' | 'LOCATION_ID'
         Type:      'double' |     'string' |      'char' |  'char' |         'char' |  'datetime' |   'char' | 'double' |         'double' |     'double' |        'double' |    'double' |        'double' |     'categorical' |     'double' |      'double'
  MissingRule:        'fill' |       'fill' |      'fill' |  'fill' |         'fill' |      'fill' |   'fill' |   'fill' |           'fill' |       'fill' |          'fill' |      'fill' |          'fill' |            'fill' |       'fill' |        'fill'
    FillValue:           NaN |    <missing> |          '' |      '' |             '' |         NaT |       '' |      NaN |              NaN |          NaN |             NaN |         NaN |             NaN |       <undefined> |          NaN |           NaN

	To access sub-properties of each variable, use getoptions

Выберите три измененные переменные с помощью SelectVariableNames свойство.

opts.SelectedVariableNames = {'first_name','hire_date','department_name'};

Импорт и отображение результатов SQL-запроса с помощью fetch функция.

employees_data = fetch(conn,sqlquery,opts)
employees_data=10×3 table
    first_name      hire_date     department_name
    ___________    ___________    _______________

    "Alexander"    03-Jan-2006         IT        
    "Bruce"        21-May-2007         IT        
    "David"        25-Jun-2005         IT        
    "Valli"        05-Feb-2006         IT        
    "Diana"        07-Feb-2007         IT        
    "John"         01-Oct-2004         Sales     
    "Karen"        05-Jan-2005         Sales     
    "Alberto"      10-Mar-2005         Sales     
    "Gerald"       15-Oct-2007         Sales     
    "Eleni"        29-Jan-2008         Sales     

Удалите employees и departments таблицы базы данных с использованием execute функция.

execute(conn,'DROP TABLE employees')
execute(conn,'DROP TABLE departments')

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

close(conn)

Укажите формат возврата данных и количество импортированных строк для результатов SQL-запроса. Импортируйте данные с помощью SQL-запроса и fetch функция.

Этот пример использует базу данных Microsoft ® SQL Server ® Version 11.00.2100 и 11.00.5058 драйверов Microsoft SQL Server.

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

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

Загрузите информацию о пациенте в рабочую область MATLAB ®.

patients = readtable('patients.xls');

Создайте patients таблица базы данных с использованием информации о пациенте.

tablename = 'patients';
sqlwrite(conn,tablename,patients)

Выберите все данные из patients таблица базы данных и импорт пяти строк из таблицы как структуры. Используйте 'DataReturnFormat' аргумент пары "имя-значение" для задания возврата данных виде структуры. Кроме того, используйте 'MaxRows' аргумент пары "имя-значение" для задания пяти строк. Отображение импортированных данных.

sqlquery = ['SELECT * FROM ' tablename];
results = fetch(conn,sqlquery,'DataReturnFormat','structure', ...
    'MaxRows',5)
results = struct with fields:
                    LastName: {5×1 cell}
                      Gender: {5×1 cell}
                         Age: [5×1 double]
                    Location: {5×1 cell}
                      Height: [5×1 double]
                      Weight: [5×1 double]
                      Smoker: [5×1 double]
                    Systolic: [5×1 double]
                   Diastolic: [5×1 double]
    SelfAssessedHealthStatus: {5×1 cell}

Удалите patients таблица базы данных с использованием execute функция.

sqlquery = ['DROP TABLE ' tablename];
execute(conn,sqlquery)

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

close(conn)

Импортируйте данные продукта из таблицы базы данных Microsoft ® SQL Server ® в MATLAB ® с помощью подключения ODBC. Таблица содержит имя переменной с символом, отличным от ASCII. При импорте данных сохраните имена всех переменных.

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

datasource = "MSSQLServerAuth";
conn = database(datasource,"","");

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

conn.Message
ans =

     []

Добавьте столбец в таблицу базы данных productTable. Имя столбца содержит символ, отличный от ASCII.

sqlquery = "ALTER TABLE productTable ADD tamaño varchar(30)"; 
execute(conn,sqlquery)

Импортируйте данные из таблицы базы данных productTable. The fetch функция возвращает таблицу MATLAB, которая содержит данные о продукте. Отобразите первые три строки данных в таблице.

sqlquery = "SELECT * FROM productTable";
data = fetch(conn,sqlquery);
head(data,3)
ans=3×6 table
    productNumber    stockNumber    supplierNumber    unitCost    productDescription      tama_o  
    _____________    ___________    ______________    ________    __________________    __________

          9          1.2597e+05          1003            13       {'Victorian Doll'}    {0×0 char}
          8          2.1257e+05          1001             5       {'Train Set'     }    {0×0 char}
          7          3.8912e+05          1007            16       {'Engine Kit'    }    {0×0 char}

The fetch функция преобразует имя новой переменной в символы ASCII.

Сохраните имя переменной, содержащей символ, отличный от ASCII, путем определения VariableNamingRule аргумент пары "имя-значение". Импортируйте данные еще раз.

data = fetch(conn,sqlquery, ...
    'VariableNamingRule',"preserve");
head(data,3)
ans=3×6 table
    productNumber    stockNumber    supplierNumber    unitCost    productDescription      tamaño  
    _____________    ___________    ______________    ________    __________________    __________

          9          1.2597e+05          1003            13       {'Victorian Doll'}    {0×0 char}
          8          2.1257e+05          1001             5       {'Train Set'     }    {0×0 char}
          7          3.8912e+05          1007            16       {'Engine Kit'    }    {0×0 char}

The fetch функция сохраняет не-ASCII символ в имени переменной.

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

close(conn)

Получение информации о метаданных при импорте данных из SQL-запроса. Импортируйте данные с помощью fetch выполнять функцию и исследовать информацию метаданных при помощи записи через точку.

Этот пример использует outages.csv файл, который содержит данные о отключении. Кроме того, в этом примере используется база данных Microsoft ® SQL Server ® Version 11.00.2100 и 11.00.5058 драйверов Microsoft SQL Server.

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

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

Загрузите информацию о отключении в рабочую область MATLAB ®.

outages = readtable("outages.csv");

Создайте outages таблица базы данных с использованием информации об отключении.

tablename = "outages";
sqlwrite(conn,tablename,outages)

Импортируйте данные в рабочее пространство MATLAB и возвращайте метаданные об импортированных данных.

sqlquery = "SELECT * FROM outages";
[results,metadata] = fetch(conn,sqlquery);

Просмотрите имена переменных в импортированных данных.

metadata.Properties.RowNames
ans = 6×1 cell
    {'Region'         }
    {'OutageTime'     }
    {'Loss'           }
    {'Customers'      }
    {'RestorationTime'}
    {'Cause'          }

Просмотрите тип данных каждой переменной в импортированных данных.

metadata.VariableType
ans = 6×1 cell
    {'char'  }
    {'char'  }
    {'double'}
    {'double'}
    {'char'  }
    {'char'  }

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

metadata.FillValue
ans=6×1 cell array
    {0×0 char}
    {0×0 char}
    {[   NaN]}
    {[   NaN]}
    {0×0 char}
    {0×0 char}

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

metadata.MissingRows
ans=6×1 cell array
    {  0×1 double}
    {  0×1 double}
    {604×1 double}
    {328×1 double}
    { 29×1 double}
    {  0×1 double}

Отображение первых восьми строк импортированных данных, содержащих отсутствующее время восстановления. data содержит время восстановления в пятой переменной. Используйте числовые индексы, чтобы найти строки с отсутствующими данными.

index = metadata.MissingRows{5,1};
nullrestoration = results(index,:);
head(nullrestoration)
ans=8×6 table
       Region                OutageTime              Loss     Customers     RestorationTime           Cause        
    _____________    ___________________________    ______    __________    _______________    ____________________

    {'SouthEast'}    {'2003-01-23 00:49:00.000'}    530.14    2.1204e+05      {0×0 char}       {'winter storm'    }
    {'NorthEast'}    {'2004-09-18 05:54:00.000'}         0             0      {0×0 char}       {'equipment fault' }
    {'MidWest'  }    {'2002-04-20 16:46:00.000'}     23141           NaN      {0×0 char}       {'unknown'         }
    {'NorthEast'}    {'2004-09-16 19:42:00.000'}      4718           NaN      {0×0 char}       {'unknown'         }
    {'SouthEast'}    {'2005-09-14 15:45:00.000'}    1839.2    3.4144e+05      {0×0 char}       {'severe storm'    }
    {'SouthEast'}    {'2004-08-17 17:34:00.000'}     624.1    1.7879e+05      {0×0 char}       {'severe storm'    }
    {'SouthEast'}    {'2006-01-28 23:13:00.000'}    498.78           NaN      {0×0 char}       {'energy emergency'}
    {'West'     }    {'2003-06-20 18:22:00.000'}         0             0      {0×0 char}       {'energy emergency'}

Удалите outages таблица базы данных с использованием execute функция.

sqlstr = "DROP TABLE ";
sqlquery = strcat(sqlstr,tablename);
execute(conn,sqlquery)

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

close(conn)

Создайте оператора SQL для импорта данных из базы данных Microsoft ® SQL Server ® с помощью подключения к базе данных JDBC. Используйте SELECT SQL- оператора для SQL-запроса. Импортируйте данные из базы данных и отобразите результаты.

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

datasource = 'MSSQLServerJDBCAuth';
conn = database(datasource,'','');

Создайте оператора SQL для импорта данных из базы данных SQL Server с помощью подключения к базе данных JDBC. Вопросительные знаки в SELECT SQL- оператора указывает, что это подготовленный SQL- оператора. Этот оператор выбирает все данные из таблицы базы данных inventoryTable для запаса, который имеет дату инвентаризации в указанной области значений дат.

query = strcat("SELECT * FROM inventoryTable ", ...
    "WHERE inventoryDate > ? AND inventoryDate < ?");
pstmt = databasePreparedStatement(conn,query)
pstmt = 
  SQLPreparedStatement with properties:

           SQLQuery: "SELECT * FROM inventoryTable where inventoryDate > ? AND inventoryDate < ?"
     ParameterCount: 2
     ParameterTypes: ["string"    "string"]
    ParameterValues: {[]  []}

pstmt является SQLPreparedStatement объект со следующими свойствами:

  • SQLQuery - Подготовленный SQL запрос оператора

  • ParameterCount - Количество параметров

  • ParameterTypes - Типы параметров

  • ParameterValues - Значения параметров

Привязка значений параметров в подготовленных SQL оператора. Выберите оба параметра в подготовленных операторах SQL с помощью их числовых индексов. Укажите значения для привязки в качестве даты инвентаризации, области значений с 1 января 2014 года по 31 декабря 2014 года. Соответствовать формату дат в базе данных. The bindParamValues функция обновляет значения в ParameterValues свойство pstmt объект.

selection = [1 2];
values = {"2014-01-01 00:00:00.000", ...
    "2014-12-31 00:00:00.000"};
pstmt = bindParamValues(pstmt,selection,values)
pstmt = 
  SQLPreparedStatement with properties:

           SQLQuery: "SELECT * FROM inventoryTable where inventoryDate > ? AND inventoryDate < ?"
     ParameterCount: 2
     ParameterTypes: ["string"    "string"]
    ParameterValues: {["2014-01-01 00:00:00.000"]  ["2014-12-31 00:00:00.000"]}

Импортируйте данные из базы данных с помощью fetch функции и связанных значений параметров. Результаты содержат четыре строки данных, которые представляют все запасы с датой инвентаризации между 1 января 2014 года и 31 декабря 2014 года.

results = fetch(conn,pstmt)
results=4×4 table
    productNumber    Quantity    Price         inventoryDate     
    _____________    ________    _____    _______________________

          1            1700      14.5     {'2014-09-23 09:38:34'}
          2            1200         9     {'2014-07-08 22:50:45'}
          3             356        17     {'2014-05-14 07:14:28'}
          7            6034        16     {'2014-08-06 08:38:00'}

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

close(pstmt)
close(conn)

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

свернуть все

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

Оператор SQL, заданный как вектор символов или строковый скаляр. SQL- оператора может быть любым допустимым SQL- оператора, включая вложенные запросы. Оператор SQL может быть хранимой процедурой, например {call sp_name (parm1,parm2,...)}. Для хранимых процедур, которые возвращают один или несколько наборов результатов, используйте fetch функция. Для процедур, которые возвращают выходные аргументы, используйте runstoredprocedure.

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

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

Настройки импорта базы данных, заданные как SQLImportOptions объект.

SQL- оператора, заданные как SQLPreparedStatement объект.

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

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

Пример: results = fetch(conn,sqlquery,'MaxRows',50,'DataReturnFormat','structure') импортирует 50 строк данных как структуру.

Максимальное количество возвращаемых строк, заданное как разделенная разделенными запятой парами, состоящая из 'MaxRows' и положительный числовой скаляр. По умолчанию, fetch функция возвращает все строки из выполненного SQL-запроса. Используйте этот аргумент пары "имя-значение", чтобы ограничить количество строк, импортированных в MATLAB®.

Пример: 'MaxRows',10

Типы данных: double

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

  • 'table'

  • 'cellarray'

  • 'numeric'

  • 'structure'

Используйте 'DataReturnFormat' аргумент пары "имя-значение" для определения типа данных результатов results. Чтобы задать целочисленные классы для числовых данных, используйте opts входной параметр.

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

Пример: 'DataReturnFormat','cellarray' импортирует данные как массив ячеек.

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

  • "modify" - Удалите символы, отличные от ASCII, из имен переменных, когда fetch функция импортирует данные.

  • "preserve" - Сохраните большинство имен переменных, когда fetch функция импортирует данные. Для получения дополнительной информации см. раздел «Ограничения».

Пример: 'VariableNamingRule',"modify"

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

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

свернуть все

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

Используйте 'MaxRows' аргумент пары "имя-значение" для определения количества строк данных для импорта. Используйте 'DataReturnFormat' аргумент пары "имя-значение" для определения типа данных результатов.

Когда выполненный оператор SQL не возвращает никаких строк, данные результата являются пустой таблицей.

Сведения о метаданных, возвращенные как таблица с этими переменными.

Имя переменнойОписание переменнойТипы данных переменных

VariableType

Тип данных каждой переменной в импортированных данных

Массив ячеек из символьных векторов

FillValue

Значение отсутствующих данных для каждой переменной в импортированных данных

Массив ячеек с отсутствующими значениями данных

MissingRows

Индексы для каждого вхождения отсутствующих данных в каждой переменной импортированных данных

Массив ячеек из числовых индексов

По умолчанию, fetch функция импортирует текстовые данные как вектор символов, а числовые как double. FillValue является пустым символьным массивом (для текстовых данных) или NaN (для числовых данных) по умолчанию. Чтобы изменить отсутствующее значение данных на другое, используйте SQLImportOptions объект.

The RowNames свойство metadata таблица содержит имена переменных в импортированных данных.

Ограничения

Область аргумента пары "имя-значение" 'MaxRows' имеет следующие ограничения:

  • Если вы используете Microsoft® Access™ собственный интерфейс ODBC не поддерживается.

  • Не все драйверы базы данных поддерживают установку максимального количества строк перед выполнением запроса. Для неподдерживаемого драйвера измените SQL-запрос, ограничив максимальное количество возвращаемых строк. Синтаксис SQL изменяется в зависимости от драйвера. Для получения дополнительной информации см. документацию по драйверу.

Область аргумента пары "имя-значение" 'VariableNamingRule' имеет следующие ограничения:

  • fetch функция возвращает ошибку, когда вы задаете 'VariableNamingRule' Аргументу пары "имя-значение" и установите 'DataReturnFormat' аргумент пары "имя-значение" в cellarray, structure, или numeric.

  • fetch функция возвращает предупреждение при установке VariableNamingRule свойство SQLImportOptions объект к "preserve" и установите 'DataReturnFormat' аргумент пары "имя-значение" в structure.

  • fetch функция возвращает ошибку, когда вы используете 'VariableNamingRule' аргумент пары "имя-значение" со SQLImportOptions opts объекта.

  • Когда 'VariableNamingRule' Аргумент пары "имя-значение" задано значение 'modify':

    • Эти имена переменных являются зарезервированными идентификаторами для table тип данных: Properties, RowNames, и VariableNames.

    • Длина каждого имени переменной должна быть меньше, чем число, возвращаемое namelengthmax.

Совет

  • Порядок записей в базе данных не остается постоянным. Сортировка данных с помощью SQL- ORDER BY команда в вашем sqlquery оператор.

  • Для Microsoft Excel®, таблицы в sqlquery являются таблицами Excel. По умолчанию некоторые имена листов включают $ символ. Чтобы выбрать данные из листа с таким форматом имен, используйте SQL- оператора формы SELECT * FROM "Sheet1$"(или 'Sheet1$').

  • Перед изменением таблиц базы данных убедитесь, что база данных не открыта для редактирования. Если вы пытаетесь отредактировать базу данных, пока она открыта, вы получите эту ошибку MATLAB:

    [Vendor][ODBC Driver] The database engine could not lock 
    table 'TableName' because it is already in use by 
    another person or process.
  • Система управления базами данных PostgreSQL поддерживает многомерные поля, но SQL SELECT операторы не выполняются при получении этих полей, если вы не задаете индекс.

  • Некоторые базы данных требуют, чтобы вы включили символ, такой как #, до и после даты в запросе, следующим образом:

    execute(conn,'SELECT * FROM mydb WHERE mydate > #03/05/2005#')
  • Выполнение fetch функция со opts входной параметр и 'DataReturnFormat' Аргумент пары "имя-значение" установите в 'numeric' значение не влияет. В Командном окне появится соответствующее предупреждение.

Альтернативная функциональность

Приложение

fetch функция импортирует данные с помощью командной строки. Чтобы импортировать данные в интерактивном режиме, используйте приложение Database Explorer.

Вопросы совместимости

расширить все

Поведение изменено в R2018b

Поведение изменено в R2018b

Введенный в R2006b