execute

Выполните оператора SQL с помощью реляционного подключения к базе данных

Описание

пример

execute(conn,sqlquery) выполняет SQL-запрос, содержащий не- SELECT Оператор SQL при помощи реляционного подключения к базе данных.

пример

execute(conn,pstmt) выполняет инструкцию SQL, которая содержит оператора, отличную от SELECT Оператор SQL при помощи реляционного подключения к базе данных.

Примеры

свернуть все

Используя реляционное соединение с базой данных, создайте и выполните SELECT SQL- оператора, который удаляет таблицу базы данных.

Этот пример использует базу данных Microsoft ® SQL Server ® Version 11.00.2100 и 11.00.5058 драйверов Microsoft SQL Server.

Создайте подключение базы данных к базе данных 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 таблица базы данных.

data = sqlread(conn,tablename);

Удалите patients таблица базы данных с использованием execute функция.

sqlquery = ['DROP TABLE ' tablename];
execute(conn,sqlquery)

Закройте подключение к базе данных.

close(conn)

Работа с Microsoft® SQL Server® запустите хранимую процедуру при помощи собственного подключения к базе данных ODBC conn.

Задайте хранимую процедуру с именем create_table который создает таблицу с именем test_table путем выполнения следующего кода. Эта процедура не имеет никаких входных или выходных аргументов. Код предполагает, что вы используете базу данных Microsoft SQL Server.

CREATE PROCEDURE create_table 
	
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

CREATE TABLE test_table
	 (
		CATEGORY_ID     INTEGER     IDENTITY PRIMARY KEY,
		CATEGORY_DESC   CHAR(50)    NOT NULL
        );
	
END
GO

Подключиться к базе данных Microsoft SQL Server. Этот код принимает, что вы соединяетесь с источником данных с именем MS SQL Server с именем пользователя и паролем.

conn = database('MS SQL Server','username','pwd');

Вызовите хранимую процедуру create_table.

execute(conn,'create_table')

Создайте инструкцию SQL для вставки данных из MATLAB ® в базу данных Microsoft ® SQL Server ® с помощью подключения к базе данных JDBC. Используйте INSERT SQL- оператора для SQL-запроса. Выполните подготовленные операторов SQL и отобразите результаты.

Создайте соединение базы данных JDBC с базой данных SQL Server с помощью проверки подлинности Windows ®. Укажите пустые имя пользователя и пароль .

datasource = 'MSSQLServerJDBCAuth';
conn = database(datasource,'','');

Импортируйте данные из базы данных с помощью sqlread функция. Отображение последних нескольких строк данных в таблице базы данных inventoryTable.

tablename = "inventoryTable";
data = sqlread(conn,tablename);
tail(data,3)
ans=3×4 table
    productNumber    Quantity    Price         inventoryDate     
    _____________    ________    _____    _______________________

         11             567         0     {'2012-09-11 00:30:24'}
         12            1278         0     {'2010-10-29 18:17:47'}
         13            1700      14.5     {'2009-05-24 10:58:59'}

Создайте оператора SQL для вставки данных с помощью подключения к базе данных JDBC. Вопросительные знаки в INSERT SQL- оператора указывает, что это подготовленный SQL- оператора. Этот оператор вставляет данные из MATLAB в таблицу базы данных inventoryTable.

query = "INSERT INTO inventoryTable VALUES(?,?,?,?)";
pstmt = databasePreparedStatement(conn,query)
pstmt = 
  SQLPreparedStatement with properties:

           SQLQuery: "INSERT INTO inventoryTable values(?,?,?,?)"
     ParameterCount: 4
     ParameterTypes: ["numeric"    "numeric"    "numeric"    "string"]
    ParameterValues: {[]  []  []  []}

pstmt является SQLPreparedStatement объект со следующими свойствами:

  • SQLQuery - Подготовленный SQL запрос оператора

  • ParameterCount - Количество параметров

  • ParameterTypes - Типы параметров

  • ParameterValues - Значения параметров

Привязка значений параметров в подготовленных SQL оператора. Выберите все параметры в SQL- операторов, подготовленных с помощью их числовых индексов. Укажите значения для номера продукта, количества, цены и даты инвентаризации. Соответствовать формату дат в базе данных. The bindParamValues функция обновляет значения в ParameterValues свойство pstmt объект.

selection = [1 2 3 4];
values = {20,1000,55,"2019-04-25 00:00:00.000"};
pstmt = bindParamValues(pstmt,selection,values)
pstmt = 
  SQLPreparedStatement with properties:

           SQLQuery: "INSERT INTO inventoryTable values(?,?,?,?)"
     ParameterCount: 4
     ParameterTypes: ["numeric"    "numeric"    "numeric"    "string"]
    ParameterValues: {[20]  [1000]  [55]  ["2019-04-25 00:00:00.000"]}

Вставьте данные из MATLAB в базу данных с помощью связанных значений параметров. Выполните SQL- INSERT оператор с использованием execute функция.

execute(conn,pstmt)

Отобразите вставленные данные в таблице базы данных inventoryTable. Последняя строка таблицы содержит вставленные данные.

tablename = "inventoryTable";
data = sqlread(conn,tablename);
tail(data,4)
ans=4×4 table
    productNumber    Quantity    Price           inventoryDate       
    _____________    ________    _____    ___________________________

         11             567         0     {'2012-09-11 00:30:24'    }
         12            1278         0     {'2010-10-29 18:17:47'    }
         13            1700      14.5     {'2009-05-24 10:58:59'    }
         20            1000        55     {'2019-04-25 00:00:00.000'}

Закройте подготовленные SQL- оператора и подключение к базе данных.

close(pstmt)
close(conn)

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

свернуть все

Подключение к базе данных, заданное как ODBC connection объект или JDBC connection объект, созданный с использованием database функция.

Оператор SQL, заданный как вектор символов или строковый скаляр. Инструкция SQL может быть любой допустимой операцией не SELECT SQL- оператора.

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

Дополнительные сведения о языке запросов SQL см. в руководстве SQL.

Пример: 'DROP TABLE patients'

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

SQL- оператора, заданные как SQLPreparedStatement объект.

Введенный в R2018b