2017-10-31 1 views
0

SQL Server에서 원시 형식 대신 입력으로 데이터 테이블을받는 프로 시저를 만들 수 있습니다. 아래 예와 같이 값 목록을 전달할 수 있습니다.IIB에서 프로 시저에 입력으로 datatable을 전달하는 방법은 무엇입니까?

CREATE PROCEDURE GetFiles (IN idFile INTEGER) 
LANGUAGE DATABASE 
DYNAMIC RESULT SETS 1 
EXTERNAL NAME "dbo.SP_S_FILE"; 

하지만 그것에 데이터 테이블 대신 원시 값과 어떻게 통과 할 수 있다면 나는 아무 생각이 : IBM IIB에

--Create Type 
CREATE TYPE dbo.NamesList 
AS TABLE 
(
    fullName VARCHAR(50) 
); 
--Create Procedure 
CREATE PROCEDURE dbo.DoSomethingWithNames 
    @List AS dbo.NamesList READONLY 
AS 
BEGIN 
    SET NOCOUNT ON; 

    SELECT fullName FROM @List; 
END 

--Example of SQL Call 
--Set variable values 
DECLARE @NL NamesList; 
INSERT @NL VALUES ('Bill'),('Michael'),('Paul'),('William'),('Kate') 
--Call procedure 
Exec DoSomethingWithNames @NL 

이 같은 코드로 저장 프로 시저를 호출 할 수 있습니다. 어떤 아이디어?

감사

답변

0

당신은 PASTHRU statement 봤어? 나는 당신이 이전에 묻고있는 것을 시도하지 않았지만, 문서화는 유망한 것으로 들린다 (한계가 당신을 사용하는 것을 방해하지 않는다고 가정 할 때).

  • 만 입력 매개 변수를 사용할 수 있습니다

    PASSTHRU은 여전히 ​​경우 저장 프로 시저를 호출하는 데 사용할 수 있습니다.

  • 단일 결과 집합 만 지원됩니다. PASSTHRU 가 (당신이 예를 들어, 출력 매개 변수를 사용할 수 없습니다) 제한을 부과하기 때문에

당신이이 기준을 충족하지 않는 경우는 CALL 문을 사용합니다.

관련 문제