# 로그찍기 -----------------------------------------------------------
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 |