일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- GRANT VIEW
- 대덕인재개발원
- 환경설정
- 제네릭
- 다형성
- 사용자예외클래스생성
- EnhancedFor
- exception
- 컬렉션 타입
- 오라클
- 메소드오버로딩
- 인터페이스
- abstract
- 자동차수리시스템
- 예외미루기
- 정수형타입
- NestedFor
- 한국건설관리시스템
- 참조형변수
- 어윈 사용법
- 객체 비교
- 집합_SET
- 생성자오버로드
- 컬렉션프레임워크
- 예외처리
- 추상메서드
- oracle
- cursor문
- 자바
- Java
- Today
- Total
목록대덕인재개발원/대덕인재개발원_Oracle DB (23)
거니의 velog
--분류테이블에 추가되거나, 변경될 때 분류코드를 항상 대문자로 처리하는 트리거 예제 CREATE or REPLACE TRIGGER tg_lprod_upper BEFORE INSERT or UPDATE ON lprod FOR EACH ROW BEGIN :NEW.lprod_gu := UPPER(:NEW.lprod_gu); END; / INSERT INTO lprod VALUES ((SELECT MAX(LPROD_ID) + 1 FROM LPROD), 'tt07', '트리거 테스트 '); SELECT * FROM lprod; SET SERVEROUTPUT ON; --장바구니 테이블에 입력이 발생할 때 재고 수불 테이블에 출고, 현재고를 변경하는 트리거 예제(2023년으로 예제 작성) CREATE or REPL..
-- 급여 정보를 자동 삭제하는 트리거 작성하기 --사원이 삭제되면 그 사원의 급여 정보도 자동 삭제되는 트리거를 작성해 보도록 합시다. --1. 이번에는 사원 테이블의 로우를 삭제해보자. DELETE FROM EMP01 WHERE EMPNO=2; --2. 사원번호 2를 급여 테이블에서 참조하고 있기 때문에 삭제가 불가능하다. --사원이 삭제되려면 그 사원의 급여 정보도 급여 테이블에서 삭제되어야 합니다. --사원의 정보가 제거 될 때 그 사원의 급여 정보도 함께 삭제하는 내용을 트리거로 작성하도록 합시다. CREATE OR REPLACE TRIGGER TRG_03 AFTER DELETE ON EMP01 FOR EACH ROW BEGIN DELETE FROM SAL01 WHERE EMPNO=:old.EM..
SET SERVEROUTPUT ON; --OUT 매개변수 예제 2 CREATE OR REPLACE PROCEDURE usp_MemberCartTop ( p_year IN VARCHAR2, p_amt OUT NUMBER , p_mem_name OUT member.mem_name%TYPE ) IS v_year VARCHAR2(5); BEGIN v_year := (p_year || '%'); SELECT mem_name, mem_amt INTO p_mem_name, p_amt FROM ( SELECT mem_name, SUM(prod_price * cart_qty) mem_amt FROM member, cart, prod WHERE cart_no LIKE v_year AND cart_member = mem_i..
--EXIT --EXIT [label] [WHEN 조건] -- - 반복문을 빠져 나간다. -- - WHEN 을 사용하여 조건에 따라서 빠져나간다. --EXIT WHEN 을 사용해 1부터 10까지 더하기 DECLARE v_sum NUMBER := 0; v_var NUMBER := 1; BEGIN LOOP v_sum := v_sum + v_var; v_var := v_var + 1; EXIT WHEN v_var > 10 ; END LOOP; DBMS_OUTPUT.PUT_LINE('1 부터 10 까지의 합 = ' || v_sum); END; / --FOR 문 --FOR index IN [REVERSE] 최소값 .. 최대값 LOOP -- 처리문장들; --END LOOP; --- index는 1씩 증가하는 자동선..
--WHILE 문 --반복될 때마다 조건을 확인하고 조건이 TRUE가 되어야 loop실행 -- - 조건이 만족할 때까지 반복 처리 -- - EXIT문은 WHILE LOOP를 벗어나게 한다 -- - CONTINUE문은 11g부터 제공된다. --1부터 10까지 더하기 SET SERVEROUTPUT ON; DECLARE V_SUM NUMBER := 0; V_VAR NUMBER := 1; BEGIN WHILE V_VAR
--조건에 따른 다중 ELSIF SET SERVEROUTPUT ON; -- 출력옵션으로 ON DECLARE v_num NUMBER := 67; BEGIN DBMS_OUTPUT.ENABLE; IF v_num > 90 THEN DBMS_OUTPUT.PUT_LINE('수'); ELSIF v_num > 80 THEN DBMS_OUTPUT.PUT_LINE('우'); ELSIF v_num > 70 THEN DBMS_OUTPUT.PUT_LINE('미'); ELSE DBMS_OUTPUT.PUT_LINE('분발합시다.'); END IF; END; / --SELECT INTO 로 변수에 값을 할당 SELECT * FROM PROD; DECLARE v_avg_sale PROD.PROD_SALE%TYPE; --NUMBER(1..
--2020년도 판매금액이 8천만 이상인 거래처의 담당자 컬럼에 -- '우수거래처'로 갱신 ( WHERE절에 EXISTS문 사용 ) --1. 거래처테이블의 담당자 조회 SELECT BUYER_ID AS "거래처코드" , BUYER_NAME AS "거래처명" , BUYER_CHARGER AS "담당자" FROM BUYER; --2. 판매금액 8천만 이상 우수거래처로 지정(조회) – EXISTS를 통해 INTERSACT (교집합)를 구현 -- * BUYER테이블과 CART테이블은 직접적인 관계가 없으므로 PROD테이블을 통해 JOIN 실현 SELECT BUYER_ID AS "거래처코드" , BUYER_NAME AS "거래처명" , BUYER_CHARGER AS "담당자" , '우수거래처' AS "우수거래처"..
--사원번호가 7499인 사원보다 급여가 많은 사원을 표시하시오. 사원이름과 담당 업무 SELECT * FROM EMP; SELECT E2.ENAME 사원이름, E2.JOB 담당업무, E2.SAL 급여 FROM EMP E1, EMP E2 WHERE E1.EMPNO = '7499' AND E1.SAL < E2.SAL; -- 최소급여를 받는 사원의 이름, 담당업무 및 급여를 표시하시오. SELECT MIN(SAL) FROM EMP; SELECT ENAME 사원이름 , JOB 담당업무 , SAL 급여 FROM EMP WHERE SAL = (SELECT MIN(SAL) FROM EMP); --평균급여가 가장 적은 직급의 직급 이름과 직급의 평균을 구하시오. SELECT * FROM EMP; SELECT JOB ..
-- CREATE TABLE A (NO NUMBER(3) NOT NULL, NAME VARCHAR2(20) NOT NULL, CONSTRAINT PK_A PRIMARY KEY(NO)); CREATE TABLE B (NO NUMBER(3) NOT NULL, SCORE NUMBER(3) NOT NULL, CONSTRAINT PK_B PRIMARY KEY(NO)); INSERT INTO A VALUES(1, '김철수'); INSERT INTO A VALUES(2, '박미미'); INSERT INTO A VALUES(3, '정다비'); INSERT INTO A VALUES(4, '멘토스'); INSERT INTO A VALUES(5, '박버거'); INSERT INTO B VALUES(1, 60); INSERT..
-- SUBSTR 함수를 사용하여 4월에 입사한 사원을 출력하시오. SELECT * FROM EMP; SELECT * FROM EMP WHERE SUBSTR(HIREDATE, 4, 2) LIKE '04'; -- MOD 함수를 사용하여 사원번호가 짝수인 사람만 출력하시오. SELECT * FROM EMP; SELECT * FROM EMP WHERE 1=1 AND MOD(EMPNO, 2) = 0; -- 입사일을 년도는 2자리(YY), 월은 숫자(MON)로 표시하고 요일은 약어(DD)로 지정하여 출력하시오. SELECT * FROM EMP; SELECT TO_CHAR(HIREDATE, 'YY') YY , TO_CHAR(HIREDATE, 'MON') MON , TO_CHAR(HIREDATE, 'DY') DD F..