프로젝트 마무리때 주로 쓰게된다.

 

SELECT 
	A.Table_Name,
	C.Value Table_Description, 
	A.Column_Name, 
	A.Data_Type, 
	isNULL(
		CAST(A.Character_Maximum_Length as VARCHAR), CAST(A.Numeric_Precision as VARCHAR) + ',' + CAST(A.Numeric_Scale as VARCHAR)
	) Column_Length, 
	A.Column_Default, 
	CASE WHEN A.Is_Nullable = 'YES' THEN 'Y' ELSE 'N' END Is_Nullable, 
	B.value Colum_Description 
FROM INFORMATION_SCHEMA.ColumnS A 
	LEFT JOIN SYS.EXTENDED_PROPERTIES B 
		ON B.Major_Id = OBJECT_ID(A.Table_Name) 
		AND B.Minor_Id = A.Ordinal_Position 
	LEFT JOIN ( SELECT OBJECT_ID(Objname) Table_Id,Value FROM ::FN_LISTEXTENDEDPROPERTY(NULL, 'user','dbo','Table',NULL, NULL, NULL) ) c 
		ON C.Table_id = OBJECT_ID(A.Table_Name)
WHERE A.Table_Name = '테이블명' 
ORDER BY A.Table_Name, A.Ordinal_Position

 

출처 : rocabilly.tistory.com/60

'프로그래밍 > DB' 카테고리의 다른 글

mssql 쿼리명세서 생성  (0) 2020.11.16
mssql에서 duplucate on 변환방법  (0) 2020.09.23
mysql 버전확인 (쿼리 )  (0) 2020.07.16
오라클 글자 파싱  (0) 2019.09.17
주민등록번호 오라클 검사 처리  (0) 2019.09.10
오라클에서 숫자만 추출/ 문자만 추출  (0) 2019.09.10
블로그 이미지

LunaStratos

Stratosphere Stream

댓글을 달아 주세요


IF EXISTS (

 /* 검색부분 */ 
SELECT 1
FROM T_WORK_PLAN_INFO 
WHERE PLANSEQ={PLANSEQ}
)

BEGIN  /* DELETE 나 update 시작점 (duplicate on 다음에 오는 쿼리 )*/


END
ELSE 
BEGIN /* INSERT 시작점 */
    

END


'프로그래밍 > DB' 카테고리의 다른 글

mssql 쿼리명세서 생성  (0) 2020.11.16
mssql에서 duplucate on 변환방법  (0) 2020.09.23
mysql 버전확인 (쿼리 )  (0) 2020.07.16
오라클 글자 파싱  (0) 2019.09.17
주민등록번호 오라클 검사 처리  (0) 2019.09.10
오라클에서 숫자만 추출/ 문자만 추출  (0) 2019.09.10
블로그 이미지

LunaStratos

Stratosphere Stream

댓글을 달아 주세요

select version();

 

'프로그래밍 > DB' 카테고리의 다른 글

mssql 쿼리명세서 생성  (0) 2020.11.16
mssql에서 duplucate on 변환방법  (0) 2020.09.23
mysql 버전확인 (쿼리 )  (0) 2020.07.16
오라클 글자 파싱  (0) 2019.09.17
주민등록번호 오라클 검사 처리  (0) 2019.09.10
오라클에서 숫자만 추출/ 문자만 추출  (0) 2019.09.10
블로그 이미지

LunaStratos

Stratosphere Stream

댓글을 달아 주세요

SELECT  regexp_substr(:ARG, '[^,]+',1, LEVEL) TXT -- ,가 아닌 String을 표시한다. LEVEL로 순서를 올린다.
FROM DUAL
CONNECT BY LEVEL <= length(regexp_replace(:ARG, '[^,]+',''))+1 
--글자에서 ,가 아닌 글자를 없에준다. ,의 갯수를 세어주고 1개를 더한다

 

