2017-10-17 15 views
1

코딩을 시작한 스토어드 프로 시저가 있으며 값을 반환해야합니다. SQL Server에서 반환 할 변수의 SELECT 만 할 수 있습니다. 그러나 이것은 Teradata에서 작동하지 않는 것으로 보이며이를 수행하는 방법에 대한 유사한 예제를 찾지 못했습니다.Teradata의 저장 프로 시저 내에서 출력 할 변수를 선택하십시오.

STATEMENT 2: REPLACE failed. Failed [5526 : HY000] Stored Procedure is not created/replaced due to error(s).{Nested Failure Msg [5526 : HY000] SPL1045:E(L10), Invalid or missing INTO clause.}

가 나는 또한 절차에 OUT 변수를 추가하는 시도하지만 작업 중 하나를하지 않았다 :와

REPLACE PROCEDURE sp_Get_MyValue(mytestvarout VARCHAR(40)) 
BEGIN 
DECLARE mytestvar VARCHAR(40); 
SELECT mycolumn INTO mytestvar FROM MyTable; 
END; 

을 나는이 오류가

REPLACE PROCEDURE sp_Get_MyValue() 
BEGIN 
DECLARE mytestvar VARCHAR(40); 
SELECT mycolumn INTO mytestvar FROM MyTable; 
SELECT mytestvar; 
END; 

: 여기 내 저장 프로 시저입니다 이 오류 :

Executed as Single statement. Failed [5531 : HY000] Named-list is not supported for arguments of a procedure. Elapsed time = 00:00:00.079

답변

3

가 정의하고 OUT 변수해야 하나의 행을 반환하고 그것에 값을 할당하려면 :

REPLACE PROCEDURE sp_Get_MyValue(OUT mytestvarout VARCHAR(40)) 
BEGIN 
    DECLARE mytestvar VARCHAR(40); 
    SELECT mycolumn INTO mytestvar FROM MyTable; 
    SET mytestvarout = mytestvar; 
END; 

당신이 더미 커서의 종류를 정의 할 필요가 결과 집합을 반환하려면을 (

:-) 표준 SQL을 비난

Returning Result Sets from a Stored Procedure

+0

이 오류가 계속 발생합니다. 프로 시저 인수에 대해 명명 된 목록이 지원되지 않습니다. – Russ960

+1

매개 변수 이름으로 호출해야합니다 :'CALL sp_Get_MyValue (whatever)'(일반적으로'whatever' 대신 실제 변수 이름을 사용합니다.) – dnoeth

+0

감사합니다. Noob 오류가 내 부분에 있습니다. 그게 효과가 있었어! – Russ960