使用表类型参数调用存储过程

时间:2016-11-29 15:34:28

标签: sql-server stored-procedures otl

如何从OTL调用将表类型作为参数的存储过程?

以下是我的数据库的样子:

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

DROP PROCEDURE IF Exists dbo.spTest
DROP TYPE IF Exists dbo.List

--- Create UDTT
CREATE TYPE dbo.List as TABLE
(
    k varchar(32) NOT NULL,
    v float NOt NULL
)
GO

CREATE PROCEDURE dbo.spTest
    @list List READONLY 
AS
    BEGIN
        SELECT * from @list     
    END
GO

--- Call spTEST

DECLARE @l List
INSERT INTO @l(k, v)
VALUES ('A', 1.0);

EXECUTE [dbo].[spTest]
      @list = @l
GO

我尝试用C ++编写代码,但我不确定如何创建list参数或指定列表类型

otl_stream i(50, // buffer size
    "{call dbo.spTest("
    " :list<char[32],in> "
    ")}",    
    db, // connect object
  );

更新:OTL Skuchin的审核员在私人电子邮件中告诉我,这是不可能的。 “OTL不支持这些。你可以做的最好的事情就是通过常规插入将一堆行插入临时表/表变量并在SP中读取它”

0 个答案:

没有答案