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
운영게시판
최근게시물
Oracle Q&A 40131 게시물 읽기
No. 40131
해당 프로시져럴 생성하면 오류와함께 생성이되네요.
작성자
새하정(lsmsj)
작성일
2013-05-15 14:56
조회수
6,773

안녕하세요. 아래의 프로시져를 커서를 이용해 생성을 하는도중에 에러가 생기네요.. 큰문제는 없어보이는데..

찾기가 힘드네요.....

=======================================================

CREATE OR REPLACE PROCEDURE STREAM.SWIS  IS 
       CURSOR C1 IS
SELECT M.COM_CODE,
       M.CREDIT_LIMIT+ NVL
       (
              (SELECT NVL(SUM(S1.REQUEST_CREDIT_AMOUNT),0) AS REQUEST_CREDIT_AMOUNT
                FROM TBL_CREDIT_REQUEST S1
               WHERE RECORD_STATUS <> 'D'
                     AND S1.CUSTOMER_CODE = M.COM_CODE
                     AND S1.REQUEST_CREDIT_STATUS = '079003'
                     AND TO_CHAR(S1.EXPIRATION_DATE,'yyyyMMdd') >= TO_CHAR(SYSDATE,'yyyyMMdd')
               GROUP BY S1.CUSTOMER_CODE
              ),0
          ) AS A,
          (SELECT NVL(SUM(S2.REQUEST_CREDIT_AMOUNT),0) AS REQUEST_CREDIT_AMOUNT
            FROM TBL_CREDIT_REQUEST S2
           WHERE RECORD_STATUS <> 'D'
                 AND S2.CONFIRM_GB = '002'
                 AND S2.CUSTOMER_CODE = M.COM_CODE
                 AND S2.REQUEST_CREDIT_STATUS = '079003'
                 AND TO_CHAR(S2.EXPIRATION_DATE,'yyyyMMdd') >= TO_CHAR(SYSDATE,'yyyyMMdd')
           GROUP BY S2.CUSTOMER_CODE
          ) AS B,
          (SELECT NVL(SUM(S3.REQUEST_CREDIT_AMOUNT),0) AS REQUEST_CREDIT_AMOUNT
            FROM TBL_CREDIT_REQUEST S3
           WHERE RECORD_STATUS <> 'D'
                 AND S3.CONFIRM_GB = '001'
                 AND S3.CUSTOMER_CODE = M.COM_CODE
                 AND S3.REQUEST_CREDIT_STATUS = '079003'
                 AND TO_CHAR(S3.EXPIRATION_DATE,'yyyyMMdd') >= TO_CHAR(SYSDATE,'yyyyMMdd')
           GROUP BY S3.CUSTOMER_CODE
          ) AS C
     FROM MALLCRMN M,
          TBL_CREDIT_REQUEST R
    WHERE M.COM_CODE = R.CUSTOMER_CODE
          AND M.CREDIT_RATING_MON =
          (SELECT MAX(CREDIT_RATING_MON)
            FROM MALLCRMN
          )
          AND R.REQUEST_CREDIT_STATUS = '079003'
          AND R.EXPIRATION_DATE IS NOT NULL
          AND R.RECORD_STATUS <> 'D'
          AND SUBSTR(R.EXPIRATION_DATE,1,6) >= SUBSTR(SYSDATE,1,6)
    GROUP BY M.COM_CODE,
          M.CREDIT_LIMIT; 
   C1_REC C1%ROWTYPE; 
   OPEN C1; 
   LOOP 
       FETCH C1 INTO C1_REC;
       EXIT
   WHEN C1%NOTFOUND; 
       UPDATE MALLCRMN
              SET CREDIT_LIMIT_TOT = VGO_PRICE,
              CR_ADD_A_PRICE = VISA_PRICE,
              CR_ADD_B_PRICE = VBONBU_PRICE
        WHERE CREDIT_RATING_MON =
              (SELECT MAX(CREDIT_RATING_MON)
                FROM MALLCRMN
              )
              AND COM_CODE = VCUSTOMER_CD; 
   END LOOP; 
   CLOSE C1; 
   COMMIT;
END; 

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

선언부가 끝나고 처리부가 시작되는 부분에 BEGIN 이 있어야 합니다.

OPEN 전에 BEGIN

마농(manon94)님이 2013-05-21 02:09에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
40134상하위 3%제외한 평균값 [2]
조형래
2013-05-20
6805
40133날짜별 코드별 상태집계 관련 도움 부탁드립니다. [2]
디비하수
2013-05-15
7616
40132SQL update and insert [2]
ohyouknow
2013-05-15
7008
40131해당 프로시져럴 생성하면 오류와함께 생성이되네요. [1]
새하정
2013-05-15
6773
40130connect by 로 구현한 결과 하위정보 sum 하기 [2]
무는무다
2013-05-15
6790
40129테이블 키값 만들기 [1]
아폴론
2013-05-14
6137
40128뷰테이블 인서트 문의드립니다. [1]
이훈
2013-05-13
6130
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다