'프로그래밍 > DB' 카테고리의 다른 글

mssql에서 duplucate on 변환방법  (0) 2020.09.23
mysql 버전확인 (쿼리 )  (0) 2020.07.16
오라클 글자 파싱  (0) 2019.09.17
주민등록번호 오라클 검사 처리  (0) 2019.09.10
오라클에서 숫자만 추출/ 문자만 추출  (0) 2019.09.10
오라클 다양한 함수  (0) 2019.09.09
블로그 이미지

LunaStratos

Stratosphere Stream

댓글을 달아 주세요

SELECT  DECODE(
        REGEXP_COUNT( 
        :ARG
        , '^[0-9]{2}(?0[1-9]|1[0-2])(?0[1-9]|[1,2][0-9]|3[0-1])[1-4][0-9]{4}[1-9]['||LASTDATA||']$'
        ) 
        
        , '1'
        , 'TRUE'
        , '0'
        , 'FALSE'
        ) JUMIN
        FROM ( 
SELECT 
        11 - MOD(
        MIN (DECODE(LEVELK , '1', NUM * 2)) 
       + MIN (DECODE(LEVELK , '2', NUM * 3)) 
       + MIN (DECODE(LEVELK , '3', NUM * 4)) 
       + MIN (DECODE(LEVELK , '4', NUM * 5)) 
       + MIN (DECODE(LEVELK , '5', NUM * 6)) 
       + MIN (DECODE(LEVELK , '6', NUM * 7)) 
       + MIN (DECODE(LEVELK , '7', NUM * 8)) 
       + MIN (DECODE(LEVELK , '8', NUM * 9)) 
       + MIN (DECODE(LEVELK , '9', NUM * 2)) 
       + MIN (DECODE(LEVELK , '10', NUM * 3)) 
       + MIN (DECODE(LEVELK , '11', NUM * 4)) 
       + MIN (DECODE(LEVELK , '12', NUM * 5))  
       , 11 ) LASTDATA
FROM
( SELECT SUBSTR(:ARG, LEVEL , 1) NUM
        , LEVEL LEVELK
        , 'ORION' GRP
        FROM DUAL
       CONNECT BY LEVEL <= LENGTH(:ARG)
)
GROUP BY GRP
)

 

 

주민등록번호 오라클 처리 

블로그 이미지

LunaStratos

Stratosphere Stream

댓글을 달아 주세요

문자만추출

 SELECT REGEXP_REPLACE(c, '[0-9]') 

 

숫자만추출

SELECT REGEXP_REPLACE(c, '[^0-9]')

 

TRANSLATE 방식

 

SELECT TRANSLATE ( '안1녕2하3세4요5 6H7 입8니9다' , '0123456789',' ' )  
        FROM DUAL

블로그 이미지

LunaStratos

Stratosphere Stream

댓글을 달아 주세요

 

SELECT ABS(0)
        , FLOOR(3.9) --버림
        , CEIL(3.2) --올림
        , POWER(2,3) -- 제곱
        , SIGN(-9)
        , SIGN(4)
        , SIGN(0) -- 부호판정, -1 1 0
        , SQRT(7) -- 제곱근
        , TRUNC(1.64) -- 지정한 소수점 이하를 절삭
        , TRUNC(1.64, 1)
        , TRUNC(141.64, -2) --마이너스의 경우 정수의 자리수, 4를 절삭됨
        , TRUNC(SYSDATE, 'D')
        , TRUNC(SYSDATE, 'DD') 
        , TO_CHAR(SYSDATE, 'YYYYMMDD HH:SS' )
        , TO_CHAR(TRUNC(SYSDATE, 'DD'), 'YYYYMMDD HH:SS' )
        , TRUNC(SYSDATE, 'MM') --일까지 절삭
        , TRUNC(SYSDATE, 'YYYY') --월까지 절삭
        , TRUNC(TRUNC(SYSDATE, 'YYYY'), 'D')
        
        FROM DUAL

 

       
