/* Table
ex) EVNT03TT
*/
CREATE TABLE EVNT03TT (
REGDATE DATE DEFAULT SYSDATE NOT NULL
, USERID VARCHAR2 NOT NULL
, EVENTID VARCHAR2 NOT NULL
, EVENTNO NUMBER NOT NULL
, USE_CNT NUMBER DEFAULT 0 NOT NULL
, REMINE_CNT NUMBER DEFAULT 0 NOT NULL
, CONSTRAINT EVNT03TPK PRIMARY KEY (REGDATE, USERID, EVENTID)
);
/*
INDEX :
Naming Guide
ex) EVNT03S1
CREATE INDEX EVNT03S1 ON EVNT03TT (USERID)
*/
/*
SEQUENCE :
ex) EVNT03SQ
CREATE SEQUENCE EVNT03SQ;
*/
/* COMMENT
*/
-- 테이블 및 컬럼 주석 (테이블의 주석과 컬럼의 주석을 써서 보내주셔야 나중에 도움이 많이 됩니다.)
COMMENT ON TABLE EVNT03TT IS '에이스 카드 이벤트 테이블';
COMMENT ON COLUMN EVNT03TT.USERID IS '회원 아이디';
COMMENT ON COLUMN EVNT03TT.EVENTID IS '이벤트 종류(응모1, 응모2)'
COMMENT ON COLUMN EVNT03TT.EVENTID IS '상품번호(1~13)'
COMMENT ON COLUMN EVNT03TT.USE_CNT IS '에이스 카드 사용 장수'
COMMENT ON COLUMN EVNT03TT.REMINE_CNT IS '남은 에이스 카드'
COMMENT ON COLUMN EVNT03TT.REGDATE IS '사용일자';

PL/SQL

IF / ELSE / ELSIF

IF <조건> THEN
ELSIF <조건> THEN
ELSE
END IF;

FOR IN LOOP

FOR i IN <최소값> .. <최대값> LOOP -- i는 선언하지 않아도 됨
실행문
END LOOP;

DECODE

SELECT DECODE(<비교값>, <값>, <참일경우 리턴값>, <아니오일경우 값>) FROM DUAL;


IF / ELSE

IF <조건>
BEGIN -- 생략 가능
END
ELSE
BEGIN -- 생략 가능
END

WHILE / BREAK / CONTINUE
- WHILE 다음에 조건으로 반복을 하고
BREAK를 만나면 WHILE 문 종료, CONTINUE 를 만나면 WHILE 으로 돌아간다

WHILE <조건>
BEGIN
반복 실행할 문장
END

CASE 문
SELECT CASE <변수> WHEN <값> THEN <리턴값> ESLE <리턴값> END FROM <테이블>
SELECT CASE WHEN <조건> THEN <리턴값> ELSE <리턴값> END FROM <테이블>


날짜 변환

Oracle : TO_CHAR(sysdate, 'YYYYMMDD HH24MISS')

MSSQL : CONVERT(VARCHAR(10), GETDATE(), 120) // 2003-10-01(120), 2003/10/01(111), 20031001(112)..


숫자형 변환

Oracle : TO_CHAR(1234567, 'L1,234,567') => w1,234,567

MSSQL : CONVERT(VARCHAR(10), CONVERT(money, 1234567), 1) => 1,234,567

출처 : 프로그램사랑, MY HAPPY SONG

+ Recent posts