テーブル型を引数として取るストアド プロシージャを 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++ でコードを作成しようとしましたが、リスト引数の作成方法やリスト タイプの指定方法がわかりません
otl_stream i(50, // buffer size
"{call dbo.spTest("
" :list<char[32],in> "
")}",
db, // connect object
);
更新: OTL Skuchin の監査人は、私的な電子メールで、あり得ないことを教えてくれました。「OTLはそれらをサポートしていません。できる最善の方法は、通常の挿入を介して一時テーブル/テーブル変数に一連の行を挿入し、SPでそれを読み取ることです」