글
Technical Article/펌 2005. 9. 22. 11:49OUTPUT과 RETURN의 차이점.
OUTPUT 사용할때와 안사용할때의 차이점은? 이지헌 / hunt33
안녕하세요
CREATE PROCEDURE Test1
as
select Max(lk_no)+1
from LoanKind
exec Test1
이거랑
CREATE PROCEDURE Test2
@Code int OUTPUT
as
select @Code=Max(lk_no)+1
from LoanKind
declare @Code int
exec Test2 @Code output
select @Code
의 차이점은 모죠?
퀴리문석기에서 어차피 결과는 똑같이 나오는데 왜 OUTPUT을 사용하는거죠?
2002-11-15 오전 9:50:49 / 번호: 32126 / 평점: (-)
Re: 저의 생각 입니다.... 박진호 / pjh1365
제 같은 경우는 output 를 사용하는 경우는 배치 작업을 할 경우
그 결과 값이 정상적으로 처리 되었는지를 확인하기 위해서 많이 사용합니다.
간단한 프로시져는 그냥 작업을 합니다
또하나 output 을 사용해서 원하는 값만을 간단히 구할수도 있으니 좋구요
아니면 값을 하나씩 다시 패치 해야 하는 번거러움이 있습니다.
그래서 제 경우는 결과 값을 꼭 구해야 하는 것은 output 문장을 사용합니다.
이건 제 경우 입니다.
정확히 아시는 분 다시 한번 부탁 합니다.
2002-11-15 오전 11:16:36 / 번호: 32132 / 평점: (-)
Re: OUTPUT 파라미터와 return값, 레코드셋의 차이 이윤호 / nawhat
sp를 작성중에 내부에서 Select 하시는 경우는
그 결과값이 하나라고 하더라도 레코드셋으로 반환됩니다.
return 값으로 사용할 수 있는 것은 정수형뿐이고요.
한번 sp 실행에 하나의 값만 반환합니다.
OUTPUT 파라미터의 경우는 여러 타입으로 반환가능하고,
한번 sp 실행에 파라미터를 여러개 사용한다면 그 개수만큼 반환값을 얻을 수 있죠.
QA에서 사용하실때는 그 차이를 크게 못느끼실 수 있지만, ADO의 COMMAND 를 사용해서
호출하는 경우에 그 차이는 큽니다.
일단 레코드셋을 리턴하는 경우에는 레코드셋을 close해야만 return값과 output을 받을 수 있고요.(ADO의 경우)
처음 예시로 주신 방법으로 사용한다면 레코드셋에서 값을 추출해야 사용할 수 있게되죠.
반면에, OUTPUT 파라미터와 return 값은 레코드셋에서의 추출없이 바로 변수로 사용가능합니다.
단 return값은 정수형으로밖에 반환되지 않으며, 한번에 하나의 값밖에 얻을 수 없습니다.
저의 경우 return값은 sp의 성공여부나 에러발생시 에러번호를 리턴하고, OUTPUT은 한 레코드 정보만 받을때 사용하고요, 레코드셋이 필요한 경우에는 레코드셋을 반환시킵니다.
안녕하세요
CREATE PROCEDURE Test1
as
select Max(lk_no)+1
from LoanKind
exec Test1
이거랑
CREATE PROCEDURE Test2
@Code int OUTPUT
as
select @Code=Max(lk_no)+1
from LoanKind
declare @Code int
exec Test2 @Code output
select @Code
의 차이점은 모죠?
퀴리문석기에서 어차피 결과는 똑같이 나오는데 왜 OUTPUT을 사용하는거죠?
2002-11-15 오전 9:50:49 / 번호: 32126 / 평점: (-)
Re: 저의 생각 입니다.... 박진호 / pjh1365
제 같은 경우는 output 를 사용하는 경우는 배치 작업을 할 경우
그 결과 값이 정상적으로 처리 되었는지를 확인하기 위해서 많이 사용합니다.
간단한 프로시져는 그냥 작업을 합니다
또하나 output 을 사용해서 원하는 값만을 간단히 구할수도 있으니 좋구요
아니면 값을 하나씩 다시 패치 해야 하는 번거러움이 있습니다.
그래서 제 경우는 결과 값을 꼭 구해야 하는 것은 output 문장을 사용합니다.
이건 제 경우 입니다.
정확히 아시는 분 다시 한번 부탁 합니다.
2002-11-15 오전 11:16:36 / 번호: 32132 / 평점: (-)
Re: OUTPUT 파라미터와 return값, 레코드셋의 차이 이윤호 / nawhat
sp를 작성중에 내부에서 Select 하시는 경우는
그 결과값이 하나라고 하더라도 레코드셋으로 반환됩니다.
return 값으로 사용할 수 있는 것은 정수형뿐이고요.
한번 sp 실행에 하나의 값만 반환합니다.
OUTPUT 파라미터의 경우는 여러 타입으로 반환가능하고,
한번 sp 실행에 파라미터를 여러개 사용한다면 그 개수만큼 반환값을 얻을 수 있죠.
QA에서 사용하실때는 그 차이를 크게 못느끼실 수 있지만, ADO의 COMMAND 를 사용해서
호출하는 경우에 그 차이는 큽니다.
일단 레코드셋을 리턴하는 경우에는 레코드셋을 close해야만 return값과 output을 받을 수 있고요.(ADO의 경우)
처음 예시로 주신 방법으로 사용한다면 레코드셋에서 값을 추출해야 사용할 수 있게되죠.
반면에, OUTPUT 파라미터와 return 값은 레코드셋에서의 추출없이 바로 변수로 사용가능합니다.
단 return값은 정수형으로밖에 반환되지 않으며, 한번에 하나의 값밖에 얻을 수 없습니다.
저의 경우 return값은 sp의 성공여부나 에러발생시 에러번호를 리턴하고, OUTPUT은 한 레코드 정보만 받을때 사용하고요, 레코드셋이 필요한 경우에는 레코드셋을 반환시킵니다.

RECENT COMMENT