Programming/Oracle2016. 7. 26. 16:13


# 로그찍기 -----------------------------------------------------------

DBMS_OUTPUT.PUT_LINE('내용');


# 오라클 job -----------------------------------------------------------

http://blog.naver.com/jadin1/70024291567



# 시간계산 -----------------------------------------------------------

- 초로 변환해서 계산한 다음에 문자열로 변형

SELECT
  TO_CHAR(
     TO_DATE(TRUNC(MOD(  TO_DATE('23:30:10','HH24:MI:SS')
- TO_DATE('08:10:10','HH24:MI:SS'),1)* 24 * 60 * 60), 'SSSSS'),'HH24:MI:SS')
FROM DUAL

  

- DB결과를 가공없이 사용하려면

SELECT
  TO_CHAR(
     TO_DATE(TRUNC(MOD(  TO_DATE('233010','HH24MISS')
- TO_DATE('081010','HH24MISS'),1)* 24 * 60 * 60), 'SSSSS'),'HH24MISS')
FROM DUAL



# ----------------------------------------------------------------------

CHR(13)CHR(10) 엔터

CHR(63) ?

CHR(38) &



# DB LINK ----------------------------------------------------------------------

CREATE DATABASE LINK DB링크명

CONNECT TO 아이디

IDENTIFIED BY 암호

USING '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=주소)(PORT=1521))(CONNECT_DATA=(SID=sid)))'



# DBMS_LOB----------------------------------------------------------------------


BLOB - 바이너리 데이터 저장 (최대 4G 저장) 

       컴퓨터가 인식하는 모든 파일 기록 예)음석,화상,이미지등

CLOB - Single-byte character data 저장(최대 4G 저장) 

       텍스트 데이터 저장


DBMS_LOB.SUBSTR(CLOB_컬럼, 가져올 길이, OFFSET)                            <= SELECT

DBMS_LOB.INSTR(CLOB_컬럼, '검색할 단어', OFFSET, 몇 번째 위치한 단어)  <= WHERE

DBMS_LOC.GETLENGTH(CLOB_컬럼)                                                   <= 해당컬럼의 전체길이를 반환


SELECT DBMS_LOB.SUBSTR(QUERY_STRING,3000,1)

        , DBMS_LOB.SUBSTR(QUERY_STRING,DBMS_LOC.GETLENGTH(QUERY_STRING) ,1)

  FROM QUERY_TABLE

 WHERE DBMS_LOB.INSTR(QUERY_STRING,'SELECT',1,1) > 0

 

http://snoopy81.tistory.com/134

http://www.gurubee.net/lecture/2768



# LAG() OVER() -----------------------------------------------------------------

 LAG() OVER()

지정한 컬럼의 앞의 값을 가져온다. 

 

SELECT LEVEL LVL

     , LAG(LEVEL) OVER(ORDER BY LEVEL ASC ) AS LAG_VALUE1

     , LAG(LEVEL, 2) OVER(ORDER BY LEVEL ASC ) AS LAG_VALUE2

     , LAG(LEVEL, 3, 100) OVER(ORDER BY LEVEL ASC) AS LAG_VALUE3

  FROM DUAL CONNECT BY LEVEL <= 10

;

       LVL LAG_VALUE1 LAG_VALUE2 LAG_VALUE3

---------- ---------- ---------- ----------

         1                              100

         2          1                   100

         3          2          1        100

         4          3          2          1

         5          4          3          2

         6          5          4          3

         7          6          5          4

         8          7          6          5

         9          8          7          6

        10          9          8          7

 

LEAD() OVER()

지정한 컬럼의 뒤의 값을 가져온다. 

 

SELECT LEVEL LVL

     , LEAD(LEVEL) OVER(ORDER BY LEVEL ASC ) AS LAG_VALUE1

     , LEAD(LEVEL, 2) OVER(ORDER BY LEVEL ASC ) AS LAG_VALUE2

     , LEAD(LEVEL, 3, 100) OVER(ORDER BY LEVEL ASC) AS LAG_VALUE3

  FROM DUAL CONNECT BY LEVEL <= 10

;

  

       LVL LAG_VALUE1 LAG_VALUE2 LAG_VALUE3

---------- ---------- ---------- ----------

         1          2          3          4

         2          3          4          5

         3          4          5          6

         4          5          6          7

         5          6          7          8

         6          7          8          9

         7          8          9         10

         8          9         10        100

         9         10                   100

        10                              100

'Programming > Oracle' 카테고리의 다른 글

오라클 시간계산  (1) 2017.04.18
GROUP BY ROLLUP, 오라클 합계 소계  (0) 2016.05.16
오라클 분석함수  (0) 2016.05.12
오라클 with  (0) 2016.05.10
Oracle Table Function  (0) 2016.04.28
Posted by jvvj