본문 바로가기

분류 전체보기

(518)
PL// work 07 /* 예제1) EVEN_ODD( ID:NUMBER(4) GUBUN:VARCHAR2(10) ) 테이블을 작성하고 START숫자와 END숫자를 입력 받아 그 사이의 숫자를 ID에 저장하고 ID의 숫자가 짝수이면 GUBUN에 “짝수”를 홀수이면 GUBUN에 “홀수”라고 입력하는 SCRIPT를 WHILE문으로 작성하여라. 예) START : 1, END : 10 입력 -> 10개의 ROW가 된다. */ CREATE TABLE EVEN_ODD( ID NUMBER(4), GUBUN VARCHAR2(10) ); SET SERVEROUTPUT ON ACCEPT p_start PROMPT 'start 숫자' ACCEPT p_end PROMPT 'end 숫자' DECLARE v_start NUMBER(4) := &p_st..
PL//Trigger Trigger : 촉발시키다, 스스로 발생하다. 자동 호출되는 함수. (procedual, func과 다르게 직접 호출이아닌 자동 호출이 된다) 매개변수가 없음, select, insert, update 모두사용가능 before, after 원하는 지점에 Qurey문이 추가되고 그 후에 할지 그 전에 할지 정하는것. 회원한명 추가 INSERT INTO EMPLOYYES 같은사람 있는지 확인 -> 촉발 함수 제작 후 확인(b/f 선택) * before, after OLD NEW INSERT O DELETE O UPDATE O O SET SERVEROUTPUT ON; BEFORE 예) 부서명 재설정 CREATE TRIGGER trigger_test BEFORE --아랫문장이 업되이트 되기 전에 실행 UPDA..
PL// 함수 Function 매개변수, return값 SELECT 변수 앞에 ' : ' 필수 예) func 선언 후 RETURN 값 적어줘야함 CREATE FUNCTION func(p_val IN NUMBER) RETURN NUMBER IS v_val NUMBER; BEGIN v_val := p_val; v_val := v_val * 2; RETURN v_val; END; / 값을 넣어 실행1 SELECT func(3) FROM dual; 2 VAR v NUMBER; EXEC :v := func(12); --변수 앞에 : 필수 PRINT v; 세금계산 함수 CREATE FUNCTION tax(p_value IN NUMBER) RETURN NUMBER IS BEGIN RETURN(p_value * 0.15); END;..
pl//Cursor 컴퓨터의 표시 화면에서, 데이터의 입력·수정을 할 때의 위치 지정 및 기능 선택할 때 사용하는 마크. --암시적 커서 * 암시적 커서 ( Implicit Cursor ) - 오라클 DB 에서 실행되는 모든 SQL문장은 암시적인 커서가 생성되며, 커서 속성을 사용할 수 있다. - 모든 DML과 PL/SQL select 문에 대해 선언됨 - Oracle 서버에서 SQL문을 처리하기 위해 내부적으로 생성하고 관리한다. - SQL 커서 속성을 사용하면 SQL 문의 결과를 테스트 할 수 있다. - 암시적 커서는 SQL 문이 실행되는 순간 자동으로 OPEN과 CLOSE 를 실행 한다. - 암시적 커서는 오라클이나 PL/SQL 실행 메커니즘에 의해 처리되는 SQL 문장이 처리되는 곳에 대한 익명의 주소다. --수정하..
PL// PROCEDURE script -> block화 -> 함수화 매개변수, return 값 PROCEDURE - INSERT, DELETE, UPDATE -> CREATE로 생성하지만 ALTER로 못고침 FUNCTION - SELECT TRIGGER - 확인용 -> CALLBACK (자동호출) --프로시저 생성 CREATE PROCEDURE HELLOPROC IS msg VARCHAR2(10); BEGIN msg := 'hello proc'; dbms_output.put_line(msg || ' 호출되었음'); END; / --함수호출 EXEC helloproc; -- 지정 값 출력 CREATE PROCEDURE MYPROC(inNum IN NUMBER, outNum OUT NUMBER) -->NUMBER, VARCHAR뒤에..
입력받아 EMP테이블에 자료를 등록, 시퀀스, 조건문 --이름, 급여, 부서번호를 입력받아 EMP테이블에 자료를 등록하는 SCRIPT를 작성하라. --단 10번 부서일 경우, 입력한 급여의 20%를 추가하고 --초기값이 9000부터 9999까지 1씩 증가하는 ESQUENCE(EMP_EMPNO_SEQ)작성하여 --사용하고 아래의 표를 참고하여라. --이름 : 홍길동 --급여 : 2000 --부서번호 : 10 CREATE SEQUENCE EMP_EMPNO_SEQ INCREMENT BY 1 START WITH 9000 MAXVALUE 9999; ACCEPT p_name PROMPT '이 름:' ACCEPT p_sal PROMPT '급 여:' ACCEPT p_deptno PROMPT '부서번호:' DECLARE v_name employees.last_name%TY..
PL// work 06 --예제 1) 사원번호 입력받고 그 사원의 급여에 세금을 출력하라( 세금은 5%로 가정한다) ACCEPT u_empno PROMPT '사원 번호를 입력하세요' DECLARE u_sal EMPLOYEES.salary%TYPE := 1000; u_salTotal NUMBER; BEGIN SELECT salary INTO u_saltotal FROM employees WHERE employee_id = &u_empno; SYS.dbms_output.put_line(&u_empno || '번 사원의 급여 : ' || u_salTotal); UPDATE employees SET salary = salary*0.05 WHERE employee_id = &u_empno; SELECT salary INTO u_salt..
PL 1 PL/SQL PL : Procedural == 처리자 Extension Process -> Procedure SQL 을 확장한 순차적 언어 -> Procedure, Function, Trigger in out in out insert select delete update 제어문 : if, while, for +script DECLARE --선언부 message VARCHAR2(10); --변수명, String message과 동일 BEGIN --실행부 message := 'hello pl'; -- message = "hello pl"과 동일 SYS.dbms_output.put_line('message = ' || message); --예외처리문 END; / Script 구조 1. 선언부 : 변수, 상수,..