datainsert

(Чтобы быть удаленным), Экспортируют данные MATLAB в таблицу базы данных

Функция datainsert будет удалена в будущем релизе. Используйте функцию sqlwrite вместо этого. Для получения дополнительной информации см. Вопросы совместимости.

Синтаксис

datainsert(conn,tablename,colnames,data)

Описание

пример

datainsert(conn,tablename,colnames,data) экспортирует данные из рабочей области MATLAB® и вставляет его в существующие столбцы таблицы базы данных с помощью соединения с базой данных conn.

Примеры

свернуть все

Используйте связь ODBC и массив ячеек, чтобы экспортировать данные учета из MATLAB в таблицу базы данных MySQL®.

Создайте соединение с базой данных conn к базе данных MySQL с помощью нативного интерфейса ODBC. Здесь, этот код принимает, что вы соединяетесь с источником данных ODBC под названием MySQL с именем пользователя и паролем. Эта база данных содержит таблицу inventoryTable с этими столбцами:

  • productNumber

  • Quantity

  • Price

  • inventoryDate

conn = database('MySQL','username','pwd');

Отобразите последние строки в inventoryTable прежде, чем вставить данные.

curs = exec(conn,'SELECT * FROM inventoryTable');
curs = fetch(curs);
curs.Data
ans = 

    ...    
    [14]    [2000]    [19.1000]    '2014-10-22 10:52...'
    [15]    [1200]    [20.3000]    '2014-10-22 10:52...'
    [16]    [1400]    [34.3000]    '1999-12-31 00:00...'

Создайте массив ячеек имен столбцов для таблицы базы данных inventoryTable.

colnames = {'productNumber','Quantity','Price','inventoryDate'};

Задайте массив ячеек входных данных, чтобы вставить.

data = {50 100 15.50 datestr(now,'yyyy-mm-dd HH:MM:SS')};

Вставьте входные данные в таблицу inventoryTable с помощью соединения с базой данных.

tablename = 'inventoryTable';

datainsert(conn,tablename,colnames,data) 

Отобразите вставленные данные в inventoryTable.

curs = exec(conn,'SELECT * FROM inventoryTable');
curs = fetch(curs);
curs.Data
ans = 

    ...
    [15]    [1200]    [20.3000]    '2014-10-22 10:52...'
    [16]    [1400]    [34.3000]    '1999-12-31 00:00...'
    [50]    [ 100]    [15.5000]    '2014-10-22 11:29...'

Последняя строка содержит вставленные данные.

После того, как вы закончили работать с объектом cursor, закрываете его.

close(curs)

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

close(conn)

Используйте связь JDBC и таблицу MATLAB, чтобы экспортировать данные учета из MATLAB в таблицу базы данных MySQL.

Создайте соединение с базой данных conn к базе данных MySQL с помощью драйвера JDBC. Используйте аргумент пары "имя-значение" Vendor функции database, чтобы задать связь с базой данных MySQL. Здесь, этот код принимает, что вы соединяетесь с базой данных под названием dbname на сервере базы данных под названием sname с именем пользователя и паролем. Эта база данных содержит таблицу inventoryTable с этими столбцами:

  • productNumber

  • Quantity

  • Price

  • inventoryDate

conn = database('dbname','username','pwd', ...
    'Vendor','MySQL', ...
    'Server','sname');

Отобразите последние строки в inventoryTable прежде, чем вставить данные.

curs = exec(conn,'SELECT * FROM inventoryTable');
curs = fetch(curs);
curs.Data
ans = 

    ...    
    [14]    [2000]    [19.1000]    '2014-10-22 10:52...'
    [15]    [1200]    [20.3000]    '2014-10-22 10:52...'
    [16]    [1400]    [34.3000]    '1999-12-31 00:00...'

Создайте массив ячеек имен столбцов для таблицы базы данных inventoryTable.

colnames = {'productNumber','Quantity','Price','inventoryDate'};

Задайте входные данные как таблицу.

data = table(50,100,15.50,{datestr(now,'yyyy-mm-dd HH:MM:SS')}, ...
    'VariableNames',colnames);

Вставьте входные данные в таблицу inventoryTable с помощью соединения с базой данных.

