(사용형식)
컬럼명 NUMBER[(정밀도|*[,스케일])]
CREATE TABLE TEMP05(
COL1 NUMBER(8,2),
COL2 NUMBER(7,3),
COL3 NUMBER(*,2),
COL4 NUMBER(8),
COL5 NUMBER(8,-2),
COL6 NUMBER);
INSERT INTO TEMP05(COL1,COL2,COL3,COL4,COL5,COL6)
VALUES(123456.7891,123456.7891,123456.7891,123456.7891,123456.7891,123456.7891);
INSERT INTO TEMP05(COL1,COL2,COL3,COL4,COL5,COL6)
VALUES(123456.7891,3456.7891,123456.7891,123456.7891,123456.7891,123456.7891);
(사용형식)
컬럼명 DATE
(EX)
CREATE TABLE TEMP06(
COL1 DATE,
COL2 DATE,
COL3 DATE);
INSERT INTO TEMP06 VALUES(SYSDATE,SYSDATE-20,SYSDATE+30);
SELECT*FROM TEMP06; --날짜까지만 출력됨
SELECT TO_CHAR (COL1,'YYYY-MM-DD HH24:MI:SS'),
TO_CHAR (COL2,'YYYY-MM-DD HH24:MI:SS'),
TO_CHAR (COL3,'YYYY-MM-DD HH24:MI:SS')
FROM TEMP06;
며칠 지났는지 세주기
SELECT (TRUNC(SYSDATE)-TRUNC(TO_DATE('00010101')))-1
FROM DUAL;
날짜 구하기. 윤년계산
SELECT MOD((TRUNC(SYSDATE)-TRUNC(TO_DATE('00010101')))-1,7)
FROM DUAL;
7로나눈 나머지가 0이면 일요일, 1이면 월요일 . . .
00010101%7 = 0, 즉 이날은 일요일
(사용형식)
컬럼명 TIMESTAMP
컬럼명 TIMESTAMP WITH TIME ZONE
컬럼명 TIMESTAMP WITH LOCAL TIME ZONE
(EX)
CREATE TABLE TEMP07(
COL1 TIMESTAMP,
COL2 TIMESTAMP WITH TIME ZONE,
COL3 TIMESTAMP WITH LOCAL TIME ZONE);
INSERT INTO TEMP07 VALUES(SYSDATE,SYSDATE,SYSDATE);
SELECT*FROM TEMP07;
(사용형식)
컬럼명 RAW(크기)
(EX)
CREATE TABLE TEMP08(
COL1 RAW(2000));
INSERT INTO TEMP08 VALUES(HEXTORAW('FFC7'));
INSERT INTO TEMP08 VALUES(HEXTORAW('1111111111000111'));
SELECT * FROM TEMP08;
(사용형식)
컬럼명 BFILE
(EX) BFILE 타입을 이용한 이미지 저장 절차
테이블 생성
CREATE TABLE TEMP09(
COL1 BFILE);
--CREATE TABLE TEMP09(
COL1 BFILE);
이미지 준비(jpg타입)
경로객체(DIRECTORY) 생성
CREATE DIRECTORY 디렉토리명 AS경로명;
--CREATE DIRECTORY TEST_DIR AS 'D:\A_TeachingMaterial\02_Oracle';
자료삽입
INSERT INTO TEMP09
VALUES (BFILENAME('TES_DIR','SAMPLE.jpg'));
SELECT * FROM TEMP09;
(사용형식)
컬럼명 BLOB;
(EX) BLOB 자료타입에 이미지 저장
테이블 생성
CREATE TABLE TEMP10(
COL1 BLOB);
PL/SQL을 이용한 저장모듈 작성
DECLARE
L_DIR VARCHAR2(20):='TEST_DIR';
L_FILE VARCHAR2(30):='SAMPLE.jpg';
L_BFILE BFILE;
L_BLOB BLOB;
BEGIN
INSERT INTO TEMP10 VALUES(EMPTY_BLOB())
RETURN COL1 INTO L_BLOB;
L_BFILE:=BFILENAME(L_DIR,L_FILE);
DBMS_LOB.FILEOPEN(L_BFILE, DBMS_LOB.FILE_READONLY);
DBMS_LOB.LOADFROMFILE(L_BLOB,L_BFILE,DBMS_LOB.GETLENGTH(L_BFILE));
DBMS_LOB.FILECLOSE(L_BFILE);
COMMIT;
END;
SELECT*FROM TEMP10;
저장 잘 되었고, 내용확인은 오라클에서 못함