일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- sqld deny
- java
- SQL
- java 성별
- JAVA 연산자
- sqld grant
- java 로또
- SQLD 특강
- sqld remame
- java 함수
- java Fish
- JAVA for문
- Java 메소드
- java spider
- sqld trigger
- PLSQL
- JAVA 제어문
- SQLD 옵티마이저
- java string
- SQLD 핵심포인트
- SQLD 자격시험 개념정리
- java 구구단
- sqld revoke
- Java Cat
- java 논리연산자
- java 단축키
- java 상속
- sqld 옵티마이져
- java Animal
- sqld 자격증
- Today
- Total
SQLD, ECLIPS, JAVA,PYTHON, NODE....
[Oracle] PL/SQL Class 5 - 과제 본문
1. 날짜 형태의 값을 가지고 [xx년 xx개월]형태로 기간을 반환하는 함수
--호출형태
col star format a50
col 근무기간 format a20
select saname, sapay, f_graph(sapay) star, sahire, f_gigan(sahire) 근무기간 from sawon;
create or replace function f_gigan
(v_date date)
return varchar2
is
begin
return floor(months_between(sysdate, v_sahire)/12) || '년 ' || floor(mod(months_between(sysdate, v_sahire), 12)) || '개월';
end;
/
2. 날짜에 년수, 개월수, 날수를 매개변수로 보내 더하는 함수를 생성하라
-- (입사일로부터 년 수/개월/일 을 더해서 출력하는 함수)
create or replace function add_date(
v_hire date,
year number,
month number,
day number)
return date
is
begin
return add_months(v_hire,((year*12)+month))+day;
end;
/
--입사일로부터 3년 1개월 3일 더한값 출력
--적용 예) select saname, sahire, add_date(sahire, 3, 1, 3) "심사일" from sawon;
3. 주민번호를 가지고 나이를 계산하는 함수를 생성하라.
--적용 예) select goname, gojumin, f_jumin_age(gojumin) age from gogek;
create or replace function f_jumin_age(
jumin varchar2)
return varchar2
is
cen number(2);
year number(4);
go_year number(2);
begin
cen := substr(jumin,8,1); -- 1900년생, 2000년생 구별하기 위한 데이터
year := to_char(sysdate,'yyyy'); -- 현재의 년도 구한 데이터
go_year := substr(jumin,1,2); -- 년생 구하기
if(cen = 1 or cen = 2) then
return year-(1900+go_year)||'살';
else
return year-(2000+go_year)||'살';
end if;
end;
/
'PLSQL' 카테고리의 다른 글
[Oracle] SQL PLSQL - 삭제된 테이블 휴지통으로 보내는 명령어 (0) | 2023.11.29 |
---|---|
[Oracle] PL/SQL Class 6 - 주민번호 유효성 체크, 트리거(trigger), 업무자동화(연습), 과제(4) (0) | 2023.11.14 |
[Oracle] PL/SQL Class 5 - replace procedure, sequence, replace function, 아웃풋, 과제(3문제) (0) | 2023.11.13 |
[Oracle] PL/SQL Class 4 - 과제2, 과제3 (2) | 2023.11.13 |
[Oracle] PL/SQL - 명령프롬프트 정리 (0) | 2023.11.10 |