tablename = 'inventoryTable';

datainsert(conn,tablename,colnames,data) 

Отобразите вставленные данные в inventoryTable.

curs = exec(conn,'SELECT * FROM inventoryTable');
curs = fetch(curs);
curs.Data
ans = 

    ...
    [15]    [1200]    [20.3000]    '2014-10-22 10:52...'
    [16]    [1400]    [34.3000]    '1999-12-31 00:00...'
    [50]    [ 100]    [15.5000]    '2014-10-22 11:29...'

Последняя строка содержит вставленные данные.

После того, как вы закончили работать с объектом cursor, закрываете его.

close(curs)

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

close(conn)

Используйте связь ODBC и структуру MATLAB, чтобы экспортировать данные учета из MATLAB в таблицу базы данных MySQL.

Создайте соединение с базой данных conn к базе данных MySQL с помощью нативного интерфейса ODBC. Здесь, этот код принимает, что вы соединяетесь с источником данных ODBC под названием MySQL с именем пользователя и паролем. Эта база данных содержит таблицу inventoryTable с этими столбцами:

  • productNumber

  • Quantity

  • Price

  • inventoryDate

conn = database('MySQL','username','pwd');

Отобразите последние строки в inventoryTable прежде, чем вставить данные.

curs = exec(conn,'SELECT * FROM inventoryTable');
curs = fetch(curs);
curs.Data
ans = 

    ...    
    [14]    [2000]    [19.1000]    '2014-10-22 10:52...'
    [15]    [1200]    [20.3000]    '2014-10-22 10:52...'
    [16]    [1400]    [34.3000]    '1999-12-31 00:00...'

Создайте массив ячеек имен столбцов для таблицы базы данных inventoryTable.

colnames = {'productNumber','Quantity','Price','inventoryDate'};

Задайте входные данные как структуру.

data = struct('productNumber',50,'Quantity',100,'Price',15.50, ...
    'inventoryDate',datestr(now,'yyyy-mm-dd HH:MM:SS'));

Вставьте входные данные в таблицу inventoryTable с помощью соединения с базой данных.

tablename = 'inventoryTable';

datainsert(conn,tablename,colnames,data) 

Отобразите вставленные данные в inventoryTable.

curs = exec(conn,'SELECT * FROM inventoryTable');
curs = fetch(curs);
curs.Data
ans = 

    ...
    [15]    [1200]    [20.3000]    '2014-10-22 10:52...'
    [16]    [1400]    [34.3000]    '1999-12-31 00:00...'
    [50]    [ 100]    [15.5000]    '2014-10-22 11:29...'

Последняя строка содержит вставленные данные.

После того, как вы закончили работать с объектом cursor, закрываете его.

close(curs)

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

close(conn)

Используйте связь JDBC и числовую матрицу к данным об экспортной продаже MATLAB в таблицу базы данных MySQL.

Создайте соединение с базой данных conn к базе данных MySQL с помощью драйвера JDBC. Используйте аргумент пары "имя-значение" Vendor database, чтобы задать связь с базой данных MySQL. Здесь, этот код принимает, что вы соединяетесь с базой данных под названием dbname на сервере базы данных под названием sname с именем пользователя и паролем. Эта база данных содержит таблицу salesVolume со столбцом stockNumber и столбцы в течение каждого месяца года.

conn = database('dbname','username','pwd', ...
    'Vendor','MySQL', ...
    'Server','sname');

Отобразите последние строки в salesVolume прежде, чем вставить данные.

curs = exec(conn,'SELECT * FROM salesVolume');
curs = fetch(curs);
curs.Data
ans = 

  Columns 1 through 8

    ...
    [470816]    [3100]    [9400]    [1540]    [1500]    [1350]    [1190]    [ 900]
    [510099]    [ 235]    [1800]    [1040]    [ 900]    [ 750]    [ 700]    [ 400]
    [899752]    [ 123]    [1700]    [ 823]    [ 701]    [ 689]    [ 621]    [ 545]

  Columns 9 through 13

    ...
    [867]    [ 923]    [1400]    [ 3000]    [35000]
    [350]    [ 500]    [ 100]    [ 3000]    [18000]
    [421]    [ 495]    [ 650]    [ 4200]    [11000]

