연습문제
PL/SQL 반복문을 활용해서 다음의 결과를 도출하시오
결과 (1)
*
**
***
****
*****
1 2 3 4 5 6 7 8 | begin for i in 1..5 loop for j in 1..i loop dbms_output.put('*'); end loop; dbms_output.new_line; end loop; end; | cs |
(2)
*****
****
***
**
*
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 | declare d_num number := 5; begin while d_num>0 loop for i in reverse 1..d_num loop dbms_output.put('*'); end loop; dbms_output.new_line; d_num := d_num-1; end loop; end; / dbms_output.put_line('d_num'); 출력한 뒤 줄이 바뀜 dbms_output.put('Hello World'); put는 옆으로 출력할 때 씀, 엔터를 쳐줘야 출력됨 dbms_output.new_line; -- 키보드에서 엔터키를 치는 것 begin for i in 1..5 loop for j in i..5 loop dbms_output.put('*'); end loop; dbms_output.new_line; end loop; end; | cs |
(3)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | begin for x in 1..100 loop n1 := mod(x,10); n10 := trunc(x/10,0); if n10 in (3,6,9) and n1 in (3,6,9) then dbms_output.put(rpad('# ',3,' ')); elsif n10 in (3,6,9)or n1 in(3, 6, 9) then dbms_output.put(rpad('* ',3,' ')); else dbms_output.put(rpad(x,3,' ')); end if; if mod(x,10) = 0 then dbms_output.new_line; -- dbms_output.put_line('n1 : '||rpad(n1,3,' ')); -- dbms_output.put_line('n10 : '||rpad(n10,3,' ')); end if; end loop; dbms_output.new_line; end; / | cs |
(4) 팩토리얼 계산
팩토리얼 계산
1 2 3 4 5 6 7 8 9 10 11 12 13 | -- factorial !! accept num prompt '팩토리얼을 계산할 정수를 입력하세요. ' declare rst number:=1; begin for i in 1..&num loop rst := rst * i; end loop; DBMS_OUTPUT.put_line(&num || ' factorial 계산값은 : '|| rst); end; / | cs |
'DB > Oracle' 카테고리의 다른 글
Oracle DB13_VARRAY, 커서 (0) | 2019.10.07 |
---|---|
Oracle DB12_레코드,연관배열 (0) | 2019.10.03 |
Oracle DB10_조건문/반복문 연습문제 (0) | 2019.09.30 |
Oracle DB10_ PL/SQL 조건문,반복문,데이터타입 (0) | 2019.09.30 |
Oracle DB9_PL/SQL 시작 (0) | 2019.09.26 |