본문 바로가기
728x90
반응형

전체 글640

[Oracle] - 오라클 PL/SQL 함수(function) 사용법 #오라클 PL/SQL 함수(function) 사용법 #함수 생성 방법 CREATE OR REPLACE FUNCTION func( num IN NUMBER ) RETURN NUMBER IS addNum NUMBER := 10; BEGIN RETURN (num + addNum); END func; #함수 실행 방법 DECLARE resultSum NUMBER; BEGIN resultSum := func(20); DBMS_OUTPUT.PUT_LINE('resultSum: ' || resultSum); END; -결과 resultSum: 30 -프로시저와 달리 함수는 SQL문에서도 사용가능합니다. SELECT FUNC(40) FROM DUAL; -- 50 #함수 삭제 방법 DROP FUNCTION func; 2022. 7. 6.
[Oracle] - 오라클 PL/SQL 프로시저(procedure) IN, OUT 사용법 #오라클 PL/SQL 프로시저(procedure) 사용법 -특정 처리 작업을 수행하는데 사용하는 저장 서브프로그램입니다. #파라미터를 사용하지 않는 프로시저 CREATE OR REPLACE PROCEDURE 프로시저명 IS -- 선언부 BEGIN -- 실행부 EXCEPTION -- 예외 처리부 END; -PROC라는 이름의 프로시저 생성 후 출력 결과 테스트 -디비버툴에서는 프로시저 지원안해주는지 SQL*PLUS에서 실행 : EXCUTE 프로시저명; CREATE OR REPLACE PROCEDURE PROC IS V_EMPNO NUMBER(4) := 1234; BEGIN DBMS_OUTPUT.PUT_LINE('V_EMPNO : ' || V_EMPNO); END; / -결과 -익명 블록에서 프로시저 실행 .. 2022. 7. 6.
[Oracle] - 오라클 PL/SQL 오류 발생시 예외 처리 방법 #오라클 PL/SQL 오류 발생시 예외 처리 방법 #예외 상황 테스트 -VALUE_ERROR 에러 강제로 발생 DECLARE error NUMBER; BEGIN error := '숫자아님'; -- 숫자 타입에 문자열 넣어서 생기는 오류 EXCEPTION WHEN VALUE_ERROR THEN DBMS_OUTPUT.PUT_LINE('ORA-06502: 산술, 변환, 잘림, 제약 조건 오류'); END; -결과 출력 (ORA-XXXXX식으로 다양한 예외가 존재합니다.) ORA-06502: 산술, 변환, 잘림, 제약 조건 오류 #SQLCODE, SQLERRM 함수를 사용해서 오류 내역을 확인할 수 있습니다. DECLARE error NUMBER; BEGIN error := '숫자아님'; -- 숫자 타입에 문자.. 2022. 7. 6.
[Oracle] - 오라클 PL/SQL 커서(cursor) 사용법 #오라클 PL/SQL 커서(cursor) 사용법 #커서(cursor) -커서는 SELECT문 또는 데이터 조작어 같은 SQL문을 실행했을 때 해당 SQL문을 처리하는 정보를 저장한 메모리 공간(Private SQL Area)을 뜻합니다. -메모리의 포인터라고도 합니다. -커서를 사용하면 실행된 SQL문의 결과 값을 사용할 수도 있습니다. #명시적 커서 -명시적 커서는 사용자가 직접 커서를 선언하고 사용하는 커서입니다. DECLARE CURSOR 커서명 IS SQL문 -- 커서 선언문 BEGIN OPEN 커서명; -- 커서 열기 FETCH 커서명 INTO 변수; -- 커서에서 읽은 데이터 사용 CLOSE 커서명; -- 커서 닫기 END; #묵시적 커서 -묵시적 커서는 명시적 커서와 달리 별다른 선언 없이 .. 2022. 7. 6.
[Oracle] - 오라클 PL/SQL 레코드(record), 컬렉션(collections) 사용법 #오라클 PL/SQL 레코드(record), 컬렉션(collections) 사용법 #레코드(record) -레코드는 자료형이 각기 다른 데이터를 하나의 변수에 저장하는 데 사용합니다. -레코드를 변수를 insert문이나 update문에도 사용할 수 있습니다. -레코드 안에 또 다른 레코드를 포함하는 중첩 레코드도 만들수가 있습니다. DECLARE TYPE RECORD_DEPT IS RECORD( DEPTNO NUMBER(2) NOT NULL := 1, DNAME VARCHAR(10) := '홍길동' ); dept_rec RECORD_DEPT; -- dept_rec가 레코드 변수 이름 BEGIN dept_rec.deptno := 3; dept_rec.dname := '둘리'; DBMS_OUTPUT.PUT_.. 2022. 7. 6.
[Oracle] - 오라클 PL/SQL 반복문(LOOP문, WHILE LOOP문, FOR LOOP문, CONTINUE문, CONTINUE-WHEN문) 사용법 #오라클 PL/SQL 반복문(LOOP문, WHILE LOOP문, FOR LOOP문, CONTINUE문, CONTINUE-WHEN문) 사용법 #LOOP문 사용법 -별다른 조건 없이 반복문이 실행됩니다. DECLARE Q_NUM NUMBER := 1; -- 초기값 1 BEGIN LOOP -- 반복문 시작 DBMS_OUTPUT.PUT_LINE('LOOP문 반복 횟수 : ' || Q_NUM); Q_NUM := Q_NUM + 1; -- 1씩 증감 EXIT WHEN Q_NUM > 4; -- 4이상이면 반복문 종료 END LOOP; END; -결과 LOOP문 반복 횟수 : 1 LOOP문 반복 횟수 : 2 LOOP문 반복 횟수 : 3 LOOP문 반복 횟수 : 4 #WHILE LOOP문 사용법 -조건식을 지정하고 결과 .. 2022. 7. 6.
728x90
반응형