主要内容

runstoredprocedure

使用或不使用输入和输出参数调用存储过程

描述

此函数调用一个没有输入参数、没有输出参数或输入和输出参数的任何组合的存储过程。在数据库中定义并实例化此存储过程。

如果您使用JDBC驱动程序连接到数据库,则可以使用此函数。详细信息请参见连接数据库.如果您正在使用本机ODBC接口连接到数据库,请使用执行调用存储过程。

例子

结果= runstoredprocedure (康涅狄格州spname调用存储过程spname使用数据库连接康涅狄格州结果是合乎逻辑的1如果存储过程返回一个数据集。否则,结果是合乎逻辑的0

例子

结果= runstoredprocedure (康涅狄格州spnameinputargs调用接受一个或多个输入参数的存储过程inputargs

例子

结果= runstoredprocedure (康涅狄格州spnameinputargsoutputtypes通过指定输出实参数据类型调用返回输出实参的存储过程outputtypes结果包含一个或多个输出参数的单元格数组。

例子

全部折叠

定义名为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;选择@productnoproductNumber, @productdesc = productDescription FROMproductTable在哪里unitCost>@minUnitCostunitCost<@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只返回数据集中的最后一行。

关闭数据库连接康涅狄格州

关上(康涅狄格州)

输入参数

全部折叠

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

存储过程名,指定为字符向量,其中包含在数据库中定义和实例化的存储过程的名称。

数据类型:字符

输入参数,指定为存储过程的每个输入参数的一个或多个值的单元格数组。输入参数只能是基本的数据类型,比如double、字符向量、逻辑类型等等。

数据类型:细胞

输出类型,指定为存储过程输出参数的一个或多个Java数据类型的单元格数组。有些JDBC驱动程序不支持全部java.sql.Types.请参考JDBC驱动程序文档以查找受支持的类型。将它们与存储过程中的数据类型匹配。

例子:{java.sql.Types.NUMERIC}

数据类型:细胞

输出参数

全部折叠

存储过程结果,作为逻辑数组或单元格数组返回。

runstoredprocedure返回一个逻辑1调用存储过程时返回一个数据集。否则,runstoredprocedure返回一个逻辑0.如果存储过程返回数据集,则使用执行而且获取调用存储过程并检索数据集。详细信息请参见调用返回数据的存储过程

runstoredprocedure为存储过程的输出参数指定一个或多个输出Java数据类型时,返回单元格数组。使用单元格数组索引检索输出参数值。

版本历史

在R2006b中引入

Baidu
map