ORACLE/PL SQL 8

8장 .예외처리

8. 예외 처리SQL> ALTER TABLE empADD CONSTRAINT emp_ck CHECK ( sal > 0 ) ; --제약조건 추가하고 실습시작. SQL>SELECT empno, ename, salFROM empWHERE deptno = 10 ; EMPNO ENAME SAL---------- ---------- ----------7782 CLARK 24507839 KING 50007934 MILLER 1300-------------------------------- BEGIN UPDATE emp SET sal = 3000 WHERE empno = 7782 ; --정상 수행 가능한 문장. UPDATE emp SET sal = 0 WHERE empno = 7934 ; --제약조건 위배, Error..

ORACLE/PL SQL 2014.02.16

7장. 명시적 커서 사용

7. 명시적 커서 사용 ex1)많은 행을 가져오므로 ERRORSQL> SET SERVEROUTPUT ONDECLARE emp_rec emp%ROWTYPE ;BEGIN SELECT * INTO emp_rec FROM emp WHERE deptno = 10 ; DBMS_OUTPUT.PUT_LINE ( emp_rec.empno || ' ' || emp_rec.ename ) ;END ; /ERROR at line 1: ORA-01422: exactFETCH returns more than requested NUMBER OF rows ORA-06512: at line 4 EX2) 커서 생성을 통한 여러 행 불러오기.DECLARE CURSOR emp_cur --Cursor 생성. IS SELECT * FROM em..

ORACLE/PL SQL 2014.02.16

6장 . 조합데이터 유형

6. 조합 데이터 유형 ※ PL/SQL RecordDECLARE TYPE emp_rec_typ IS RECORD --레코드 구조체. 필드는 둘 이상. ( ename VARCHAR2(10), sal emp.sal%TYPE, job emp.job%TYPE := 'NONE' ) ; emp_rec EMP_REC_TYP ; BEGIN SELECT ename, sal, job INTO emp_rec FROM emp WHERE empno = 7788 ; END ;/PL/SQL procedure successfully completed. ※ %ROWTYPE 사용 DECLARE emp_rec emp%ROWTYPE ; --테이블 emp의 이름 및 유형을 가져온다.BEGIN SELECT * INTO emp_rec FROM ..

ORACLE/PL SQL 2014.02.16

4장 PL/SQL 프로그램에서 SQL 문과 상호 작용

4장. PL/SQL 프로그램에서 SQL 문과 상호 작용 # SQL/PLSQL 호출범위SQL- QUERY : SELECT- DML : Insert / Update / Delete / Merge - TCL : COMMIT / ROLLBACK / SAVEPOINT PL/SQL은 여기까지만 허용한다.------------------------------------------------------------------------------------------------------------------------------------- DCL : GRANT / REVOKE / - DDL : CREATE / DROP / ALTER / TRUNBCATE / RENAME PL/SQL에서 호출 불가능. DML( INSE..

ORACLE/PL SQL 2014.02.16

3장 실행문 작성

1. PL/SQL 에서의 함수 사용 ex1)단일행 함수 사용. SET SERVEROUTPUT ON DECLARE v_desc_size INTEGER(5); v_prod_description VARCHAR2(70) := 'You can use this product with your radios for higher frequency'; BEGIN v_desc_size := LENGTH(v_prod_description) ; DBMS_OUTPUT.PUT_LINE (v_desc_size) ;END ;/ 62PL/SQL procedure successfully completed. ex2)그룹함수는 scalar type에 사용될 수 없다.DECLARE v_desc_size INTEGER(5); v_prod_des..

ORACLE/PL SQL 2014.02.16

2장 PL/SQL 변수 선언

변수 1.스칼라 데이터 (단일값 변수) :한번에 하나의 행이 하나의 컬럼의 값.( 보통 “V_컬럼의 이름” 이용.) DECLARE -- 선언부 V_EMPNO NUMBER(4); V_ENAME VARCHAR2(10); V_SAL NUMBER(7,2) ; V_DEPTNO NUMBER (2);BEGIN SELECT EMPNO,ENAME,SAL,DEPTNO INTO V_EMPNO,V_ENAME,V_SAL,V_DEPTNO FROM EMP -- WHERE EMPNO = 7788;END ;/→ 이 경우 ERROR 발생한다. 단일행 변수는 하나의 행만 저장 가능하다.A. 적절한 where절을 통해 반드시 한개의 행만 검색되도록 해야한다. Q)DECLARE V_EMPNO NUMBER(4); V_ENAME VARCHAR2..

ORACLE/PL SQL 2014.02.16

1장. PL/SQL 소개

1장1. SQL 과 PL/SQL 의 차이 SQL : 조건 분기 불가능, 루핑 불가능, 변수처리 불가능, 단문 형(화면에 가져와야 그 다음명령실행)PL/SQL : ORACLE DBMS에서 SQL문장과 제어문을 함게 사용할 수 있다. 코드 실행단위에 블록 구조를 제공한다. 변수, 상수, 데이터타입, 조건문,루프,DB의 객체로 저장가능. PL/SQL Fundamentals p1-6그림 중요 2. PL/SQL 블럭 SQL> SET SERVEROUTPUT ON --DBMS_OUT_PUT을 통해 보여주기위함.DECLARE --선언부( 데이터 이름과 타입 정의) emp_rec emp%ROWTYPE ; --테이블 구조를 통채로 참조. sum_rec emp_sum%ROWTYPE ;BEGIN SELECT * INTO em..

ORACLE/PL SQL 2014.02.16