Один из способов экспорта данных из MATLAB® и вставьте его в свою базу данных, чтобы использовать sqlwrite
функцию в командной строке. Однако, если вы столкнулись с проблемами эффективности в этом процессе, можно вместо этого создать файл данных, содержащий каждую запись в наборе данных. Затем можно использовать этот файл данных как вход в функциональность массовой вставки базы данных для обработки большого набора данных. Кроме того, с помощью этого файла можно вставлять данные со специальными символами, такими как двойные кавычки. Массовая вставка обеспечивает увеличение эффективности при помощи утилит массовой вставки, которые являются собственными для различных систем баз данных. Для получения дополнительной информации смотрите Работа с большими наборами данных.
В следующих примерах используются предварительно сконфигурированные источники данных JDBC. Дополнительные сведения о конфигурировании источника данных JDBC см. в разделе databaseConnectionOptions
функция.
Этот пример использует файл данных, содержащий спортивные данные на локальной машине с Oracle® устанавливает и экспортирует данные в файл на сервер Oracle с помощью функций массовой вставки.
Подключитесь к сконфигурированному источнику данных JDBC для базы данных Oracle.
datasource = "ORA_JDBC"; username = "user"; password = "password"; conn = database(datasource,username,password);
Составьте таблицу с именем BULKTEST
использование execute
функция.
execute(conn,['CREATE TABLE BULKTEST (salary number, ' ... 'player varchar2(25), signed varchar2(25), ' ... 'team varchar2(25))'])
Создайте запись данных.
A = {100000.00,'KGreen','06/22/2011','Challengers'};
Разверните A
к набору данных, содержащему 10 000 записей.
A = A(ones(10000,1),:);
Запись данных в файл для функциональности массовой вставки.
Совет
При подключении к базе данных на удаленном компьютере необходимо записать этот файл на удаленный компьютер. Oracle испытывает трудности с чтением файлов, которые находятся не на том же компьютере, что и база данных.
fid = fopen('c:\temp\tmp.txt','wt'); for i = 1:size(A,1) fprintf(fid,'%10.2f \t %s \t %s \t %s \n',A{i,1}, ... A{i,2},A{i,3},A{i,4}); end fclose(fid);
Установите расположение папки с помощью execute
функция.
execute(conn, ... 'CREATE OR REPLACE DIRECTORY ext AS ''C:\\Temp''')
Удалите временную таблицу, если она существует, используя execute
функция.
execute(conn,'DROP TABLE testinsert')
Создайте временную таблицу и используйте функциональность массовой вставки, чтобы вставить ее в таблицу BULKTEST
.
execute(conn,['CREATE TABLE testinsert (salary number, ' ... 'player varchar2(25), signed varchar2(25), ' ... 'team varchar2(25)) ORGANIZATION EXTERNAL ' ... '( TYPE ORACLE_LOADER DEFAULT DIRECTORY ext ACCESS ' ... 'PARAMETERS ( RECORDS DELIMITED BY NEWLINE FIELDS ' ... 'TERMINATED BY ''\t'') LOCATION (''tmp.txt'')) ' ... 'REJECT LIMIT 10000']) execute(conn,'INSERT INTO BULKTEST SELECT * FROM testinsert')
Подтвердите количество переменных в BULKTEST
.
results = fetch(conn,'SELECT * FROM BULKTEST');
results.Properties.VariableNames
ans = 1×4 cell array {'SALARY'} {'PLAYER'} {'SIGNED'} {'TEAM'}
Закройте подключение к базе данных.
close(conn)
Этот пример использует файл данных, содержащий спортивные данные на локальном компьютере с Microsoft® SQL Server® устанавливает и экспортирует данные в файл в Microsoft SQL Server с помощью функций массовой вставки.
Подключитесь к настроенному источнику данных JDBC для базы данных Microsoft SQL Server.
datasource = "MSSQLServer_JDBC"; username = "user"; password = "password"; conn = database(datasource,username,password);
Составьте таблицу с именем BULKTEST
использование execute
функция.
execute(conn,['CREATE TABLE BULKTEST (salary ' ... 'decimal(10,2), player varchar(25), signed_date ' ... 'datetime, team varchar(25))'])
Создайте запись данных.
A = {100000.00,'KGreen','06/22/2011','Challengers'};
Разверните A
к набору данных, содержащему 10 000 записей.
A = A(ones(10000,1),:);
Запись данных в файл для функциональности массовой вставки.
Совет
При подключении к базе данных на удаленном компьютере необходимо записать этот файл на удаленный компьютер. Microsoft SQL Server испытывает трудности с чтением файлов, находящихся не на том же компьютере, что и база данных.
fid = fopen('c:\temp\tmp.txt','wt'); for i = 1:size(A,1) fprintf(fid,'%10.2f \t %s \t %s \t %s \n',A{i,1}, ... A{i,2},A{i,3},A{i,4}); end fclose(fid);
Запустите функциональность массовой вставки, используя execute
функция.
execute(conn,['BULK INSERT BULKTEST FROM ' ... '''c:\temp\tmp.txt'' WITH (FIELDTERMINATOR = ''\t'', ' ... 'ROWTERMINATOR = ''\n'')'])
Подтвердите количество переменных в BULKTEST
.
results = fetch(conn,'SELECT * FROM BULKTEST');
results.Properties.VariableNames
ans = 1×4 cell array {'SALARY'} {'PLAYER'} {'SIGNED_DATE'} {'TEAM'}
Закройте подключение к базе данных.
close(conn)
Этот пример использует файл данных, содержащий спортивные данные на локальной машине с MySQL® устанавливает и экспортирует данные в файл в базу данных MySQL с помощью функций массовой вставки.
Подключитесь к настроенному источнику данных JDBC для базы данных MySQL.
datasource = "MySQL_JDBC"; username = "user"; password = "password"; conn = database(datasource,username,password);
Составьте таблицу с именем BULKTEST
использование execute
функция.
execute(conn,['CREATE TABLE BULKTEST (salary decimal, ' ... 'player varchar(25), signed_date varchar(25), ' ... 'team varchar(25))'])
Создайте запись данных.
A = {100000.00,'KGreen','06/22/2011','Challengers'};
Разверните A
к набору данных, содержащему 10 000 записей.
A = A(ones(10000,1),:);
Запись данных в файл для функциональности массовой вставки.
Примечание
MySQL считывает файлы, сохраненные локально, даже если вы подключаетесь к удаленной машине. Поэтому можно записать файл на локальную или удаленную машину.
fid = fopen('c:\temp\tmp.txt','wt'); for i = 1:size(A,1) fprintf(fid,'%10.2f \t %s \t %s \t %s \n', ... A{i,1},A{i,2},A{i,3},A{i,4}); end fclose(fid);
Запустите функцию массовой вставки. Оператор SQL использует оператор LOCAL INFILE
для обработки ошибок. Для получения дополнительной информации об этом операторе см. документацию по базе данных MySQL.
execute(conn,['LOAD DATA LOCAL INFILE ' ... ' ''C:\\temp\\tmp.txt'' INTO TABLE BULKTEST ' ... 'FIELDS TERMINATED BY ''\t'' LINES TERMINATED ' ... 'BY ''\n'''])
Подтвердите количество переменных в BULKTEST
.
results = fetch(conn,'SELECT * FROM BULKTEST');
results.Properties.VariableNames
ans = 1×4 cell array {'SALARY'} {'PLAYER'} {'SIGNED_DATE'} {'TEAM'}
Закройте подключение к базе данных.
close(conn)
close
| database
| execute
| fetch