반응형
연습문제 sql은 모두 제가 직접 작성한 것이므로 오타, 오답이 존재할 수 있습니다.
궁금하신 점이 추가로 있을 시에는 문의하시면 최대한 답변드리겠습니다.
1. TEST 이름으로 아래의 테이블을 생성하여라.
칼럼명 | A | B | C |
DataType | num | num | v2 |
길이 | 3 | 3 | 10 |
[답]
create table test
(A number(3),
B number(3),
C varchar2(10));
2. 프로시저 실행 시 2개의 데이터를 입력받아 2개의 데이터가 같으면 "EQUAL", 같지 않으면 "NOT EQUAL"의 값을 테이블 TEST에 삽입시키는 프로시저 P_TEST를 생성하여라.
[답]
create or replace procedure P_TEST(v_a in number, v_b in number)
is
v_c test.c%type;
begin
if v_a = v_b then
v_c := 'EQUAL';
else
v_c := 'NOT EQUAL';
end if;
insert into test(a, b, c)
values(v_a, v_b, v_c);
end;
/
+) (10, 10)과 (10, 20)을 실행시키고 결과를 확인하여라.
[답]
(10, 10) 프로시저 실행
exec P_TEST(10, 10)
결과 확인
select *
from test;
(10, 20) 프로시저 실행
exec P_TEST(10, 20)
결과 확인
select *
from test;
3. 위의 프로시저에서 두 개의 값을 자동으로 입력받을 수 있도록 FOR 문을 사용하여 테이블 TEST에 삽입하는 PL/SQL 블록을 생성하여라.(I는 1에서 3까지, J는 1에서 5까지)
[답]
begin
for i in 1..3 loop
for j in 1..5 loop
p_test(i, j);
end loop;
end loop;
end;
/
4. 테이블 TEST의 내용을 확인하여라.
[답]
select *
from test;
5. 테이블 TEST의 A 칼럼과 B 칼럼의 값이 같은 것이 몇 개 있는지를 알아보는 함수 F_TEST를 생성하여라.
[답]
create or replace function F_TEST return number
is
v_count number(2) := 0;
begin
select count(*)
into v_count
from test
where a = b;
return(v_count);
end;
/
6. 5번의 결과를 확인하여라.
[답]
variable y number
exec :y := F_TEST
print y
+) 다음과 같은 조건을 만족하는 프로시저 P2_TEST를 작성하여라.
- 테이블 TEST의 A 칼럼과 B 칼럼의 값을 비교해서 A가 B보다 크면 C의 값을 "A가 B보다 크다"로 변경
- B가 A보다 크면 큰 행들은 선택해서 크면 "B가 A보다 크다"로 변경
- A와 B가 같으면 "A와 B가 같다"로 변경.
[답]
create or replace procedure P2_TEST
is
begin
update test
set c = 'A가 B보다 크다'
where a > b;
update test
set c = 'B가 A보다 크다'
where a < b;
update test
set c = 'A와 B가 같다'
where a = b;
end;
/
+) 프로시저를 실행시키고 결과를 확인하여라.
[답]
해당 문제 테이블은 C의 데이터 유형이 VARCHAR2(10)으로 설정되어있습니다.
따라서 TEST 테이블의 데이터 유형을 변경시키고 진행해주어야합니다.
alter table TEST modify C varchar2(20);
프로시저 실행
exec P2_TEST
결과 확인
select *
from test;
궁금한 점이 있을 시 덧글 주시면 최대한 답글 드리겠습니다.
반응형
'연습 문제' 카테고리의 다른 글
[생능][개정7판]인공지능 시대의 컴퓨터 개론 01장 연습 문제 답안 (2) | 2023.01.06 |
---|---|
예제 따라가며 쉽게 배우는 오라클 연습 문제 p.344 ~ 345 (수정중) (0) | 2023.01.06 |
예제 따라가며 쉽게 배우는 오라클 연습 문제 p.308 (0) | 2023.01.04 |
예제 따라가며 쉽게 배우는 오라클 연습 문제 p.298 (0) | 2023.01.04 |
예제 따라가며 쉽게 배우는 오라클 연습 문제 p.226 (0) | 2023.01.03 |
댓글