프로시저

서울IT코드정리 /kyChoi·2021년 11월 16일
0

프로시저

목록 보기
1/3

alter session set nls_language='korean'

  1. 이 기호의 의미는 ?

    %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 입니다

  1. 다음이 의미하는 바는?

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. 오라클 예외처리 문법을 작성해 주세요

답 :

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;
  1. 아랫 문장은 프로시저 실행문 입니다.

EXEC pc_update_deptno('MANAGER', '20');

아랫 프로시저를 시켜보니 어떤 결과가 나왔나요?

스크린 샷을 찍어 보내주세요 (참고: sqlgate 에서 실행시키면 반환값이 없다고 오류 발생하는데, 반환값이 없어서 그렇치, 실행은 된겁니다잉, sql developer에선 오류없이 작동)

profile
건물주가 되는 그날까지

0개의 댓글