이 기호의 의미는 ?
%TYPE
답: 기존 테이블에 설정된 데이터타입과 크기를 참조하여 변수를 선언
2. 다음이 의미하는 바는?
emp_num1 number(9);
답: emp_num1 의 변수의 데이터타입과 크기
3. 다음이 의미하는 바는 ?
NSalaries EMPLOYEES.SALARY%TYPE;
답: NSalaries 라는 새로운 변수는 EMPLOYEES의 SALARY 컬럼의 데이터타입과 크기를 참조
4. 다음이 의미하는 바는?
create or replace procedure scott."pc_update_deptno"
답: scott테이블에 pc_update_deptno 프로시저 생성, 있다면 수정
5. 다음이 의미하는 바는?
CREATE OR REPLACE PROCEDURE scott."pc_update_deptno"
(
p_job IN VARCHAR2,
p_deptno IN VARCHAR2
)
답: 해당 프로시저의 매개변수로 p_job, p_deptno 두 매개변수의 데이터타입은 varchar2 입니다
CREATE OR REPLACE PROCEDURE scott."pc_update_deptno"
(
p_job IN VARCHAR2,
p_deptno IN VARCHAR2
)
IS
BEGIN
UPDATE emp
SET deptno = p_deptno
WHERE job = p_job;
END ;
답 : emp table 에 deptno 의 기존값을 p_deptno 로 덮어 씌우겠습니다.
deptno 는 job 이 p_job 입니다. p_deptno 와 p_job 은 사용자로부터 받는 값 입니다. 데이터타입은 varchar2 입니다
답 :
1) 사용자 정의 예외처리
if 특정상황 then
//raise 문을 사용하여 명시적으로 예외를 발생
raise
EXCEPTION
WHEN 사용자정의예외 then
dbms_output.put_line("발생");
end;
2) 일반적인 방법
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE = +100 THEN
DBMS_OUTPUT.PUT_LINE('해당하는 사원이 없습니다')
END IF;
EXEC pc_update_deptno('MANAGER', '20');
아랫 프로시저를 시켜보니 어떤 결과가 나왔나요?
스크린 샷을 찍어 보내주세요 (참고: sqlgate 에서 실행시키면 반환값이 없다고 오류 발생하는데, 반환값이 없어서 그렇치, 실행은 된겁니다잉, sql developer에선 오류없이 작동)