2010-05-17 3 views
1

아래에 저장 프로 시저가 있습니다. 배우가 연기 한 모든 영화의 이름을 반환하는 절차입니다.Stored Procedure에서의 단점 MySql - 변수에 대해 여러 값을 반환하는 방법?

Create Procedure ActorMovies(
    In ScreenName varchar(50), 
    OUT Title varchar(50) 
) 
    BEGIN 
    Select MovieTitle INTO Title 
    From Movies Natural Join Acts 
    where Acts.ScreenName = 'ScreenName '; 
End; 

내가 만들 전화 ActorMovies ('조니 뎁', @ 동영상) 같은 전화;

Select @move; 

내가 얻을 결과는 correct.I가 반환 될 조니 뎁에 의해 행동 영화의 집합을 기대하고 있지 않은 널 세트입니다. 왜 이런 일이 일어나고 있는지 확실하지 않습니다.

답변

1

where 절에서 작은 따옴표를 ScreenName으로 제거하고 (열 이름의 모호성을 피하기 위해 이름을 바꿀 수 있습니다).

+1

OK - MySQL에서 프로 시저의 결과 집합을 반환하지 못하는 것 같습니다 (일부 SQL 언어는 이런 종류의 작업을 허용합니다). 그 결과로 무엇을하고 싶습니까? 그냥 고객에게 돌려 주시겠습니까? OUT 매개 변수와 INTO 절을 제거하면 행운을 빕니다. – psmears

0
Select MovieTitle AS Title From Movies Natural Join Acts  where Acts.ScreenName = 'ScreenName '; 

이렇게하면 문제가 해결됩니다. INTO는 단일 값이 필요할 때 OUT 매개 변수로 사용됩니다. 여기에 세트를 가져 오는 중입니다.

관련 문제