SELECT ADD_MONTHS(SYSDATE, 2)
       , LAST_DAY(SYSDATE)
       , MONTHS_BETWEEN(SYSDATE, TO_DATE('20190201',  'YYYYMMDD'))
       , FLOOR (MONTHS_BETWEEN(SYSDATE, TO_DATE('20190201',  'YYYYMMDD')))+1 --두달의 차
       , NEXT_DAY(SYSDATE, 2) -- 다음주 월요일 
       , EXTRACT(HOUR FROM SYSTIMESTAMP) +9 --GMT +9 : KST
       , TO_CHAR(SYSDATE + (INTERVAL '2' HOUR),'YYYYMMDD HH:SS')
       , TO_CHAR(SYSDATE, 'YYYYMMDD HH24:SS') 현재시각 -- 현재시각
       ,  TO_CHAR(SYSDATE + 1,'YYYYMMDD HH24:SS')
       ,  TO_CHAR(SYSDATE + 2/24 ,'YYYYMMDD HH24:SS') -- HH24:SS로 안보면 이상하다 
       ,  TO_CHAR(SYSDATE + 3/24 ,'YYYYMMDD HH24:SS')
        FROM DUAL
블로그 이미지

LunaStratos

Stratosphere Stream

댓글을 달아 주세요

오라클에서 랜덤값(소수값, 1.9까지 안에서 ) : select (dbms_random.value(1,9) from dual

 

정수 랜덤값 (1,9까지) : select trunc(dbms_random.value(1,9) from dual

 

 

블로그 이미지

LunaStratos

Stratosphere Stream

댓글을 달아 주세요

테이블명: 테이블이름

 

* select

 

select * from tablename

 

* update

 

update 테이블명 set 컬럼이름 = ?

where 컬럼이름 = ?

 

2개인 경우

update 테이블명 

set 컬럼이름 = ?, 

컬럼이름 = ?

where 컬럼이름 = ?

 

혹은 

 

update 테이블명 set A.컬럼이름 = (select 컬럼이름 from 테이블명2 B where B.컬럼이름 = A.컬럼이름 )

 

*delete

 

FROM 테이블명
WHERE 조건;

 

*create

 

create table 테이블명

( 컬럼글자 varchar(255), 컬럼숫자 INT , 컬럼날짜 DATE , 컬럼날짜기본데이터 DATE DEFAULT SYSDATE );

 

* insert

 

INSERT INTO 테이블명(컬럼1, 컬럼2, 컬럼3, ...)
VALUES(데이터1, 데이터2, 데이터3, ...)

 

* drop

 

DROP 테이블명

블로그 이미지

LunaStratos

Stratosphere Stream

댓글을 달아 주세요

 - 단방향: md5, sha-1


단방향의 경우 사용한다.


 - 사용방법

md5('string')

sha1('string')


방식으로 저장한다.


이 경우 복호화(암호화된 것을 다시 오리지날로 복구하는것)는 안되기 때문에 true false로 처리를 한다.

지금은 취약점이 있는 관계(요즘 컴퓨터로 1분이면 뚫어버린다)로 패스워드 저장시 이건 사용하면 안된다.  다른용도로는 사용해도 되지만.


 - 양방향 : AES_ENCRYPT, AES_DECRYPT


- AES_ENCRYPT(암호화)
  : INSERT INTO 테이블명 VALUES (HEX(AES_ENCRYPT('문자열', '암호화 키')));
- AES_DECRYPT(복호화)
  : SELECT AES_DECRYPT(UNHEX(필드명), '암호화 키') FROM 테이블명;


암호화 키는 특정한 이름으로 정하면 된다. 복호화 암호화 둘다 같은 암호화 키로 지정을 해야 풀린다.


블로그 이미지

LunaStratos

Stratosphere Stream

댓글을 달아 주세요