-
이전글
2020/04/29 - [2020년도 상반기/정처기] - [2020 정보처리기사 실기]Section 08.SQl응용(프로시저, 트리거)
사용자 정의 함수
- select를 통한 조회만 할 수 있음 ,DML문의 호출에 의해 실행
- return으로 값을 반환하므로 출력 파라미터가 존재하지 않음
DECLARE BEGIN [CONTROL] [SQL] [EXCEPTION] [RETURN] END;
1. 사용자 정의 함수 생성 ; BODY에는 적어도 하나의 SQL문이 존재해야함
CREATE [OR REPLACE] FUNCTION 사용자 정의 함수명(파라미터) [지역변수] BEGIN 사용자 정의 함수 BODY; RETURN 반환값; END;
CREATE FUNCTION Get_S_성별(i_성별코드 IN INT) RETURN VARCHAR2 IS BEGIN IF i_성별코드 =1 THEN RETURN '남자'; ELSE RETURN '여자'; END IF; END;
2. 사용자 정의 함수 실행
SELECT 사용자 정의 함수명 FROM 테이블명; INSERT INTO 테이블명(속성명) VALUES (사용자 정의 함수명); DELETE FROM 테이블명 WHERE 속성명 = 사용자 정의 함수명; UPDATE 테이블명 SET 속성명 = 사용자 정의 함수명; #EXAMPLE /*Table 사원(이름, 성별코드) */ SELECT 이름, Get_S_성별(성별코드) FROM 사원;
3. 사용자 정의 함수 제거
DROP FUNCTION 사용자 정의 함수명; #EXAMPLE DROP FUNCTION Get_S_성별;
커서(Cursor)
1.커서
쿼리문의 처리 결과가 저장되어 있는 메모리 공간을 가르키는 포인터
- 묵시적 커서 : 커서 수행 단계가 자동으로 수행, 쿼리문의 정상 수행여부를 확인하기 위함
- 커서의 속성
- SQL%FOUND : true/false
- SQL%NOTFOUND : true/false
- SQL%ROWCOUNT : row개수
- SQL%ISOPEN : true/false 묵시적 커서는 자동이라 항상 false
- 커서의 속성
BEGIN UPDATE SCROE SET COND=25 WHERE DEPT = 'PR'; DBMS_OUTPUT.PUT_LINE(SQL%ROWCOUNT); END;
출력 결과 => 3
- 명시적 커서 : 사용자가 직접 구현, 쿼리문의 결과를 저장하여 사용해 동일한 쿼리가 반복수행 되어 리소스 낭비를 방지함
DECLARE p_name employee.name%TYPE /*name속성의 자료형과 동일한*/ CURSOR cur_name(ff Int) IS SELECT name FROM employee where id >= tt; BEGIN OPEN cur_name(20); LOOP FETCH cur_name INTO p_name; /*커서 결과를 p_name에 뻈찌*/ EXIT WHEN cur_name%NOTFOUND; DBMS_OUTPUT.PUT_LINE(p_name); END LOOP; CLOSE cur_name; END;
즐거운 SQL이 끝났습니다.. 다음시간엔 또,,,개발,,,환ㄱ,,경,,구,,축,,,으로 찾아뵙겠읍니다,,,,아,, 하기싫다,,, 시험,,까지,,,20일가량,,남았네요,,젭알,,한번에 붙허라,,
다음글
2020/05/05 - [2020년도 상반기/정처기] - [2020 정보처기기사 실기] Section 09. 소프트웨어 개발 보안 구축 #1
'2020년 > 정처기' 카테고리의 다른 글
[2020 정보처리기사 실기] Section 09.소프트웨어 개발 보안 구축 #2 (0) 2020.05.05 [2020 정보처기기사 실기] Section 09. 소프트웨어 개발 보안 구축 #1 (0) 2020.05.05 [2020 정보처리기사 실기]Section 08.SQl응용(프로시저, 트리거) (0) 2020.04.29 [2020 정보처리기사 실기]Section 08. SQL 응용(SELECT) (0) 2020.04.28 [2020 정보처리기사 실기] Section 08.SQL 응용(DCL) (0) 2020.04.28