datainsert

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

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

Описание

пример

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 базы данных preference и NullStringWrite не обращайтесь к этой функции. Если data содержит null записи и NaNs, преобразуйте эти записи в пустое значение ''.

datainsert функционируйте поддержки, вставляющие числа даты MATLAB и NaNs, когда 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 в базу данных, можно использовать fastinsert и insert функции. Для максимальной производительности использовать datainsert.

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

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

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

Введенный в R2011a