date_format 함수 만들기

 

날짜 데이터를 입력받아 TO_CHAR 함수를 이용하여 입력받은 날짜 데이터를

문자열 데이터로 변환하는 함수


사용자 삽입 이미지

이렇게 하여 함수를 생성한 후
SQL>SELECT empno, date_format(HIREDATE) FROM EMP; 하면
사용자 삽입 이미지

[참고] 생성된 함수의 입출력인자 보기 및 스크립보기
사용자 삽입 이미지
사용자 삽입 이미지

이상으로 간단한 함수를 하나 만들어 DATE형 데이터를 문자형으로 변환하는 함수를 만들어 보았다.
응용해서 다른 것도 만들어 보시길..

Posted by 원철연(체르니)
,
사용자 삽입 이미지

위의 EMPNO=7499인 직원의 SAL(월급)이 얼마인지 알아오는 FUNCTION을 만들어보자.
사용자 삽입 이미지

위의 SQL문들은 FUNCTIon을 만들고 실행하고 출력하는 전과정을 나타낸 것으로 이제
SQLPLUS에서 처리한 결과를 보면

사용자 삽입 이미지


이상으로 간략하게 함수에 대해서 알아보았다.

'컴퓨터 관련 무료강좌 > 오라클(ORACLE)' 카테고리의 다른 글

ORACLE-PL/SQL-SP3  (1) 2008.04.28
ORACLE-SP사용하기2  (1) 2008.04.28
ORACLE-SP사용하기1  (0) 2008.04.28
ORACLE-SELECT문을 이용한 테이블 생성  (0) 2008.04.25
ORACLE-서브쿼리사용하기  (0) 2008.04.22
Posted by 원철연(체르니)
,

ROUND() 반올림 함수

SELECT ROUND(45.275,1) FROM DUAL;
--결과 : 45.3

  1    2    3    4   .   5   6   7
 -4  -3   -2  -1   0   1   2   3
ROUND 함수는 양수 자리의 반올림은 그 자리에서 소수점 아래의 반올림은
그 뒷자리에서 반올림을 한다.

여기서 FROM 다음 DUAL이라는 테이블이 궁금할 것 같은데요.
DUAL 테이블은 조회를 하기 위한 형식적인 테이블임.

TRUNC() 함수
SELECT TRUNC(45.245,2) FROM DUAL;
-- 결과 : 45.24

SIGN() 함수
양수 1, 음수 -1, 0은 0을 반환한다.
SELECT SIGN(100), SIGN(0), SIGN(-100) FROM DUAL;
결과 : 순서대로 1 0 -1

SUBSTR()
문자 추출함수
SELECT SUBSTR('ABCDEFG', 1,3) FROM DUAL; 결과 : ABC
SELECT SUBSTR('ABCDEFG', 3,2) FROM DUAL; 결과 : CD
SELECT SUBSTR('ABCDEFG', -3,2) FROM DUAL; 결과 : EF
SELECT SUBSTR('ABCDEFG', -3) FROM DUAL; 결과 : EFG
SELECT SUBSTR('ABCDEFG', -5) FROM DUAL; 결과 : CDEFG

INSTR()
문자의 위치값을 반환
SELECT INSTR('ABCDEFG', 'C') FROM DUAL; 결과 : 3

RTRIM(), LTRIM()
좌, 우측에서 특정문자를 제거한다.
SELECT RTRIM('ABBBBB', 'B') FROM DUAL; 결과 : A
SELECT RTRIM('A     ', ' ') FROM DUAL; 결과 : A
SELECT LTRIM('BBBABB', 'B') FROM DUAL; 결과 : ABB

변환 함수
TO_CHAR(숫자나 날짜를 문자로 변환)

MM : 달수(10)
MON : 3문자  달이름(MAR)
MONTH : 달의 완벽한 이름(MARCH)
DD : 달의 날짜수(22)
D: 주의 일수(2)
DY: 3문자 요일이름(MON)
DAY: 월의 완벽한 이름(MONTH)
YYYY: 4문자 년도(2007)
YY : 2문자 년도(07)
RM : 로마식 달수(IX)

SELECT SYSDATE, TO_CHAR(SYSDATE,'D') FROM DUAL;  결과 : 5
SELECT SYSDATE, TO_CHAR(SYSDATE,'DY') FROM DUAL; 결과 : THU
SELECT SYSDATE, TO_CHAR(SYSDATE,'RM') FROM DUAL; 결과 : IV
SELECT SYSDATE, TO_CHAR(SYSDATE,'YYYY') FROM DUAL; 결과 : 2008
SELECT SYSDATE, TO_CHAR(SYSDATE,'YY') FROM DUAL; 결과 : 08
SELECT SYSDATE, TO_CHAR(SYSDATE,'DD') FROM DUAL; 결과 : 17
SELECT SYSDATE, TO_CHAR(SYSDATE,'YY DD') FROM DUAL; 결과 : 08 17

시간 형식 요소
HH, HH12 : 12시간
HH24 : 24시간
MI:분
SS : 초
SSSSS: 초의 자리수
AM, PM : 오전, 오후
A.M., P.M. : 오전, 오후

SELECT  TO_CHAR(SYSDATE,'HH24:MI:SSSS') FROM DUAL; 결과 : 14:26:1717
SELECT  TO_CHAR(SYSDATE,'AMHH:MI') FROM DUAL; 결과 : PM02:26
SELECT  TO_CHAR(SYSDATE,'AM HH:MI') FROM DUAL; 결과 : PM 02:26
SELECT  TO_CHAR(SYSDATE,'P.M. HH:MI') FROM DUAL; 결과 : P.M. 02:26

SP : 서수
TH : 서수
SELECT SYSDATE, TO_CHAR(SYSDATE, 'DD') FROM DUAL; 결과 : 17
SELECT SYSDATE, TO_CHAR(SYSDATE, 'DDSP') FROM DUAL; 결과 : SEVENTEEN
SELECT SYSDATE, TO_CHAR(SYSDATE, 'DDTH') FROM DUAL; 결과 : 17TH
SELECT SYSDATE, TO_CHAR(SYSDATE, 'DDSPTH') FROM DUAL; 결과 : SEVENTEEN

REPLACE()
주어진 문자열을 특정 문자열로 교체한다.
SELECT * FROM EMP;

사용자 삽입 이미지

JOB에 포함된 'MAN'을 'PERSON'으로 바꿔라
SELECT EMPNO, JOB, REPLACE(JOB, 'MAN', 'PERSON') FROM EMP;
사용자 삽입 이미지

이와에도 많은 함수들이 있지만 공부하면서 하나씩 익혀보는 것도 재미가 있을 것이라고 생각하며
이상..마칩니다.

Posted by 원철연(체르니)
,