Вызов хранимой процедуры с аргументом типа таблицы
Как вызвать хранимую процедуру, которая принимает табличный тип в качестве аргумента из 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"