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 1596 게시물 읽기
No. 1596
스토어프로시져좀 봐주세염ㅁ!!
작성자
이재용(jylee1016)
작성일
2008-04-26 12:14
조회수
12,997

CREATE Procedure SP_UpdateDIV
(IN CMP_KIND_C  varchar (3),
 IN CALL_YN   varchar (1),
 IN ACNO   varchar (14)
)

LANGUAGE SQL
BEGIN

Declare QENDYNX varchar (2);
Declare QENDYN varchar (2);
Declare QRRNO varchar (13);
Declare QOUT_ACD varchar (5);
Declare QCAMP_ID varchar (20);
 
 IF   CALL_YN = 'Y' THEN
 SET QENDYNX = 'N';
 ELSE
 SET QENDYNX = 'X';
 END IF;

  EXEC SQL DECLARE c0 CURSOR FOR
  Select RRNO, Out_acd, camp_id,END_YN       From TB_Out_DIV 
       a Left Outer Join TB_Cust_Info b On a.Camp_ID = CMP_KIND_C
             and a.RRNO = b.RRNO
             and a.CAMP_ID = b.CAMP_ID ;


  EXEC SQL OPEN c0;
  EXEC SQL FETCH c0 INTO :QRRNO, :QOUT_ACD :QCAMP_ID:QENDYN;
  while (sqlca.sqlcode != 100)
  {
     IF  QENDYN <> 'Y' THEN
  UPDATE TB_OUT_DIV SET END_YN = QENDYNX  WHERE RR_NO = QRRNO AND OUT_ACD = QOUT_ACD AND CAMP_ID = QCAMP_ID 
 END IF; 
      
     EXEC SQL FETCH c0 INTO  :QRRNO, :QOUT_ACD :QCAMP_ID:QENDYN;
  }
  EXEC SQL CLOSE c0;
END;

이렇게 만들려구 하는데 생성이 안되네여.. 머가 잘못된건지 잘모르겠습니다. 
도와주세여

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

drop procedure SP_UpdateDIV
@
CREATE Procedure SP_UpdateDIV
(IN CMP_KIND_C  varchar(3),
 IN CALL_YN   varchar(1),
 IN ACNO   varchar(14)
)

LANGUAGE SQL
BEGIN

  DECLARE QENDYNX varchar(1);
  DECLARE QENDYN varchar(2);
  DECLARE QRRNO varchar(13);
  DECLARE QOUT_ACD varchar(5);
  DECLARE QCAMP_ID varchar(20);
  DECLARE SQLCODE INT DEFAULT 0;
 
  DECLARE c0 CURSOR FOR
    Select A.RRNO, A.OUT_ACD, A.CAMP_ID, A.END_YN      
      From TB_Out_DIV  A
           Left Outer Join TB_CUST_INFO B
                On a.CAMP_ID = CMP_KIND_C
               and a.RRNO = b.RRNO
               and a.CAMP_ID = b.CAMP_ID ;

  IF CALL_YN = 'Y' THEN
    SET QENDYNX = 'N';
  ELSE
    SET QENDYNX = 'X';
  END IF;

  OPEN c0;
 
  FETCH FROM c0 INTO QRRNO, QOUT_ACD, QCAMP_ID, QENDYN;

  WHILE ( SQLCODE != 100 ) DO
    IF ( QENDYN <> 'Y' ) THEN
      UPDATE TB_OUT_DIV
         SET END_YN = QENDYNX 
       WHERE RRNO = QRRNO
         AND OUT_ACD = QOUT_ACD
         AND CAMP_ID = QCAMP_ID;
    END IF;

    FETCH FROM c0 INTO QRRNO, QOUT_ACD, QCAMP_ID, QENDYN;
  END WHILE;

  CLOSE c0;
END
@


위와 같은 형태가 될것 같은데 테스트는 해보지 않았습니다. 

조는 냥이님이 2008-04-29 16:16에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1602sql에서 정규 표현식을 사용하고 싶은데요...
배성수
2008-05-14
11321
1600외부 프로시저 질문 드립니다. [1]
이도희
2008-05-13
9584
1597터미널상에서 insert 쿼리를 직접 처리할 수 없을까요??? [2]
눈이
2008-04-27
10610
1596스토어프로시져좀 봐주세염ㅁ!! [1]
이재용
2008-04-26
12997
1595CLOB타입 질문드립니다.
장용석
2008-04-25
10502
1594long varchar 타입 질문드립니다. [5]
이도희
2008-04-25
11517
1593DB21006E 명령문이 65535행을 넘을수.... [1]
배성수
2008-04-21
10529
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다