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 и Драйвер Microsoft SQL Server 11.00.5058.

Создайте соединение с базой данных к базе данных 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 и Драйвер Microsoft SQL Server 11.00.5058.

Создайте соединение с базой данных 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. Таблица содержит имя переменной с символом non-ASCII. При импортировании данных сохраните имена всех переменных.

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

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

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

conn.Message
ans =

     []

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

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

Импортируйте данные от таблицы базы данных productTable. 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}

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

Сохраните имя переменной, которая содержит символ non-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}

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

Закройте соединение с базой данных.

close(conn)

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

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

Создайте соединение с базой данных к базе данных 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. Совпадайте с форматом дат в базе данных. 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 возразите или connection JDBC объект создал использование 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" — Удалите символы non-ASCII из имен переменных когда fetch функция импортирует данные.

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

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

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

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

свернуть все

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

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

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

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

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

VariableType

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

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

FillValue

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

Массив ячеек пропавших без вести значений данных

MissingRows

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

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

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

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

Ограничения

Аргумент пары "имя-значение" 'MaxRows' имеет эти ограничения:

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

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

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

  • fetch функция возвращает ошибку, когда вы задаете 'VariableNamingRule' аргумент пары "имя-значение" и набор 'DataReturnFormat' аргумент пары "имя-значение" cellarrayСтруктура, или 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