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)

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

свернуть все

Подключение к базе данных, заданное как ODBC connection объект или JDBC 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 не применять к этой функции. Если 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