runstoredprocedure
使用或不使用输入和输出参数调用存储过程
语法
描述
此函数调用一个没有输入参数、没有输出参数或输入和输出参数的任何组合的存储过程。在数据库中定义并实例化此存储过程。
如果您使用JDBC驱动程序连接到数据库,则可以使用此函数。详细信息请参见连接数据库.如果您正在使用本机ODBC接口连接到数据库,请使用执行
调用存储过程。
例子
调用不带输入输出参数的存储过程
定义名为create_table
创建一个名为test_table
通过执行这段代码。此过程没有输入或输出参数。这段代码假设您正在使用微软®SQL Server®数据库。
创建过程create_table作为开始——设置nocount在添加来防止额外的结果集从——干扰选择语句。集NOCOUNT在;创建表格test_table(CATEGORY_ID添加整数身份主要的关键, CATEGORY_DESCCHAR (50)不零);最后去
创建一个Microsoft SQL Server数据库连接康涅狄格州
使用JDBC驱动程序。详细信息请参见连接数据库.然后,调用存储过程create_table
使用数据库连接康涅狄格州
.
结果= runstoredprocedure(conn,“create_table”)
结果= 0
结果
返回0因为调用create_table
不返回数据集。
在数据库中检查一个名为test_table
.
关闭数据库连接康涅狄格州
.
关上(康涅狄格州)
用输入参数调用存储过程
定义名为insert_data
将类别描述插入到名为行test_create
通过执行这段代码。这个过程有一个输入参数数据
.这段代码假设您正在使用Microsoft SQL Server数据库。
创建过程insert_data@data varchar(50) AS BEGIN—SET NOCOUNT在添加来防止额外的结果集从——干扰选择语句。集NOCOUNT在;插入成行test_create(CATEGORY_DESC)VALUES (@data)结束
创建一个Microsoft SQL Server数据库连接康涅狄格州
使用JDBC驱动程序。详细信息请参见连接数据库.然后,调用存储过程insert_data
使用数据库连接康涅狄格州
类别描述苹果
作为输入参数。
input = {“苹果”};结果= runstoredprocedure(conn,“insert_data”inputarg)
结果= 0
结果
返回0因为调用insert_data
不返回数据集。
表行test_create
添加列所在的行CATEGORY_ID添加
=1
这一列CATEGORY_DESCRIPTION
=苹果
.
CATEGORY_ID添加
是表的主键吗行test_create
.这个主键会自动递增。CATEGORY_ID添加
=1
当调用insert_data
第一次。
关闭数据库连接康涅狄格州
.
关上(康涅狄格州)
调用带有输出参数的存储过程
定义名为maxDecVolume
通过执行这段代码选择12月份的最大销售量。这个过程有一个输出参数数据
并且没有输入参数。这段代码假设您正在使用Microsoft SQL Server数据库。
创建过程maxDecVolume@ data int输出作为开始——设置nocount在添加来防止额外的结果集从——干扰选择语句。集NOCOUNT在;选择@ data=马克斯(12月)从salesVolume最后去
创建一个Microsoft SQL Server数据库连接康涅狄格州
使用JDBC驱动程序。详细信息请参见连接数据库.然后,使用以下命令调用存储过程:
数据库连接
康涅狄格州
存储过程
maxDecVolume
空括号表示没有输入参数
数字Java®数据类型
outputtype
outputtype = {java.sql.Types.NUMERIC};结果= runstoredprocedure(conn,“maxDecVolume”[], outputtype)
results = [1x1 java.math.BigDecimal]
结果
返回一个单元格数组,其中包含以Java十进制数据类型表示的最大销售量。
中显示的值结果
.
结果{1}
Ans = 35000
12月份的最大销售量是3.5万辆。
关闭数据库连接康涅狄格州
.
关上(康涅狄格州)
用输入和输出参数调用存储过程
定义名为getSuppCount
通过执行此代码计算指定城市的供应商数量。这个过程有一个输入参数某个
还有一个输出参数suppCount
.这段代码假设您正在使用Microsoft SQL Server数据库。
创建过程getSuppCount(@cityName varchar(20), @ supcount int .输出)作为开始——设置nocount在添加来防止额外的结果集从——干扰选择语句。集NOCOUNT在;选择@suppCount=计数(supplierNumber)从供应商在哪里城市=@cityName;最后去
创建一个Microsoft SQL Server数据库连接康涅狄格州
使用JDBC驱动程序。详细信息请参见连接数据库.然后,调用存储过程getSuppCount
使用数据库连接康涅狄格州
.输入参数inputarg
单元格数组是否包含字符向量“纽约”
.输出Java数据类型outputtype
是数字。
input = {“纽约”};outputtype = {java.sql.Types.NUMERIC};结果= runstoredprocedure(conn,“getSuppCount”、inputarg outputtype)
results = [1x1 java.math.BigDecimal]
结果
是一个单元格数组,其中包含作为Java十进制数据类型的供应商计数。
中显示的值结果
.
结果{1}
Ans = 6.0000
纽约有六家供应商。
关闭数据库连接康涅狄格州
.
关上(康涅狄格州)
调用具有多个输入和输出参数的存储过程
定义名为2022世界杯八强谁会赢?productsWithinUnitCost
它通过执行此代码返回单位成本在指定范围内的产品的产品编号和描述。2022世界杯八强谁会赢?这个过程有两个输入参数minUnitCost
而且maxUnitCost
.这个过程有两个输出参数productno
而且productdesc
.这段代码假设您正在使用Microsoft SQL Server数据库。
创建过程2022世界杯八强谁会赢?productsWithinUnitCost(@minUnitCost INT, @maxUnitCost INT, @productno INT输出, @productdesc VARCHAR(50)输出)作为开始-设置NOCOUNT在添加来防止额外的结果集从——干扰选择语句。集NOCOUNT在;选择@productno=productNumber, @productdesc = productDescription FROMproductTable在哪里unitCost>@minUnitCost和unitCost<@maxUnitCost最后去
创建一个Microsoft SQL Server数据库连接康涅狄格州
使用JDBC驱动程序。详细信息请参见连接数据库.然后,使用以下命令调用存储过程:
数据库连接
康涅狄格州
存储过程
2022世界杯八强谁会赢?productsWithinUnitCost
输入参数
inputargs
指定19到21之间的单位成本输出Java数据类型
outputtypes
为产品编号和描述指定数字和字符串数据类型
Inputargs = {19,21};outputtypes = {java.sql.Types.NUMERIC,java.sql.Types.VARCHAR};结果= runstoredprocedure(conn,“2022世界杯八强谁会赢?productsWithinUnitCost”,...inputargs outputtypes)
results = [1x1 java.math.BigDecimal]'Snacks'
结果
返回一个单元格数组,其中包含产品编号(Java十进制数据类型)和产品描述(字符串)。
中显示产品编号结果
.
结果{1}
Ans = 15
产品号为15的产品的单位成本在19到21之间。
中显示产品描述结果
.
结果{2}
零食
产品号为15的产品有产品说明零食
.
在这里,较窄的单位成本范围只返回一种产品。如果单位成本范围较宽,则可能有多个产品满足这一条件。若要返回包含众多产品的数据集,请使用2022世界杯八强谁会赢?执行
而且获取
调用此存储过程。否则,runstoredprocedure
只返回数据集中的最后一行。
关闭数据库连接康涅狄格州
.
关上(康涅狄格州)
输入参数
spname
- - - - - -存储过程名称
特征向量
存储过程名,指定为字符向量,其中包含在数据库中定义和实例化的存储过程的名称。
数据类型:字符
inputargs
- - - - - -输入参数
单元阵列
输入参数,指定为存储过程的每个输入参数的一个或多个值的单元格数组。输入参数只能是基本的数据类型,比如double、字符向量、逻辑类型等等。
数据类型:细胞
outputtypes
- - - - - -输出类型
单元阵列
输出类型,指定为存储过程输出参数的一个或多个Java数据类型的单元格数组。有些JDBC驱动程序不支持全部java.sql.Types
.请参考JDBC驱动程序文档以查找受支持的类型。将它们与存储过程中的数据类型匹配。
例子:{java.sql.Types.NUMERIC}
数据类型:细胞
输出参数
结果
—存储过程结果
逻辑|单元格数组
存储过程结果,作为逻辑数组或单元格数组返回。
runstoredprocedure
返回一个逻辑1
调用存储过程时返回一个数据集。否则,runstoredprocedure
返回一个逻辑0
.如果存储过程返回数据集,则使用执行
而且获取
调用存储过程并检索数据集。详细信息请参见调用返回数据的存储过程.
runstoredprocedure
为存储过程的输出参数指定一个或多个输出Java数据类型时,返回单元格数组。使用单元格数组索引检索输出参数值。
版本历史
在R2006b中引入
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。