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 30193 게시물 읽기
No. 30193
커서 선언에 대해 질문 드려요
작성자
박세정(sejeang3)
작성일
2012-01-19 20:39ⓒ
2012-01-19 20:45ⓜ
조회수
8,021

이틀 동안 삽질하다 못해 문의 드립니다..
사용자 테이블 트리거내부에서  커서로 데이터 하나씩 업데이트를 하고 싶습니다..
문제는 커서로 선언되는 데이터가 집합데이터를 가져와야해서  어쩔수 없이 프로시저로 했는데.. ..  오류가 나네요..
제가 봐도 틀린것 같긴한데... 개념이 없으니 어떻게 풀어야 할지 모르겠습니다..
혹시 집합데이터를 받아서 커서를 사용할 수 있는 방법이 있다면 조언좀 해주시기 바랍니다.


 

-------로그인 트리거 소스입니다..---
CREATE DEFINER=`test@`%` TRIGGER `test`.`LOGIN` AFTER UPDATE ON test.LOGIN FOR EACH ROW
BEGIN
  DECLARE done BOOLEAN DEFAULT 0;
  ## CURSOR
  DECLARE cur1 CURSOR FOR CALL PRO_SYS_GROUP_ID(PAR_GROUP_ID); --> 집합데이터 가져와서 선언하고 싶습니다.

  ## CONTINUE HANDLER                      
  DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done=1;
  
  DECLARE M_STATUS VARCHAR(1); 
  
  OPEN cur1;       
  REPEAT
      FETCH cur1  INTO ?? ;    


      IF NOT done THEN        
    
       SELECT  STATUS
            INTO  M_STATUS 
            FROM T_SYS_CHARGE 
           
WHERE GROUP_ID = ??;

              IF M_STATUS = 'Y' THEN  
                        T_SYS_CHARGE  계산과 업데이트 
              END IF ; 
              
              IF M_STATUS = 'I' THEN
                        T_SYS_CHARGE  계산과 업데이트 
              END IF ;
     
      END IF;
  UNTIL done END REPEAT;
  CLOSE cur1;
END;
 

 

 

------문제의 프로시저 소스입니다. -----------------

CREATE PROCEDURE test.`PRO_SYS_GROUP_ID`(PAR_GROUP_ID INT(10))
BEGIN
 
  DECLARE M_MENU_ORDER VARCHAR(30);
 
  SELECT MENU_ORDER
         INTO M_MENU_ORDER
         FROM T_SYS_GROUP
         WHERE GROUP_ID = PAR_GROUP_ID ;

 SELECT GROUP_ID
      FROM T_SYS_GROUP
      WHERE GROUP_KIND = 'N' AND  MENU_ORDER LIKE CONCAT(M_MENU_ORDER ,'%');

END;

[Top]
No.
제목
작성자
작성일
조회
30196MySQL DB 시간표 ERD 관련... [2]
한동희
2012-02-01
9461
30195효율적인 query ? [1]
백영민
2012-01-26
7704
30194update 할떄 where 절에 조건을 주려고 합니다...(자체조인) [4]
박순채
2012-01-25
10508
30193커서 선언에 대해 질문 드려요
박세정
2012-01-19
8021
30192innodb 대용량 용으로 많이 쓴다고 하는데요.. [5]
최진규
2012-01-19
8148
30191enum 질문 드립니다.. [2]
밀로즈
2012-01-18
8106
30190하위 테이블 row가 존재안할때 자동 삭제하는 방법없나요?
김재현
2012-01-17
7492
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.026초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다