태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

'D.B./Oracle'에 해당되는 글 3건

  1. 자동증가 시퀀스 생성 (Sequence) 2009/07/03
  2. Toad 에 Oracle 10g XE 버전 TNS 설정하기 2007/12/12
  3. 오라클 내장 함수 2007/11/05

Sequence 란?

  • Oracle 내부에서 순차적으로 증가되는 값을 가지는 유일(Unique) 객체임.
  • 시퀀스를 생성하게 되면 이것을 이용하여 순차적으로 증가되는 관리번호같은 것등을 자동생성함.
  • 메모리에 cache되었을때에 Sequence 값의 액세스 효율이 증가함.
  • 테이블과 독립적으로 생성되므로 여러테이블에서 사용될수 있음.

---------------------------------------------------------------------------
SEQUENCE 생성 구문:
---------------------------------------------------------------------------

CREATE SEQUENCE [시퀀스이름]
START WITH
[n]
INCREMENT BY [n]
MAXVALUE    [n] |     NOMAXVALUE
MINVALUE     [n] |     NOMINVALUE
CYCLE                 |      NOCYCLE


  • START WITH [n] - n으로 시퀀스 시작값을 설정한다.
  • INCREMENT BY [n] - n 만큼 시퀀스가 증가한다.
  • MAXVALUE, MINVALUE - 지정된 숫자만큼 최대값 최소값이 정해진다.
---------------------------------------------------------------------------

테이블을 운영하다보면 어떠한 필드가 1씩 증가해야 하는 상황이 필요하다. 이러한 경우 사용하는 방식으로 sequence 를 만들어서 사용하는 방식이 있다.

다음은 1 부터 시작하여 한번에 1씩 증가하는 sequence 를 생성한다.

create sequence autonum
     increment by 1   -- 1씩 증가하라는거고요
     start with 1        -- 1부터 시작이고요 100 시작할려면 100 이라고 쓰시면 됩니다.
     nomaxvalue       -- 최대값 제한이 없다
     nocycle            
     nocache;

 간단하게 1부터 1씩 증가를 원하면 다음과 같이 사용해도 된다.

create sequence friend_seq;

--> 기본적으로 1부터 시작하여 1씩 증가하게 된다.

 접근:

-- 시퀀스명.nextval

-- 시퀀스명.curval

 

insert into friend values(friend_seq.nextval,'박신양','노래');
insert into friend values(friend_seq.nextval,'장동건','수영');

 

유의할 사항은
- 시퀀스명.Nextval 하면 전에 값으로 되돌릴수 없습니다.
                       └> 해결책: 삭제하고 다시 만들어줘야 함!

 

SEQUENCE 삭제(필요시)
drop sequence
member_seq;
drop sequence friend_seq;



참조 : http://opensourceforge.tistory.com/264

#. Toad 에 Oracle 10g XE 버전 TNS 설정하기

(오라클 설치경로)\app\oracle\product\10.2.0\server\NETWORK\ADMIN\tnsnames.ora

위의 경로 파일을 에디터로 연다..

XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = JH-VAIO-NOTE)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )


기본사항으로 위의 내용이 있다..(나의 노트북 기준)

첫번째 구문 아래에 아래내용 추가(접속사항에 맞게 수정후 사용)

# 주석(어쩌구저쩌구)
(데이터베이스이름) =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 호스트IP)(PORT = 포트번호))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = 서비스명)
    )
  )

Toad의 연결설정에서 TNS탭 선택후

User / Schema : 에 유저명 입력, Password : 에 비밀번호 입력,

Database : 부분에서 위의 데이터베이스 이름을 찾아서 선택후 Connect...


Tag // OracleXE, Toad
오라클 내장 함수
from D.B./Oracle 2007/11/05 15:37
오라클 내장 함수
오라클의 함수에는 단일행 함수복수행 함수(그룹함수)가 있다.


숫자 함수(number function)
ABS ACOS ASIN ATAN
ATAN2 BITAND CEIL COS
COSH EXP FLOOR LN
LOG MOD POWER ROUND(number)
SIGN SIN SINH SQRT
TAN TANH TRUNC(number) WIDTH_BUCKET

