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
운영게시판
최근게시물
MySQL Q&A 29846 게시물 읽기
No. 29846
[질문]프로시져에서 레코드셋 제정의 관련
작성자
김기철
작성일
2010-11-19 17:11
조회수
8,146

안녕하세요

mysql에서 프로시져를 이용하고있습니다.

커서를 이용해서 해당데이터를 select 된 데이터를 가공해서 다시 recodeset을 내려주고싶습니다.

아무리 방법을 찾아봐도 나오지가 않습니다.

배열같은걸 사용하면 좋을텐데 가능한지요??

아래 소스 첨부합니다.

DELIMITER $$

DROP PROCEDURE IF EXISTS `SP_GAME_ITEM_DROP_RATING`$$

CREATE PROCEDURE `SP_DROP_RATING`(IN _IN_AREA_CODE INT, IN _IN_REQITEMCODE INT, IN _IN_MSEQ INT)
    READS SQL DATA
BEGIN
 
 DECLARE _IS_QUEST_ITEM INT DEFAULT 0;
 DECLARE _IS_WISHLIST_ITEM INT DEFAULT 0;
 DECLARE _IS_COMPASS_USED INT DEFAULT 0;
 
 DECLARE _SET_QUEST_ITEM_BONUS_RATE INT DEFAULT 0;
 DECLARE _SET_WISH_ITEM_BONUS_RATE INT DEFAULT 1;
 
 DECLARE _ITEM_ID INT DEFAULT 0 ;
 DECLARE _ITEM_DEFAULT_DROP_RATE  INT DEFAULT 0;
 DECLARE _QUEST_ITEM_REQ_MAXCNT INT DEFAULT 0;
 DECLARE _QEUST_ITEM_CURR_CNT INT DEFAULT 0;
 
        DECLARE _done INT DEFAULT 0;
        DECLARE drop_list_csr CURSOR FOR
 SELECT
  Item_Id,Compass01,Quest_Item,
  Quest_ItemMaxReqCnt,
  Quest_ItemCurrCnt
  
 FROM DROP_LIST 
 WHERE Area =_IN_AREA_CODE;
        DECLARE CONTINUE HANDLER FOR NOT FOUND SET _done=1;
 
 
 
 SET @_ITEM_ID = 0;
 SET @_ITEM_DEFAULT_DROP_RATE = 0;
 SET @_SET_QUEST_ITEM_BONUS_RATE = 0;
 
 OPEN drop_list_csr;
 
 DROP_LIST: LOOP
 
  FETCH drop_list_csr INTO _ITEM_ID, _ITEM_DEFAULT_DROP_RATE, _IS_QUEST_ITEM, _QUEST_ITEM_REQ_MAXCNT, _QEUST_ITEM_CURR_CNT ;
  
  IF _done = 1 THEN
   LEAVE DROP_LIST;
  END IF;
   
  IF _IS_QUEST_ITEM  = 1 AND _QUEST_ITEM_REQ_MAXCNT > _QEUST_ITEM_CURR_CNT AND  _IN_AREA_CODE = 1 THEN
   SET _SET_QUEST_ITEM_BONUS_RATE = 5;
  ELSEIF _IS_QUEST_ITEM  = 1 AND _QUEST_ITEM_REQ_MAXCNT > _QEUST_ITEM_CURR_CNT AND  _IN_AREA_CODE = 2 THEN
   SET _SET_QUEST_ITEM_BONUS_RATE = 4;
  ELSEIF _IS_QUEST_ITEM  = 1 AND _QUEST_ITEM_REQ_MAXCNT > _QEUST_ITEM_CURR_CNT AND  _IN_AREA_CODE >= 3 THEN
   SET _SET_QUEST_ITEM_BONUS_RATE = 3;
  ELSE
   SET _SET_QUEST_ITEM_BONUS_RATE = 0;
  END IF;
  SET @_ITEM_ID = _ITEM_ID;
  SET @_ITEM_DEFAULT_DROP_RATE = _ITEM_DEFAULT_DROP_RATE;
  SET @_SET_QUEST_ITEM_BONUS_RATE = _SET_QUEST_ITEM_BONUS_RATE;
  
  SELECT @_ITEM_ID, @_ITEM_DEFAULT_DROP_RATE, @_SET_QUEST_ITEM_BONUS_RATE; 
  
 
 END LOOP DROP_LIST;
 
 CLOSE drop_list_csr;
 
 
 
 
    END$$

DELIMITER ;

[Top]
No.
제목
작성자
작성일
조회
29851쿼리 질문입니다 [1]
닝구
2010-11-25
7142
29850MySQL 로그가 많이 쌓여 삭제하려고 하는데요.... [1]
김태희
2010-11-24
8346
29847DB에 이미지 파일 경로 저장하기
최종훈
2010-11-21
9630
29846[질문]프로시져에서 레코드셋 제정의 관련
김기철
2010-11-19
8146
29845서버쿼리에서 받은 값을 받아서 업데이트....
슝슝이
2010-11-19
7428
29844mysql , jsp 연동 성능 질문 입니다. [1]
박기덕
2010-11-19
7465
29843mysql강제종료하는 방법 [2]
이선주
2010-11-17
10182
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.025초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다