SQL 61

배열처럼 사용되는 table 타입 변수

----- ==== **** 오라클에서는 배열이 없지만 배열처럼 사용되어지는 table 타입 변수가 있습니다. **** ===== ----- -- 그래서 table 타입 변수를 사용하여 자바의 배열처럼 사용합니다. -- 추출할 행이 1개 이상이면 오류 발생 create or replace procedure pcd_employees_info_deptid ( p_department_id IN employees.department_id%type ) is v_department_id employees.department_id%type; v_employee_id employees.employee_id%type; v_department_name departments.department_name%type; v_ena..

SQL 2022.07.14

사용자 정의 예외절(EXCEPTION)

------------ ***** 사용자 정의 예외절(EXCEPTION) ***** ---------------- 예외절 = 오류절 ※ 형식 exception when 익셉션이름1 [or 익셉션이름2] then 실행문장1; 실행문장2; 실행문장3; when 익셉션이름3 [or 익셉션이름4] then 실행문장4; 실행문장5; 실행문장6; when others then 실행문장7; 실행문장8; 실행문장9; === tbl_member_test1 테이블에 insert 할 수 있는 요일명과 시간을 제한해 두겠습니다. === tbl_member_test1 테이블에 insert 할 수 있는 요일명은 월,화,수,목,금 만 가능하며 또한 월,화,수,목,금 중에 오후 2시 부터 오후 5시 이전까지만(오후 5시 정각은 안돼..

SQL 2022.07.14

===== ***** 반복문 ***** =====

반복문에는 종류가 3가지가 있다. 1. 기본 LOOP 문 2. FOR LOOP 문 3. WHILE LOOP 문 ------ ===== ***** 1. 기본 LOOP 문 ***** ===== ------ [문법] LOOP 실행문장; EXIT WHEN 탈출조건; -- 탈출조건이 참 이라면 LOOP 를 탈출한다. END LOOP; [새로운 tbl_looptest_1 테이블 생성하기] create table tbl_looptest_1 ( bunho number , name varchar2(50) ); -- Table TBL_LOOPTEST_1이(가) 생성되었습니다. --- *** tbl_looptest_1 테이블에 행을 20000 개를 insert 해보기 *** --- create or replace proce..

SQL 2022.07.13

제어문(IF문)

※ 형식 if 조건1 then 실행문장1; elsif 조건2 then 실행문장2; elsif 조건3 then 실행문장3; else 실행문장4; end if; -- 나이 구하는 함수 -- 앞에서 만들었던 func_age 함수는 완벽하지 않음 select func_age_2('9007131234567') from dual; -- 33 select func_age_2('abcdefghij') from dual; -- ORA-06502: PL/SQL: 수치 또는 값 오류: 문자를 숫자로 변환하는데 오류입니다 select func_age_2('9007139234567') from dual; -- -67 [ func_age 수정 ] create or replace function func_age_2 (p_jubun..

SQL 2022.07.13

사용자 정의 함수(Function)

-- 주민번호를 입력받아서 성별을 알려주는 함수 func_gender( 주민번호 )를 생성하기 -- [문법] create or replace function 함수명 (파라미터변수명 IN 파라미터변수의타입) return 리턴되어질타입 is 변수선언; begin 실행문; return 리턴되어질값; end 함수명; Function 생성하기 create or replace function func_gender ( p_jubun IN varchar2 ) -- varchar2(13)와 같이 자리수를 쓰면 오류 발생.! return varchar2 -- varchar2(10)와 같이 자리수를 쓰면 오류 발생.! is v_result varchar2(6); -- 여기는 자리수를 써야 한다. begin select ca..

SQL 2022.07.12

PL/SQL(Procedure Language / Structured Query Language)

----- ***** PL/SQL 구문에서 변수의 사용법 ***** ----- /* -------------------------------------- 사원번호 사원명 성별 월급 -------------------------------------- 101 ... ... ... */ Procedure 생성하기 [방법 1] create or replace procedure pcd_empInfo (p_employee_id IN number) -- IN 은 입력모드를 말한다. number(5)와 같이 자리수를 넣어주면 오류이다.!!!! is -- 변수의 선언부 v_employee_id number(5); -- 자리수를 사용해도 된다. v_ename varchar2(50); -- 자리수를 사용해야 한다. v_g..

SQL 2022.07.12

시노님(Synonym, 동의어)

-- 테이블명이 아주 긴 경우 테이블명을 짧게 만들어서 사용하고자 할때 사용되는 것이 시노님(Synonym, 동의어)이다. select * from tbl_reservation_merge@teacherServer; -- 각 지점 DB서버(나)에서 하는 것 입니다. create or replace synonym tbl_bon_merge for tbl_reservation_merge@teacherServer; -- Synonym TBL_BON_MERGE이(가) 생성되었습니다. -- tbl_bon_merge 이 시노님(Synonym, 동의어)이고, for 다음에 나오는 tbl_reservation_merge@teacherServer 이 원래 이름이다. select * from tbl_bon_merge; ---..

SQL 2022.07.12

***** 시퀀스(sequence) 짱중요 *****

-- 시퀀스(sequence)란? 쉽게 생각하면 은행에서 발급해주는 대기번호표와 비슷한 것이다. -- 시퀀스(sequence)는 숫자로 이루어져 있으며 매번 정해진 증가치만큼 숫자가 증가된다. create sequence seq_yeyakno -- seq_yeyakno 은 시퀀스(sequence) 이름이다. start with 1 -- 첫번째 출발은 1 부터 한다. increment by 1 -- 증가치 값 2 3 4 5 ...... maxvalue 5 -- 최대값이 5 이다. -- nomaxvalue -- 최대값이 없는 무제한. 계속 증가시키겠다는 말이다. minvalue 2 -- 최소값이 2 이다. cycle 이 있을때만 minvalue 에 주어진 값이 사용된다. -- nocycle 일 경우에는 mi..

SQL 2022.07.12

오라클 계정 생성하기

------ ====== ***** 오라클 계정 생성하기 ***** ====== ------ -- 오라클 계정 생성을 위해서 sys 또는 system 으로 연결하여 작업을 해야 한다. * Oracle 11g 까지는 오라클 계정생성시 계정명앞에 c## 을 붙이는 것이 없었으나 Oracle 12 부터는 계정명앞에 c## 붙여야만 오라클 계정생성이 되어지도록 변경되었다. [SYS로 시작] -- show user; -- USER이(가) "SYS"입니다. -- c##orauser1 이라는 오라클 일반사용자 계정을 생성한다. 암호는 aclass 이다. create user c##orauser1 identified by aclass default tablespace users; -- User C##ORAUSER1이(..

SQL 2022.07.12