문자 함수(character function)
CHR CONCAT INITCAP LOWER
LPAD LTRIM NLS_INITCAP NLS_LOWER
NLSSORT NLS_UPPER REPLACE RPAD
RTRIM SOUNDEX SUBSTR TRANSLATE
TREAT TRIM UPPER ASCII
INSTR LENGTH, LENGTHB, LENGTHC, LENGTH2, LENGTH4

날짜와 날짜 처리함수(date, datetime function)
ADD_MONTHS CURRENT_DATE CURRENT_TIMESTAMP DBTIMEZONE
EXTRACT(datetime) FROM_TZ LAST_DAY LOCALTIMESTAMP
MONTHS_BETWEEN NEW_TIME NEXT_DAY NUMTODSINTERVAL
NUMTOYMINTERVAL ROUND(date) SESSIONTIMEZONE SYS_EXTRACT_UTC
SYSDATE SYSTIMESTAMP TO_DSINTERVAL TO_TIMESTAMP
TO_TIMESTAMP_TZ TO_YMINTERVAL TRUNC(date) TZ_OFFSET

데이터 형변환 함수(conversion function)
ASCIISTR BIN_TO_NUM CAST CHARTOROWID
COMPOSE CONVERT DECOMPOSE HEXTORAW
NUMTODSINTERVAL NUMTOYMINTERVAL RAWTOHEX RAWTONHEX
ROWIDTOCHAR ROWIDTONCHAR TO_CHAR(character) TO_CHAR(datetime)
TO_CHAR(number) TO_CLOB TO_DATE TO_DSINTERVAL
TO_LOB TO_MULTI_BYTE TO_NCHAR(character) TO_NCHAR(datetime)
TO_NCHAR(number) TO_NCLOB TO_NUMBER TO_SINGLE_BYTE
TO_YMINTERVAL TRANSLATE ... USING UNISTR
참조로 형변환 관계표를 참조하면 편리하다.
기타함수(miscellaneous single row function)
BFILENAME COALESCE DECODE DEPTH
DUMP EMPTY_BLOB
EMPTY_CLOB
EXISTSNODE EXTRACT(XML)
EXTRACTVALUE GREATEST LEAST NLS_CHARSET_DECL_LEN
NLS_CHARSET_ID NLS_CHARSET_NAME NULLIF NVL
NVL2 PATH SYS_CONNECT_BY_PATH SYS_CONTEXT
SYS_DBURIGEN SYS_EXTRACT_UTC SYS_GUID SYS_TYPEID
SYS_XMLAGG SYS_XMLGEN UID UPDATEXML
USER USERENV VSIZE XMLAGG
XMLCOLATTVAL XMLCONCAT XMLFOREST XMLSEQUENCE
XMLTRANSFORM XMLELEMENT CASE

그룹함수 집계(Aggregate) 함수
AVG CORR COUNT COVAR_POP
COVAR_SAMP CUME_DIST DENSE_RANK FIRST
GROUP_ID GROUPING GROUPING_ID LAST
MAX MIN PERCENTILE_CONT PERCENTILE_DISC
PERCENT_RANK RANK REGR function STDDEV
STDDEV_POP STDDEV_SAMP SUM VAR_POP
VAR_SAMP VARIANCE GROUPING SETS
분석(Analytic) 함수
AVG CORR COUNT COVAR_POP
COVAR_SAMP CUME_DIST DENSE_RANK FIRST
FIRST_VALUE LAG LAST LAST_VALUE
LEAD MAX MIN NTILE
PERCENT_RANK PERCENTILE_CONT PERCENTILE_DISC RANK
RATIO_TO_REPORT REGR_(linear regression) function ROW_NUMBER STDDEV
STDDEV_POP STDDEV_SAMP SUM VAR_POP
VAR_SAMP VARIANCE TOP_N 분석

윈도우(windowing) 분석 함수

윈도우 분석함수부분 합을 계속 더해 나감, sum은 전체 합계를 구함


객체 참조 함수
DEREF MAKE_REF REF REFTOHEX VALUE
PseudoColumn을 의미하는 것
ROWIDEach row in the database has an address
ROWNUM테이블에서 select 되어진 행의 순서번호
LEVEL테이블에서 행(row)의 계층관계를 가리키는 일련번호 순서


출처 : http://radiocom.kunsan.ac.kr/lecture/oracle/function/function_start.html