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 29614 게시물 읽기
No. 29614
제대로 짠 pl/sql 샘플좀 부탁드립니다.
작성자
초보
작성일
2007-02-01 10:11
조회수
1,811

안녕하세요. 그동안 개발자로서 pl/sql을 잘 쓰지 않는 환경에서 작업해 왔던터라 pl/sql에 대해 좀 약하네요. 

이번 프로젝트는 기존업무 대부분이 pl/sql에서 작성이 되었는데 예외처리라던지.. 익셉션 던지고..받아서 또 던지고..

전체적으로 트랜잭션처리도 좀 의심스럽고 그러네요.

솔직히 꼭 필요한 부분 몇가지 업무를 제외하고는 pl/sql을 왜 써야하는지도 의심스럽고.. 

막연하지만 pl/sql의 best practice를 보고 싶습니다. 

참고할만한 문서나 가지고 계신 소스중에 공개해주실만한게 있으면 몇가지 좀 부탁드립니다.

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

sample1)  WEB 화면으로 DATA 출력

CREARE OR REPLACE PROCEDURE SAMPLE
AS
   CURSOR MX IS SELECT EMPNO, ENPNANE, JOB 
                 FROM EMP;
BEGIN
   HTP.P('<TABLE>');
   FOR X in MX LOOP
       HTP.P('<TR><TD>'|| X.EMPNO || '<TD>'|| X.EMPNAME || '<TD>'|| X.JOB );
   END LOOP;
   HTP.P('</TABLE>');
END;


msie에서 http://servername:port/pls/dad/sample


sample2) ORA-0001 ( PK violate)에 걸리는 자료만 제외하고 타 테이블로 이전하기

CREATE OR REPLACE PROCEDURE SAMPLE2
IS
  CURSOR MX IS SELECT docname, accdate,  city
                         FROM   a_table;

BEGIN
   FOR X IN MX LOOP  -- LOOP돌면서 A table자료 fetch
   BEGIN
            INSERT INTO b_table( docname, accdate, city )  -- B table에 insert 하는데 PK 중복자료는 EXCEPTION으로 빠짐
             VALUES( x.docname, x.accdate, x.city);
   EXCEPTION 
          WHEN DUP_VAL_ON_INDEX THEN  -- PK제약조건에 걸리는 넘은 아무일도 하지말고 SKIP
                  NULL;
   END;
   END LOOP;
   COMMIT;
END;

cavingo33님이 2007-02-14 06:47에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
29617한컬럼에 두개의 조인을 할 수 있나요? [1]
전병진
2007-02-01
909
29616Pro*C에서 서로 다른 DBMS 두개를 연결하려고 합니다 [1]
궁금이
2007-02-01
855
29615헬프미! enterpise manager 에러입니다.
2007-02-01
764
29614제대로 짠 pl/sql 샘플좀 부탁드립니다. [1]
초보
2007-02-01
1811
29612intermedia 설치 관련(ora-03113문제)
초보
2007-02-01
979
29611Remote DB의 CLOB data 가져오기 질문입니다.
박상원
2007-02-01
1445
29610테이블에서 최신 데이터를 알 수 있는 방법이 있나요? [2]
궁금
2007-01-31
1214
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다