'oracle'에 해당되는 글 6건
-
SELECT * FROM ALL_SOURCE
2015.08.31 -
조회 건수가 틀릴때 확인방법
2015.08.31 -
DICTIONARY, ALL_TAB_COMMENTS, ALL_COL_COMMENTS
2015.04.06 -
이름 생성 함수
2015.04.06 -
주민번호, 법인번호 생성 함수
2015.04.06 -
끝나는날짜 구하는 함수(함수호출 사용법과 생성법)
2015.04.06
SELECT * FROM ALL_SOURCE
|
1
2
3
4
5
6 |
SELECT *
FROM ALL_SOURCE
WHERE OWNER = '유저'
AND NAME = '테이블,프로시저이름'
AND TYPE = 'TABLE,PROCEDURE 등'
AND TEXT = '내용' |
'oracle' 카테고리의 다른 글
| 조회 건수가 틀릴때 확인방법 (0) | 2015.08.31 |
|---|---|
| DICTIONARY, ALL_TAB_COMMENTS, ALL_COL_COMMENTS (0) | 2015.04.06 |
| 이름 생성 함수 (0) | 2015.04.06 |
| 주민번호, 법인번호 생성 함수 (0) | 2015.04.06 |
| 끝나는날짜 구하는 함수(함수호출 사용법과 생성법) (0) | 2015.04.06 |
조회 건수가 틀릴때 확인방법
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89 |
/* Formatted on 2015/08/31 오전 10:39:08 (QP5 v5.227.12220.39754) */
SELECT KYC_SEQ,
CUS_REC_NO,
DETAIL_GUBN,
COUNT (*)
FROM (SELECT (SELECT LIST_NM
FROM CM_LISTDATA
WHERE LIST_CD = A.DETAIL_GUBN) AS DETAIL_GUBN_NM,
A.DETAIL_GUBN AS DETAIL_GUBN,
A.KYC_SEQ AS KYC_SEQ,
A.CUS_REC_NO AS CUS_REC_NO,
A.PROC_DEPTH AS PROC_DEPTH,
A.DA_YN AS DA_YN,
B.MEM_NM_KR AS NM_KR,
B.MEM_NM_EN AS NM_EN,
B.MEM_NATION_CD AS NATION_CD,
(SELECT NAT_ENM
FROM CM_RA_NAT
WHERE ISO_TWO_NACD = B.MEM_NATION_CD) AS NATION_ENM,
A.KYC_GUBN AS KYC_GUBN,
(SELECT LIST_NM
FROM CM_LISTDATA
WHERE LIST_CD = A.EXE_DEPT) AS EXE_DEPT,
(SELECT USR_NM
FROM SYSTEM_USER
WHERE USR_ID = A.EXE_USER) AS EXE_USER,
A.EDD_EXE_DT AS EXE_DT,
A.EDD_EXE_TM AS EXE_TM,
A.SDD_EXE_DT AS SDD_EXE_DT,
A.SDD_EXE_TM AS SDD_EXE_TM,
A.PROC_STS AS PROC_STS,
(SELECT LIST_NM
FROM CM_LISTDATA
WHERE LISTGR_CD = 'COM002' AND LIST_CD = A.PROC_STS) AS PROC_STS_NM,
C.RA_RECHK_DT AS RA_RECHK_DT,
A.EXE_DEPT AS EXE_DEPT_CODE
FROM KYC_EXE A, KYC_PERSON_INFO B, RA_RISK_INFO C
WHERE A.DETAIL_GUBN = 'Z0'
AND A.PROC_STS NOT IN ('20')
AND A.KYC_SEQ = B.KYC_PERSON_SEQ(+)
AND A.CUS_REC_NO = B.CUS_REC_NO(+)
AND A.KYC_SEQ = C.KYC_SEQ
AND A.CUS_REC_NO = C.CUS_REC_NO
UNION ALL
SELECT (SELECT LIST_NM
FROM CM_LISTDATA
WHERE LIST_CD = A.DETAIL_GUBN)
AS DETAIL_GUBN_NM,
A.DETAIL_GUBN AS DETAIL_GUBN,
A.KYC_SEQ AS KYC_SEQ,
A.CUS_REC_NO AS CUS_REC_NO,
A.PROC_DEPTH AS PROC_DEPTH,
A.DA_YN AS DA_YN,
B.COM_NM_KR AS NM_KR,
B.COM_NM_EN AS NM_EN,
B.COM_NATION_CD AS NATION_CD,
(SELECT NAT_ENM
FROM CM_RA_NAT
WHERE ISO_TWO_NACD = B.COM_NATION_CD)
AS NATION_ENM,
A.KYC_GUBN AS KYC_GUBN,
(SELECT LIST_NM
FROM CM_LISTDATA
WHERE LIST_CD = A.EXE_DEPT)
AS EXE_DEPT,
(SELECT USR_NM
FROM SYSTEM_USER
WHERE USR_ID = A.EXE_USER)
AS EXE_USER,
A.EDD_EXE_DT AS EXE_DT,
A.EDD_EXE_TM AS EXE_TM,
A.SDD_EXE_DT AS SDD_EXE_DT,
A.SDD_EXE_TM AS SDD_EXE_TM,
A.PROC_STS AS PROC_STS,
(SELECT LIST_NM
FROM CM_LISTDATA
WHERE LISTGR_CD = 'COM002' AND LIST_CD = A.PROC_STS)
AS PROC_STS_NM,
C.RA_RECHK_DT AS RA_RECHK_DT,
A.EXE_DEPT AS EXE_DEPT_CODE
FROM KYC_EXE A, KYC_COMP_INFO B, RA_RISK_INFO C
WHERE A.DETAIL_GUBN = 'A0'
AND A.PROC_STS NOT IN ('20')
AND A.KYC_SEQ = B.KYC_COM_SEQ(+)
AND A.CUS_REC_NO = B.CUS_REC_NO(+)
AND A.KYC_SEQ = C.KYC_SEQ
AND A.CUS_REC_NO = C.CUS_REC_NO)
GROUP BY KYC_SEQ, CUS_REC_NO, DETAIL_GUBN
HAVING COUNT (*) >= 2; |
'oracle' 카테고리의 다른 글
| SELECT * FROM ALL_SOURCE (0) | 2015.08.31 |
|---|---|
| DICTIONARY, ALL_TAB_COMMENTS, ALL_COL_COMMENTS (0) | 2015.04.06 |
| 이름 생성 함수 (0) | 2015.04.06 |
| 주민번호, 법인번호 생성 함수 (0) | 2015.04.06 |
| 끝나는날짜 구하는 함수(함수호출 사용법과 생성법) (0) | 2015.04.06 |
DICTIONARY, ALL_TAB_COMMENTS, ALL_COL_COMMENTS
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 |
SELECT * FROM DICTIONARY; --오라클 사전 명령어 코멘트들
SELECT * FROM DICTIONARY WHERE TABLE_NAME LIKE '%COL%'; -- 사전에서 테이블네임에 COL이 들어간 테이블 찾기
-- 테이블 코멘트
SELECT * FROM ALL_TAB_COMMENTS WHERE OWNER = 'NH_CAP';
--NH_CAP에 해당되는 모든탭의코멘트?
SELECT * FROM ALL_COL_COMMENTS WHERE OWNER = 'NH_CAP' AND TABLE_NAME = 'RULE_RESULT';
--NH_CAP의 테이블이름이 룰리절트의 모든 컬럼 코멘트
-- 테이블 컬럼 속성
SELECT * FROM USER_TAB_COLS WHERE TABLE_NAME = 'RULE_RESULT';
--룰리절트 탭 컬럼표시
SELECT * FROM USER_TAB_COLS WHERE COLUMN_NAME LIKE '%SEC_%';
--컬럼에 SEC가 들어가있는것 표시
SELECT DISTINCT TABLE_NAME FROM ALL_COL_COMMENTS WHERE OWNER = 'NH_CAP' AND (COLUMN_NAME LIKE 'SEC_%' AND COLUMN_NAME <> 'SECOND_NAME');
--컬럼에 SEC가 들어가있고 세컨드네임이 아닌 중복제거한 테이블들 출력 |
cs |
'oracle' 카테고리의 다른 글
| SELECT * FROM ALL_SOURCE (0) | 2015.08.31 |
|---|---|
| 조회 건수가 틀릴때 확인방법 (0) | 2015.08.31 |
| 이름 생성 함수 (0) | 2015.04.06 |
| 주민번호, 법인번호 생성 함수 (0) | 2015.04.06 |
| 끝나는날짜 구하는 함수(함수호출 사용법과 생성법) (0) | 2015.04.06 |
이름 생성 함수
함수생성
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 |
CREATE OR REPLACE FUNCTION NH_CAP.GET_KORNM
(
V_FROM IN VARCHAR2,
V_TO IN VARCHAR2
)
RETURN VARCHAR2
IS
OUT_REAL_NM VARCHAR2(100);
TYPE V_ARR IS TABLE OF VARCHAR2(10);
V_FIRST V_ARR;
V_LAST V_ARR;
V_MID V_ARR;
BEGIN
V_LAST := V_ARR('김' , '이' , '박' , '최' , '정'
, '강' , '조' , '윤' , '장' , '임'
, '오' , '한' , '신' , '서' , '권'
, '황' , '안' , '송' , '유' , '홍'
, '전' , '고' , '문' , '손' , '양'
, '배' , '조' , '백' , '허' , '남');
V_MID := V_ARR('민' , '현' , '동' , '인' , '지'
, '현' , '재' , '우' , '건' , '준'
, '승' , '영' , '성' , '진' , '준'
, '정' , '수' , '광' , '영' , '호'
, '중' , '훈' , '후' , '우' , '상'
, '연' , '철' , '아' , '윤' , '은');
V_FIRST := V_ARR('유' , '자' , '도' , '성' , '상'
, '남' , '식' , '일' , '철' , '병'
, '혜' , '영' , '미' , '환' , '식'
, '숙' , '자' , '희' , '순' , '진'
, '서' , '빈' , '정' , '지' , '하'
, '연' , '성' , '공' , '안' , '원');
SELECT SUBSTR(V_LAST(ROUND(DBMS_RANDOM.VALUE(1 , 30), 0)) ||
V_MID(ROUND(DBMS_RANDOM.VALUE(1 , 30), 0)) ||
V_FIRST(ROUND(DBMS_RANDOM.VALUE(1 , 30), 0)) ||
V_MID(ROUND(DBMS_RANDOM.VALUE(1 , 30), 0)) ||
V_FIRST(ROUND(DBMS_RANDOM.VALUE(1 , 30), 0))
,V_FROM,V_TO)
INTO OUT_REAL_NM
FROM DUAL;
RETURN OUT_REAL_NM;
END;
/
|
cs |
함수호출
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 |
DECLARE
V_OUTPUT VARCHAR2(200);
BEGIN
for i in 1 .. 100 LOOP
V_OUTPUT := GET_KORNM(1,3)
--1글자부터 3글자까지 생성(3글자이름) ex)GET_KORNM(1, 2)면 2글자이름, 2,3이면 2글자인데 성대신 2번째 글자와 3번째 글자로출력
DBMS_OUTPUT.PUT_LINE(V_OUTPUT);
END LOOP;
END;
|
cs |
'oracle' 카테고리의 다른 글
| SELECT * FROM ALL_SOURCE (0) | 2015.08.31 |
|---|---|
| 조회 건수가 틀릴때 확인방법 (0) | 2015.08.31 |
| DICTIONARY, ALL_TAB_COMMENTS, ALL_COL_COMMENTS (0) | 2015.04.06 |
| 주민번호, 법인번호 생성 함수 (0) | 2015.04.06 |
| 끝나는날짜 구하는 함수(함수호출 사용법과 생성법) (0) | 2015.04.06 |
주민번호, 법인번호 생성 함수
함수생성
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 |
CREATE OR REPLACE FUNCTION NH_CAP.GET_FNOSIL
(
V_FNO IN VARCHAR2,
V_YEAR IN VARCHAR2
)
RETURN VARCHAR2
IS
OUT_REAL_NO VARCHAR2(100);
BEGIN
IF V_FNO = 'E' THEN /* E는 법인번호 */
SELECT ROUND(DBMS_RANDOM.VALUE(1101 , 2850), 0) || /* 등기관서번호 4자리 */
ROUND(DBMS_RANDOM.VALUE(11 , 86), 0) || /* 법인종류번호 2자리 */
LPAD(ROUND(DBMS_RANDOM.VALUE(0 , 9999999), 0), 7, '0') /* 일련번호6자리 오류검색번호1자리 */
INTO OUT_REAL_NO
FROM DUAL;
ELSIF V_FNO = 'P' THEN /* P는 주민번호 */
IF (TO_NUMBER(V_YEAR)) >= 2020 THEN /* 2000년도 이후 출생자 */
SELECT LPAD(ROUND(DBMS_RANDOM.VALUE(30 , TO_NUMBER(SUBSTR(V_YEAR , 3 , 2))), 0), 2 , '0') || /* 현재년도까지 생성*/
LPAD(ROUND(DBMS_RANDOM.VALUE(1 , 12),0), 2 , '0') ||
LPAD(ROUND(DBMS_RANDOM.VALUE(1 , 31),0), 2 , '0') ||
ROUND(DBMS_RANDOM.VALUE(3000000 , 4999999), 0)
INTO OUT_REAL_NO
FROM DUAL;
ELSE
SELECT LPAD(ROUND(DBMS_RANDOM.VALUE(30 , TO_NUMBER(SUBSTR(V_YEAR , 3 , 2))), 0), 2 , '0') ||
LPAD(ROUND(DBMS_RANDOM.VALUE(1 , 12), 0), 2 , '0') ||
LPAD(ROUND(DBMS_RANDOM.VALUE(1 , 31), 0), 2 , '0') ||
ROUND(DBMS_RANDOM.VALUE(1000000 , 2999999), 0)
INTO OUT_REAL_NO
FROM DUAL;
END IF;
END IF;
RETURN OUT_REAL_NO;
END;
/
|
cs |
함수호출
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 |
DECLARE
V_OUTPUT VARCHAR2(200);
BEGIN
for i in 1 .. 5 LOOP
V_OUTPUT := GET_FNOSIL('E','1995');
DBMS_OUTPUT.PUT_LINE(V_OUTPUT);
END LOOP;
END;
|
cs |
'oracle' 카테고리의 다른 글
| SELECT * FROM ALL_SOURCE (0) | 2015.08.31 |
|---|---|
| 조회 건수가 틀릴때 확인방법 (0) | 2015.08.31 |
| DICTIONARY, ALL_TAB_COMMENTS, ALL_COL_COMMENTS (0) | 2015.04.06 |
| 이름 생성 함수 (0) | 2015.04.06 |
| 끝나는날짜 구하는 함수(함수호출 사용법과 생성법) (0) | 2015.04.06 |
끝나는날짜 구하는 함수(함수호출 사용법과 생성법)
함수호출
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 |
DECLARE
V_OUTPUT VARCHAR2(200);
BEGIN
for i in 0 .. 1000 LOOP
V_OUTPUT := GET_RANDOM_DATE('201402');
DBMS_OUTPUT.PUT_LINE(V_OUTPUT);
IF V_OUTPUT > '28' THEN /*확인하는부분*.
DBMS_OUTPUT.PUT_LINE('@@@@@@@@@@@@@@@');
END IF;
END LOOP;
|
cs |
함수생성
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 |
CREATE OR REPLACE FUNCTION NH_CAP.GET_RANDOM_DATE
(
V_DATE IN VARCHAR2
)
RETURN VARCHAR2
IS
OUT_REAL_NO VARCHAR2(100);
V_YEAR NUMBER(10) DEFAULT 0;
V_MONTH NUMBER(10) DEFAULT 0;
BEGIN
V_YEAR:=TO_NUMBER(SUBSTR(V_DATE,1,4));
V_MONTH:=TO_NUMBER(SUBSTR(V_DATE,5,2));
IF V_MONTH = 02 THEN
IF (MOD(V_YEAR,4)=0 AND MOD(V_YEAR,100)!=0) OR MOD(V_YEAR,400)=0 THEN/*윤년계산*/
SELECT LPAD(ROUND(DBMS_RANDOM.VALUE(1,29),0) , 2 , '0')
INTO OUT_REAL_NO
FROM DUAL;
ELSE
SELECT LPAD(ROUND(DBMS_RANDOM.VALUE(1,28),0) , 2 , '0')
INTO OUT_REAL_NO
FROM DUAL;
END IF;
ELSIF MOD(V_MONTH,2)=0 THEN/*짝수달이면*/
IF V_MONTH<8 THEN
SELECT LPAD(ROUND(DBMS_RANDOM.VALUE(1,30),0) , 2 , '0')
INTO OUT_REAL_NO
FROM DUAL;
ELSE
SELECT LPAD(ROUND(DBMS_RANDOM.VALUE(1,31),0) , 2 , '0')
INTO OUT_REAL_NO
FROM DUAL;
END IF;
ELSE/*홀수달이면*/
IF V_MONTH<8 THEN
SELECT LPAD(ROUND(DBMS_RANDOM.VALUE(1,31),0) , 2 , '0')
INTO OUT_REAL_NO
FROM DUAL;
ELSE
SELECT LPAD(ROUND(DBMS_RANDOM.VALUE(1,30),0) , 2 , '0')
INTO OUT_REAL_NO
FROM DUAL;
END IF;
END IF;
RETURN OUT_REAL_NO;
END;
/
|
cs |
'oracle' 카테고리의 다른 글
| SELECT * FROM ALL_SOURCE (0) | 2015.08.31 |
|---|---|
| 조회 건수가 틀릴때 확인방법 (0) | 2015.08.31 |
| DICTIONARY, ALL_TAB_COMMENTS, ALL_COL_COMMENTS (0) | 2015.04.06 |
| 이름 생성 함수 (0) | 2015.04.06 |
| 주민번호, 법인번호 생성 함수 (0) | 2015.04.06 |
