database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
ㆍDB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
DB2 Q&A 3047 게시물 읽기
No. 3047
DB2 프로시저 작성시 결과값 리턴
작성자
DB2초보
작성일
2011-04-15 09:38
조회수
7,272

CREATE PROCEDURE MEMBER ( IN M_ID VARCHAR(10) )

LANGUAGE SQL

RESULT SET 1

 

P1 : BEGIN

     DECLARE C1 CURSOR  WITH RETURN TO CLIENT FOR

      SELECT M_ID, M_NAME

      FROM    MEMBER

      WHERE M_ID = M_ID

OPEN C1;

END P1

 

이렇게 작성된 프로시저가 있습니다...

DB2 프로시저를 콜 해서 해당 쿼리의 RESULT 값을 리턴 받고 싶은데요...

정보가 많지 않아 저렇게 하는것이 맞는지 모르겠습니다.

테스트를 해봐도 RESULT 0 이라고 나오니 동작을 하지는 않는것 같은데요

 

프로그램에서 값을 찍어보면 마지막 값 1개만 가져오는 것 같습니다.

프로그램 단에서 해당 쿼리의 데이터 값을 리턴받으려면 어떻게 프로시저를 고쳐야 할까요 ㅡOㅡ;;;

 

이 글에 대한 댓글이 총 1건 있습니다.

 값을 리턴받고 싶으시면

  • Procedure를 값을  out으로 빼내도록 하시거나
  • Procedure가 아닌 function으로

만드셔야 할 것 같은데, 

님께서 올리신 프로그램에는 두 가지 경우를 다 피하셨네요. ^^

call 하는 곳에서 어떻게 사용하실지에 따라 out으로 빼던지, function으로 바꾸시면 될 것 같습니다. 아래에 간단한 function sample code를 덧붙입니다.

CREATE FUNCTION getNameById( p_Id INTEGER )

    LANGUAGE SQL

    DETERMINISTIC

    RETURNS VARCHAR(256)

    NO EXTERNAL ACTION

------------------------------------------------------------------------

-- SQL UDF (Scalar)

------------------------------------------------------------------------

F1: BEGIN ATOMIC

    DECLARE name varchar(256);--

    SET name = ( SELECT "Name" FROM "t_User" WHERE "Id" = p_Id );--

    RETURN name;--

END

;

 

call 할 때는 select 문 등에서 바로 부를 수 있습니다.

select getNameById ( 1234 ) from sysibm.dummy1 ;

 

참고로 결과를 0으로 찍는 것은 producedure가 돌았고 그에 대한 결과구요, procedure에서 리턴하는 값은 아닌거로 알고 있습니다. 

짝퉁헤리포터(bh1004)님이 2011-04-16 06:57에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
3050table schema 알아내기 [3]
db2 어려
2011-04-18
6397
3049디비 서버 교체하려고 합니다.. 질문좀..(왕초보) [1]
김성오
2011-04-16
5410
3048월단위, 주단위 조회 쿼리,, [6]
purmir
2011-04-15
8347
3047DB2 프로시저 작성시 결과값 리턴 [1]
DB2초보
2011-04-15
7272
3046Unique Constraint VS Unique Index [1]
짝퉁헤리포터
2011-04-14
6152
3045질문 드립니다. [1]
purmir
2011-04-08
5262
3044기간내에 해당하는 날짜와 그 정보를 가져오고 합니다. [2]
purmir
2011-04-08
5802
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.048초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다