主要内容

executeSQLScript

在数据库上执行SQL脚本

描述

例子

结果= executeSQLScript (康涅狄格州scriptfile使用数据库连接康涅狄格州返回一个结构数组,其中包含每个执行SQL的结果表(默认情况下)选择SQL脚本文件中。对于任何非选择SQL语句中,对应的表为空。的executeSQLScript函数执行SQL脚本文件中的所有SQL语句。

例子

结果= executeSQLScript (康涅狄格州scriptfile名称,值使用一个或多个名称-值对参数指定其他选项。例如,“DataReturnFormat”、“cellarray”将执行的SQL语句的结果存储为单元格数组。结果存储在数据结构数组的字段。

例子

全部折叠

连接到Microsoft®SQL Server®数据库。然后,运行两个SQL选择SQL脚本文件中的语句compare_sales.sql,导入结果,并进行简单的销售数据分析。该文件按顺序包含两个SQL查询。第一个SQL查询检索美国供应商的产品销售情况,第二个SQL查询检索外国供应商的2022世界杯八强谁会赢?产品销售情况。

使用Windows®身份验证创建到Microsoft SQL Server数据库的ODBC数据库连接。请指定空用户名和密码。

数据源=“MS SQL Server认证”;Conn =数据库(数据源,);

检查数据库连接。如果消息属性为空,则连接成功。

conn.Message
Ans = []

执行SQL脚本。SQL脚本有两个SQL查询,分别从美国和外国供应商检索销售数据。

scriptfile =“compare_sales.sql”;results = executeSQLScript(conn,scriptfile)
结果=1×2包含字段的struct数组:SQLQuery数据报文

executeSQLScript函数中包含两个表的结构数组数据字段。第一个表包含在SQL脚本文件中执行第一个SQL查询的结果。第二个表包含执行第二个SQL查询的结果。

在SQL脚本文件中显示为第二个SQL查询导入的数据的前八行。数据显示了外国供应商的销售业绩。

data = head(结果(2).Data)
data =8×6表产品描述supplierName城市Jan_Sales 2月销售Mar_Sales __________________ ______________________________ ____________________________ _________“维多利亚娃娃”“古怪的小部件”“阿德莱德”1400 1100 981“绘画套装”“了不起的玩具”“伦敦”3000 2400 1800“帆船”“不可思议的机器”“都柏林”3000 2400 1500“弹簧”“洋娃娃的丰富”“伦敦”3000 1500 1000“敞篷车”“不可思议的机器”“都柏林”6000 3100 8800“哈吉”“伟大的泰迪熊公司”“贝尔法斯特”1800 9700 800'Pancakes' 'Aunt Jemimas' 'New York' 3100 9400 1540 'Shawl' 'Indian Export' 'Mumbai' 235 1800 1040

检索表中的变量名。

names = data.Properties.VariableNames
名称=1×6单元格数组{' productDescription}{‘supplierName}{‘城市’}{‘Jan_Sales}{‘Feb_Sales} {' Mar_Sales '}

确定一月份的最高销售额。

马克斯(data.Jan_Sales)
Ans = 6000

关闭数据库连接。

关上(康涅狄格州)

连接到Microsoft®SQL Server®数据库。然后,运行两个SQL选择SQL脚本文件中的语句compare_sales.sql.将SQL查询的结果作为结构导入,并执行简单的销售数据分析。该文件按顺序包含两个SQL查询。第一个SQL查询检索美国供应商的产品销售情况,第二个SQL查询检索外国供应商的2022世界杯八强谁会赢?产品销售情况。

使用Windows®身份验证创建到Microsoft SQL Server数据库的ODBC数据库连接。请指定空用户名和密码。

数据源=“MS SQL Server认证”;Conn =数据库(数据源,);

检查数据库连接。如果消息属性为空,则连接成功。

conn.Message
Ans = []

执行SQL脚本。SQL脚本有两个SQL查询,分别从美国和外国供应商检索销售数据。指定结构作为导入查询结果的数据返回格式。

scriptfile =“compare_sales.sql”;结果= executeSQLScript(conn,scriptfile,...“DataReturnFormat”“结构”
结果=1×2包含字段的struct数组:SQLQuery数据报文

executeSQLScript方法中包含两个结构的结构数组数据字段。第一个结构包含SQL脚本文件中执行第一个SQL查询的结果。第二个结构包含执行第二个SQL查询的结果。

在SQL脚本文件中显示为第二个SQL查询导入的数据。这些数据包括外国供应商的销售业绩。

数据=结果(2)。数据
data =带字段的结构:productDescription: {9×1 cell} supplierName: {9×1 cell} city: {9×1 cell} Jan_Sales: [9×1 double] Feb_Sales: [9×1 double] Mar_Sales: [9×1 double]

确定一月份的最高销售额。

马克斯(data.Jan_Sales)
Ans = 6000

关闭数据库连接。

关上(康涅狄格州)

输入参数

全部折叠

数据库连接,指定为ODBC连接对象或JDBC连接对象创建。数据库函数。

包含一个或多个要运行的SQL语句的SQL脚本文件的名称,指定为字符向量或字符串标量。该文件必须是文本文件,除SQL查询外,还可以包含注释。开始单行注释--.中包含多行注释/ * * /

SQL脚本文件可以包含一个或多个以分号或关键字结束的SQL语句.下面是两个SQL的示例选择语句。

SELECT productDescription, supplierName FROM supplier A, productTable B WHERE A. suppliernumber = B. suppliernumber;SELECT supplierName, Country FROM supplier;

例子:“C: \ \ sql_file.sql工作”

数据类型:字符|字符串

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:results = executeSQLScript(conn,scriptfile,'DataReturnFormat','numeric','ErrorHandling','store')对象中的数字矩阵返回查询结果数据字段结果结构数组,并将任何错误消息存储在消息领域的结果

数据返回格式,指定为由逗号分隔的对组成“DataReturnFormat”其中一个价值观是:

  • “表”

  • “cellarray”

  • “数字”

  • “结构”

可以使用字符向量或字符串标量指定这些值。

“DataReturnFormat”对象的数据类型数据结果结构数组。

例子:“DataReturnFormat”、“结构”返回一个结构数组,其中包含存储在结构中的查询结果。

错误处理,指定为由逗号分隔的对组成“ErrorHandling”其中一个价值观是:

  • “报告”—当SQL语句执行失败时,请停止执行SQL脚本文件中剩余的SQL语句,并在命令行提示错误。

  • “存储”—当SQL语句执行失败时,将错误信息保存在消息字段结果结构数组。

可以使用字符向量或字符串标量指定这些值。

例子:“ErrorHandling”,“报告”在命令行上显示错误消息。

输出参数

全部折叠

SQL脚本文件中执行的SQL语句的查询结果,作为包含这些字段的结构数组返回。

字段名 字段数据类型 字段描述

SQLQuery

特征向量

存储SQL语句或SQL脚本文件中执行的语句。

数据

  • 表(默认)

  • 单元阵列

  • 数字矩阵

  • 结构

存储执行SQL的结果选择语句。

“DataReturnFormat”对象的数据类型数据字段。

为非选择SQL语句,数据field是一个空的double,这意味着执行的SQL查询没有结果。

消息

特征向量

存储执行失败的相应SQL语句的错误消息。

消息属性时,字段才包含错误消息“ErrorHandling”名称-值对参数“存储”

结构数组中的元素数量等于SQL脚本文件中的SQL语句数量。结果(米)控件的执行结果SQL脚本文件中的th SQL语句。如果SQL语句返回查询结果,则结果将存储在结果(M)。数据

有关访问结构数组的详细信息,请参见结构数组

限制

  • 使用executeSQLScript函数将数据导入MATLAB®,特别是当你有长而复杂的SQL查询,很难转换成MATLAB字符向量或字符串标量。的executeSQLScript函数不支持包含连续PL/SQL块的SQL脚本开始结束,例如存储过程定义或触发器定义。然而,executeSQLScript支持表定义。

  • 包含以下任何一个SQL脚本都可能产生意想不到的结果:

    • 没有转义的撇号,包括注释中的撇号。例如,写入字符向量“这是密码”作为“这是密码”

    • 嵌套评论。

  • 包含超过25,000个字符的SQL脚本会导致executeSQLScript函数返回错误。

版本历史

在R2019a中引入

Baidu
map