위지원의 데이터 일기 🐈
Home
  • 분류 전체보기 (563)
    • ✎ 2025년 (4)
    • 2024년 (16)
    • 2023년 (6)
    • 2022년 (35)
      • Developement (22)
      • Error (9)
    • 2021년 (68)
      • ERROR (9)
      • 알고리즘 (11)
      • 개발공부 (21)
      • Data (15)
      • 21.下 (12)
    • 2020년 (164)
      • 코테 (84)
      • Development (29)
      • 정처기 (41)
    • 2019년 (27)
    • 2018년 (89)
      • English Speaking (8)
      • Error (12)
      • C, Java, FileSystem (13)
      • DataBase (15)
      • Java (2)
      • 지식 (16)
      • Go (3)
      • spark (9)
      • 영어 (5)
      • 알고리즘 (6)
    • 2017년 (143)
      • Error (17)
      • machine learning (16)
      • Spark (20)
      • Database (19)
      • Python (17)
      • Spring (9)
      • etc. (10)
      • 백준 (5)
      • Google Platform (12)
      • web Development (7)
      • Docker (3)
      • Linux (8)
Home
  • 분류 전체보기 (563)
    • ✎ 2025년 (4)
    • 2024년 (16)
    • 2023년 (6)
    • 2022년 (35)
      • Developement (22)
      • Error (9)
    • 2021년 (68)
      • ERROR (9)
      • 알고리즘 (11)
      • 개발공부 (21)
      • Data (15)
      • 21.下 (12)
    • 2020년 (164)
      • 코테 (84)
      • Development (29)
      • 정처기 (41)
    • 2019년 (27)
    • 2018년 (89)
      • English Speaking (8)
      • Error (12)
      • C, Java, FileSystem (13)
      • DataBase (15)
      • Java (2)
      • 지식 (16)
      • Go (3)
      • spark (9)
      • 영어 (5)
      • 알고리즘 (6)
    • 2017년 (143)
      • Error (17)
      • machine learning (16)
      • Spark (20)
      • Database (19)
      • Python (17)
      • Spring (9)
      • etc. (10)
      • 백준 (5)
      • Google Platform (12)
      • web Development (7)
      • Docker (3)
      • Linux (8)
블로그 내 검색
포트폴리오

위지원의 데이터 일기 🐈

데이터를 사랑하고 궁금해하는 기록쟁이입니다! 😉 Super Data Girl이 되는 그날까지🏃‍♀️ 화이팅!

  • 🖥 깃블로그
  • 🌍 위키원
  • 📑 내맘대로 스크랩
  • 💌 메일
  • 2020년/정처기

    [2020 정보처리기사 실기]Section 08.SQL응용(사용자 정의 함수, 커서)

    2020. 4. 29. 22:32

    by. 위지원

    이전글

    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  (1) 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

    잠깐만요~! 읽으신김에 이런 글들은 어떠세요? 👀

    • [2020 정보처리기사 실기] Section 09.소프트웨어 개발 보안 구축 #2 2020.05.05
    • [2020 정보처기기사 실기] Section 09. 소프트웨어 개발 보안 구축 #1 2020.05.05
    • [2020 정보처리기사 실기]Section 08.SQl응용(프로시저, 트리거) 2020.04.29
    • [2020 정보처리기사 실기]Section 08. SQL 응용(SELECT) 2020.04.28
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

열정! 열정! 열정! 🔥

Designed by Nana
블로그 이미지
위지원
데이터 엔지니어로 근무 중에 있으며 데이터와 관련된 일을 모두 좋아합니다!. 특히 ETL 부분에 관심이 가장 크며 데이터를 빛이나게 가공하는 일을 좋아한답니다 ✨

티스토리툴바

티스토리툴바