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 41708 게시물 읽기
No. 41708
오라클 프로시져 순차적으로 쿼리 수행 관련 문의드립니다..
작성자
작성일
2019-04-11 15:01
조회수
2,816

 SEQ    쿼리         수행여부

1        insert into tar1 select  from src1  ~ N

2        insert into tar2 select from src2  ~  N

 

임시테이블에 위와 같이 실행 쿼리를 미리 적재해 놓은후에..

쿼리를 순차적으로 실행해서 실행 오류시 오류를 남기도록 프로시져로 구현이 가능할까요?

하나에 쿼리를 수행하도록은 해보았는데요..

여러쿼리를 순차적으로 실행하는것도 가능한지 여부하고 방법을 알고싶어요 ㅜㅜ

 

바쁘시겠지만 답변 부탁드립니다..

감사합니다.

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

안녕하세요. PL/SQL에 EXCEPTION 처리 기능이 있는 걸로 알고 있습니다.

EXCEPTION이 발생하면 해당 문장은 롤백하고 수행여부를 'N'으로 업데이트하면 되지 않을까요?

어떤 오류인지는 SQLCODE와 SQLERRM을 참고하시면 될 것 같고요.

 

정상규(pajama)님이 2019-04-11 16:10에 작성한 댓글입니다.
이 댓글은 2019-04-11 16:11에 마지막으로 수정되었습니다.

DECLARE
    CURSOR c1 IS
    SELECT *
      FROM 임시테이블
     WHERE 수행여부 = 'N'
     ORDER BY seq
    ;
BEGIN
    FOR c IN c1
    LOOP
        BEGIN
            EXECUTE IMMEDIATE c.쿼리;
            UPDATE 임시테이블
               SET 수행여부 = 'Y'
             WHERE seq = c.seq
            ;
        EXCEPTION
            WHEN OTHERS THEN
                dbms_output.put_line(c.seq||'('||SQLCODE||')'||SQLERRM);
        END;
    END LOOP;
END;
/

마농(manon94)님이 2019-04-11 17:19에 작성한 댓글입니다.
이 댓글은 2019-04-11 17:21에 마지막으로 수정되었습니다.

프로시져 초보 ㅜㅜ라서

많은 도움되었습니다.

두분 모두 바쁜시간 내어서

댓글 달어주셔서 감사드립니다.

좋은하루되세요~~

봄님이 2019-04-11 17:40에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
41711갑자기 연결이 안 되네요...
신승익
2019-04-18
2509
41710DECODE나 CASE문 관련 문의 [1]
group
2019-04-18
2558
41709행간계산 질문드립니다. [1]
노트르담
2019-04-17
2618
41708오라클 프로시져 순차적으로 쿼리 수행 관련 문의드립니다.. [3]
2019-04-11
2816
41707TYPE OBJECT 컬렉션의 변수 갯수 [2]
haka
2019-04-10
2738
41706DB는 오라클 비주얼툴은 dBeaver/Flyspeed입니다. [1]
신승익
2019-04-03
3486
41705오라클 소유자명 입력 없이 그냥 검색하고 싶은데 어떻게할까요? [5]
오라클어려워ㅠ
2019-04-02
2695
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.051초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다