-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path20200728.sql
More file actions
175 lines (116 loc) · 3.28 KB
/
20200728.sql
File metadata and controls
175 lines (116 loc) · 3.28 KB
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
SELECT *
FROM TB_JDBC_USER;
desc board;
INSERT INTO board VALUES (1,'123',sysdate,'123','123');
INSERT INTO board VALUES (2,'123',sysdate,'jun2','123');
commit;
SELECT A.board_num, A.board_title , A.board_text, b.user_name, A.board_date
FROM board A LEFT OUTER JOIN TB_JDBC_USER B
ON A.board_author = B.user_id
ORDER BY A.board_num DESC;
SELECT NVL(MAX(board_num),0) +1 max_num FROM board;
desc board;
-- 화면 출력을 활성화 하는 설정 ( 접속후 1회만 실행하면 유지)
SET SERVEROUTPUT ON;
-- 간단한 PL/SQL익명 블럭
DECLARE
deptno NUMBER(2);
dname VARCHAR2(20);
BEGIN
SELECT deptno, dname INTO deptno, dname
FROM dept
WHERE deptno =10;
DBMS_OUTPUT.PUT_LINE(deptno || ' ' || dname);
END;
/
DECLARE
deptno dept.deptno%TYPE;
dname dept.dname%TYPE;
BEGIN
SELECT deptno, dname INTO deptno, dname
FROM dept
WHERE deptno =10;
DBMS_OUTPUT.PUT_LINE(deptno || ' ' || dname);
END;
/
-- print dept라는 프로시져 생성
-- 인자 " 없음
-- 로직 dept 테이블에서 10번부서의 부서이름과 부서위치를 로그로 출력
--view와 비교
--1. 뷰생성
--2. select * from 뷰
--
--프로시저 절차
--1. 프로시저 생성 CREATE OR REPLACE ....
--2. 프로지셔 실행
-- 선언부
CREATE OR REPLACE PROCEDURE print_dept IS
dname dept.dname%TYPE;
loc dept.loc%TYPE;
BEGIN
SELECT dname, loc INTO dname ,loc
FROM dept
WHERE deptno =10;
DBMS_OUTPUT.PUT_LINE(dname || ' ' || loc);
END;
/
--준영쓰~ 오늘도 힘내세여~!!!!!>_<
EXEC print_dept;
CREATE OR REPLACE PROCEDURE print_dept(p_deptno IN dept.deptno%TYPE) IS
v_dname dept.dname%TYPE;
v_loc dept.loc%TYPE;
BEGIN
SELECT dname, loc INTO v_dname ,v_loc
FROM dept
WHERE deptno = p_deptno;
DBMS_OUTPUT.PUT_LINE(v_dname || ' ' || v_loc);
END;
/
EXEC print_dept(20);
-- 프로시저 생성 실습
CREATE OR REPLACE PROCEDURE printemp(p_empno IN emp.empno%TYPE) IS
v_ename emp.ename%TYPE;
v_dname dept.dname%TYPE;
BEGIN
SELECT ename, dname INTO v_ename ,v_dname
FROM emp, dept
WHERE emp.deptno = dept.deptno AND empno = p_empno;
DBMS_OUTPUT.PUT_LINE(v_ename || ' ' || v_dname);
END;
/
EXEC printemp(7782);
SELECT * FROM dept_test;
DROP TABLE dept_test;
CREATE TABLE dept_test AS
SELECT *
FROM dept;
SELECT * FROM dept_test;
CREATE OR REPLACE PROCEDURE registdept_test(p_deptno IN dept_test.deptno%TYPE,
p_dname IN dept_test.dname%TYPE , p_loc IN dept_test.loc%TYPE) IS
BEGIN
INSERT INTO dept_test (deptno, dname, loc) VALUES (p_deptno , p_dname, p_loc);
commit;
END;
/
SELECT * from dept_test;
exec REGISTDEPT_TEST(98, 'ddit' , 'daejoen');
CREATE OR REPLACE PROCEDURE UPDATEdept_test(p_deptno IN dept_test.deptno%TYPE,
p_dname IN dept_test.dname%TYPE , p_loc IN dept_test.loc%TYPE) IS
BEGIN
UPDATE dept_test SET dname=p_dname, loc=p_loc WHERE deptno = p_deptno;
commit;
END;
/
exec UPDATEDEPT_TEST(98, 'ddit_m' , 'daejoen');
SELECT * from dept_test;
DECLARE
v_dept_row dept%ROWTYPE;
BEGIN
SELECT * INTO v_dept_row
FROM dept
WHERE deptno=10;
DBMS_OUTPUT.PUT_LINE('dname : ' || v_dept_row.dname);
DBMS_OUTPUT.PUT_LINE('deptno : ' || v_dept_row.deptno);
DBMS_OUTPUT.PUT_LINE('loc : ' || v_dept_row.loc);
END;
/