Создайте массив ячеек имен столбцов для таблицы базы данных salesVolume.

colnames = {'stockNumber','January','February' ...
    'March','April','May', ...
    'June','July','August', ...
    'September','October','November', ...
    'December'};

Задайте числовой матричный data, который содержит данные об объеме продаж.

data = [777666,0,350,400,450,250,450,500,515, ...
    235,100,300,600];

Вставьте содержимое data в таблицу salesVolume с помощью соединения с базой данных.

tablename = 'salesVolume';

datainsert(conn,tablename,colnames,data) 

Отобразите вставленные данные в salesVolume.

curs = exec(conn,'SELECT * FROM salesVolume');
curs = fetch(curs);
curs.Data
ans = 

  Columns 1 through 8

    ...
    [510099]    [ 235]    [1800]    [1040]    [ 900]    [ 750]    [ 700]    [ 400]
    [899752]    [ 123]    [1700]    [ 823]    [ 701]    [ 689]    [ 621]    [ 545]
    [777666]    [   0]    [ 350]    [ 400]    [ 450]    [ 250]    [ 450]    [ 500]

Columns 9 through 13

    ...
    [350]    [ 500]    [ 100]    [ 3000]    [18000]
    [421]    [ 495]    [ 650]    [ 4200]    [11000]
    [515]    [ 235]    [ 100]    [  300]    [  600]

Последняя строка содержит вставленные данные.

После того, как вы закончили работать с объектом cursor, закрываете его.

close(curs)

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

close(conn)

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

свернуть все

Соединение с базой данных, заданное как объект connection, создается с функцией database.

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

Пример: 'employees'

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

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

Пример: {'col1','col2','col3'}

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

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

Если вы соединяетесь с базой данных с помощью драйвера JDBC, то преобразовываете данные о вставке в поддерживаемый формат прежде, чем запустить datainsert. Если data содержит даты MATLAB, времена или метки времени, используют это форматирование:

  • Даты должны быть векторами символов формы yyyy-mm-dd.

  • Времена должны быть векторами символов формы HH:MM:SS.

  • Метки времени должны быть векторами символов формы yyyy-mm-dd HH:MM:SS.FFF.

Настройки NullNumberWrite и NullStringWrite базы данных preference не применяются к этой функции. Если data содержит записи null и NaN s, преобразуйте эти записи в пустое значение ''.

Поддержки функции datainsert, вставляющие числа даты MATLAB и NaN s, когда data является числовой матрицей. Числа даты, вставленные в столбцы даты и времени базы данных, преобразовывают в java.sql.Date. На вставку в целевую базу данных любые конвертированные данные о дате и времени точно возвращаются к нативному формату базы данных.

Если data является структурой, то имена полей в структуре должны совпадать с colnames.

Если data является таблицей или массивом набора данных, то имена переменных в таблице или массиве набора данных должны совпадать с colnames.

Советы

  • Когда вы устанавливаете соединение с базой данных с помощью драйвера JDBC, datainsert выполняет быстрее, чем fastinsert.

  • datainsert использует оператор SQL TRANSACTION, чтобы вставить записи с более быстрой производительностью для этих баз данных:

    • Microsoft® SQL Server®

    • MySQL

    • Oracle®

    • PostgreSQL

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

  • Значение свойства AutoCommit в объекте connection определяет, передает ли datainsert автоматически данные базе данных.

    • Чтобы просмотреть значение AutoCommit, получите доступ к нему с помощью объекта connection; например, conn.AutoCommit.

    • Чтобы установить значение AutoCommit, используйте соответствующий аргумент пары "имя-значение" в функции database.

    • Чтобы передать данные базе данных, используйте commit, функционируют или вводят выражение SQL COMMIT с помощью функции exec.

    • Чтобы откатывать данные, используйте rollback или введите выражение SQL ROLLBACK с помощью функции exec.

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

Чтобы экспортировать данные MATLAB в базу данных, можно использовать функции insert и fastinsert. Для максимальной производительности используйте datainsert.

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

развернуть все

Не рекомендуемый запуск в R2018a

Введенный в R2011a

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