728x90
# 종속성
l 참조한 객체에 따라서 프로시져, 뷰 등등이 종속성에 영향을 받는다
l 객제를 변형한 경우에 유형에 따라서 동작할 수도 있고 동작안할 수도 있다
l failure 를 최소화 하는 방법
1. %rowtype 속성으로 레코드 선언
2. %type 속성으로 변수 선언
3. select * 로 query를 해라
4. insert 문을 사용하여 컬럼 리스트를 입력해라
문제198. 직업이 SALESMAN, ANALYST 인 사원들의 이름과 월급과 직업과 부서번호를 출력하는 VIEW를 생성하고 이름을 입력하면 이름과 월급을 출력하는 프로시져를 만드시오
CREATE VIEW emp934
AS
SELECT ename, sal, job, deptno
FROM EMP
WHERE job IN ('SALESMAN','ANALYST');
---------------------------------------------------------
CREATE OR REPLACE PROCEDURE pro199
(p_ename varchar2)
IS
CURSOR emp_cursor IS
SELECT ename, sal
FROM emp934
WHERE ename=p_ename;
BEGIN
FOR emp_record IN emp_cursor LOOP
dbms_output.put_line('사원이름 : ' || emp_record.ename);
dbms_output.put_line('월급 : ' || emp_record.sal);
END LOOP;
END;
/
CREATE OR REPLACE PROCEDURE pro199
(p_ename varchar2)
IS
v_ename emp.ename%TYPE;
v_sal emp.sal%TYPE;
BEGIN
SELECT ename, sal INTO v_ename, v_sal
FROM emp934
WHERE ename=p_ename;
dbms_output.put_line('사원이름 : ' || v_ename);
dbms_output.put_line('월급 : ' || v_sal);
END;
/
문제200. user_dependencies 딕셔너리를 이용해서 emp와 emp934 뷰의 종속성을 확인하시오
SELECT NAME,type,referenced_name,referenced_type
FROM user_dependencies
WHERE referenced_name IN ('EMP','EMP934');
문제201. 아래의 객체들의 현재 상태를 확인하시오
SELECT object_name, object_type, status
FROM user_objects
WHERE object_name IN ('EMP','EMP934','PRO199');
문제202. 사원테이블의 sal 컬럼의 길이를 number(10)으로 변경하시오
ALTER TABLE EMP
MODIFY sal NUMBER(10,2);
l number(10,2) : 전체 10자리 잡고 소수점 2자리 허용하겠다
l 컬럼의 길이를 변경했지만 상태는 valid 상태인것을 확인할 수 있다.
문제203. emp 테이블의 sal 컬럼을 삭제하시오
ALTER TABLE EMP
DROP COLUMN sal;
l 객체 상태를 확인하면 invalid 가 된 것을 확인할 수 있다
문제204. invalid 된 프로시져를 compile 하는 명령어
ALTER PROCEDURE pro199 COMPILE;
SQL> ALTER PROCEDURE pro199 COMPILE;
Warning: Procedure altered with compilation errors.
l 컬럼 삭제로 컴파일에서 오류가 발생한다
문제205. 사원 테이블에 email 컬럼을 추가하시오
ALTER TABLE EMP
ADD email VARCHAR2(30);
l 11g부터는 컬럼 추가가 영향을 미치지 않는다
'빅데이터과정 > PL/SQL ' 카테고리의 다른 글
#15_140703_PL_SQL_암호화 (0) | 2014.07.15 |
---|---|
#15_140703_PACKAGE_OVERLOAD (0) | 2014.07.15 |
#15_140703_PL_SQL_PACKAGE (0) | 2014.07.15 |
#14_140702_PL_SQL_TRIGGER (0) | 2014.07.15 |
#14_140702_PL_SQL_RETURNING (0) | 2014.07.15 |