링크..


http://slipp.net/questions/271

'java' 카테고리의 다른 글

java 예외(exception) 처리에 대한 괜찮은 글..  (0) 2014.06.26
lamda.. (업데이트중)  (0) 2014.05.21
java 현재시간과 시간 지연  (0) 2014.03.18
ResultSet rowcount 구하기  (0) 2014.03.14
java 오늘일자 string format YYYYMMDD  (2) 2014.03.12
Posted by 무세1
,

오라클에서 정렬시 NULL값은 마지막에 정렬된다..  

NULL값을 처음에 정렬되게 하려면..  

ORDER BY 컬럼 NULLS FIRST


WITH T AS (

SELECT  2500 AS COL1 FROM DUAL UNION ALL

SELECT  NULL AS COL1 FROM DUAL UNION ALL

SELECT  1000 AS COL1 FROM DUAL UNION ALL

SELECT  23   AS COL1 FROM DUAL UNION ALL

SELECT  NULL AS COL1 FROM DUAL

)

SELECT  * FROM T

ORDER BY COL1


 결과는

  23

1000

2500

NULL

NULL


ORDER BY 컬럼 NULLS FIRST

SELECT  * FROM T

ORDER BY COL1 NULLS FIRST

 결과는

NULL

NULL

23

1000

2500


NULLS LAST 를 쓰면.. NULL을 마지막에 정렬시킨다..

안쓴 경우와 동일한 결과가 나온다..

Posted by 무세1
,

아래내용은 구루비 커뮤니티(오라클클럽) 에서 퍼옴..   

http://www.gurubee.net/article/55512


오라클 버전별로 버전이다..

WITH T(TYPE, NAME, CODE) AS

(

SELECT '과일', '사과', '0' FROM dual

UNION ALL SELECT '과일', '레몬', '1' FROM dual

UNION ALL SELECT '과일', '포도', '2' FROM dual

UNION ALL SELECT '과일', '참외', '3' FROM dual

UNION ALL SELECT '채소', '오이', '0' FROM dual

UNION ALL SELECT '채소', '당근', '1' FROM dual

UNION ALL SELECT '채소', '호박', '2' FROM dual

)

SELECT type

     , SUBSTR(XMLAGG(XMLELEMENT(X, ',', NAME) ORDER BY CODE).EXTRACT('//text()'), 2) NAME_9I

     , WM_CONCAT(NAME) NAME_10G

     , LISTAGG(NAME, ',') WITHIN GROUP(ORDER BY CODE) NAME_11G

  FROM t

 GROUP BY type

 ORDER BY type

;


결과는.. 다음과 같다..

TYPE    NAME_9I                 NAME_10G                NAME_11G
과일     사과,레몬,포도,참외    사과,참외,포도,레몬 사과,레몬,포도,참외
채소     오이,당근,호박    오이,호박,당근        오이,당근,호박


참고로..

MySql

SELECT type

     , group_concat(name ORDER BY code) name_MySQL

  FROM t

 GROUP BY type

 ORDER BY type

MsSQL

SELECT type

     , STUFF((SELECT ',' + name

                FROM t

               WHERE type = a.type

               ORDER BY code

                 FOR XML PATH('')

              ), 1, 1, '') name_MSSQL

  FROM t a

 GROUP BY type

 ORDER BY type




Posted by 무세1
,

gzip 사용법

linux 2014. 3. 27. 09:44

gzip 사용법


>압축하기

#gzip 파일명


>압축풀기

#gzip 파일명.gz


>압축하고 원본파일 덮어쓰기

#gzip -f 파일명


>도움말보기

#gzip -h


도움말

usage: gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...]

 -c --stdout      write on standard output, keep original files unchanged

 -d --decompress  decompress

 -f --force       force overwrite of output file and compress links

 -h --help        give this help

 -l --list        list compressed file contents

 -L --license     display software license

 -n --no-name     do not save or restore the original name and time stamp

 -N --name        save or restore the original name and time stamp

 -q --quiet       suppress all warnings

 -r --recursive   operate recursively on directories

 -S .suf  --suffix .suf     use suffix .suf on compressed files

 -t --test        test compressed file integrity

 -v --verbose     verbose mode

 -V --version     display version number

 -1 --fast        compress faster

 -9 --best        compress better


'linux' 카테고리의 다른 글

traceroute 명령어  (0) 2014.12.10
ssh, sftp 명령어..  (0) 2014.06.11
hp unix, ibm unix 한글 언어 확인  (0) 2014.03.24
crontab 설정  (0) 2014.03.13
ftp shell 프로그래밍..  (0) 2014.02.11
Posted by 무세1
,

log를 찍을때 개발은 한글이 깨지고 운영은 한글이 잘 된다.. 


운영은 ibm unix 개발은 hp-unix


한글설정 확인을 해보는 방법..


개발서버를 보니 한글이 설정이 안되어 있다...

# locale

LANG=

LC_CTYPE="C"

LC_COLLATE="C"

LC_MONETARY="C"

LC_NUMERIC="C"

LC_TIME="C"

LC_MESSAGES="C"

LC_ALL=


지원한글 캐릭터셋 확인

# locale -a  | grep ko

ko_KR.eucKR

ko_KR.utf8


캐럭터 설정

# export LANG=ko_KR.eucKR

# locale

LANG=ko_KR.eucKR

LC_CTYPE="ko_KR.eucKR"

LC_COLLATE="ko_KR.eucKR"

LC_MONETARY="ko_KR.eucKR"

LC_NUMERIC="ko_KR.eucKR"

LC_TIME="ko_KR.eucKR"

LC_MESSAGES="ko_KR.eucKR"

LC_ALL=


이렇게 설정하니..  로그 찍을때 한글이 깨지지 않는다.. ㅎㅎ



'linux' 카테고리의 다른 글

ssh, sftp 명령어..  (0) 2014.06.11
gzip 사용법  (0) 2014.03.27
crontab 설정  (0) 2014.03.13
ftp shell 프로그래밍..  (0) 2014.02.11
유용한 Unix 명령어  (0) 2014.01.23
Posted by 무세1
,

날짜가 몇주인주 계산해야 하는 경우가 있다.


그때 다음과 같이 구할수 있따..


SELECT  TO_CHAR(TO_DATE('20131231'),'WW') FROM DUAL;

-> 53

SELECT  TO_CHAR(TO_DATE('20131231'),'IW') FROM DUAL;

-> 01

WW : 해당해의 1일부터 7일단위로 끊어서 주차를 생성

IW   : 날짜 해당한 주가 하루라도 다음해인 경우에는 그해의 첫주가 됨.


SELECT  TO_CHAR(TO_DATE('20140115'),'W') FROM DUAL;

-> 3

SELECT  TO_CHAR(TO_DATE('20140215'),'W') FROM DUAL;

-> 4

W : 해당월의 주차를 구함



Posted by 무세1
,

Join문을 이용해서 update시..  헷깔리는 경우가 많다..


테이블1  TAB1 ( KEY, COL1)

테이블2  TAB1 ( KEY, COL2)


테이블1의 컬럼 COL1에  테이블1과 테이블2의 KEY값이 동일한 경우 COL2를 업데이트 하는 경우.


JOIN을 이용하지 않는 경우..  

UPDATE TAB1 A 

SET     COL1 = ( SELECT COL2 

                         FROM TAB2

                         WHERE   KEY = A.KEY );


JOIN을 이용하는 경우에는

/*+ BYPASS_UJVC  */  라는 힌트를 이용해서 UPDATE한다.

UPDATE  /*+ BYPASS_UJVC  */

(

    SELECT  A.COL1   COL1

                , B.COL2   COL2

    FROM   TAB1 A

               , TAB2 B

    WHERE   A.KEY = B.KEY

)

SET COL1 = COL2

INNER JOIN 한 후에, 수정할 필드 COL1과 대상 필드 COL2를 조회해서 UPDATE한다.


OUTER JOIN한 후에, UPDATE를 해야 하는 경우에는 

    WHERE   A.KEY = B.KEY(+)

 OUTER JOIN을 해서 UPDATE가 가능하다.



SQL Server에서는..  join update가 좀더 쉽다..  아마도.. ^^

UPDATE  TAB1

SET        COL1 = B.COL2

FROM     TAB1 A INNER JOIN TAB2 B ON A.KEY = B.KEY




'sql' 카테고리의 다른 글

group by에서 문자열 합치기...  (3) 2014.03.31
오라클 년별, 월별 주차 계산...  (0) 2014.03.21
SQL문에서 like 검색.. escape  (0) 2014.03.19
매월 첫번주 월요일 구하기...  (0) 2014.03.17
오라클 TRUNC 함수..  (0) 2014.03.17
Posted by 무세1
,

SQL문에서 like를 이용한 검색..


오라클 WITH문을 이용해서 테스트  해보겠다..

WITH T AS (

SELECT '324324'    COL1, 'ASDDD' COL2 FROM DUAL UNION ALL

SELECT 'AB234C'    COL1, 'AG_%%D' COL2 FROM DUAL UNION ALL

SELECT 'A3424B'    COL1, 'AS_DFD' COL2 FROM DUAL UNION ALL

SELECT 'AB234C'    COL1, 'AS_DDD' COL2 FROM DUAL UNION ALL

SELECT 'A3211C'    COL1, 'AS_DAZ' COL2 FROM DUAL UNION ALL

SELECT 'AB111C'    COL1, 'AG_D%F' COL2 FROM DUAL

)

SELECT * FROM T

WHERE COL1 LIKE 'AB%'


컬럼 COL1 앞 두문자가 AB인 Row를 검색하는 조건이다..

결과는..  

AB234C AG_%%D

AB234C AS_DDD

AB111C AG_D%F


컬럼 COL1 뒤 문자가 4C로 끝나는 Row를 검색하는 조건

SELECT * FROM T

WHERE COL1 LIKE '%4C'

결과는

AB234C AG_%%D

AB234C AS_DDD


컬럼 COL1 두번째  문자가 B로 끝나는 Row를 검색하는 조건

_ : 는 문자 하나를 의미한다.

SELECT * FROM T

WHERE WHERE COL1 LIKE '_B%'

결과는

AB234C AG_%%D

AB234C AS_DDD

AB111C AG_D%F


그런데 COL2 값같이 %, _ 포함되어 있는 컬럼을 검색해야 한다면..  ESCAPE 문을 써주면 된다.

컬럼 COL2 앞문자가 AG_로 끝나는 Row를 검색하는 조건은

SELECT * FROM T

WHERE COL2 LIKE 'AG\_%' ESCAPE '\'

결과는

AB234C AG_%%D

AB111C AG_D%F


ESCAPE 옵션은 백슬래쉬(\)문자를 이스케이프문자로 식별하게 해서 _를 조건으로 인식하게 한다.

Posted by 무세1
,

java로 현재 시간 구할려면..  

System.currentTimeMillis   구한후에..

SimpleDateFormat 으로 원하는 포맷으로 출력하면 된다..


그리고 시간 지연 시키기 위해서는..

Robot이라는 클래스를 이용해서 지연 시킬 수 있다..


TimeDelayTest.java

import java.awt.AWTException;

import java.awt.Robot;

import java.text.SimpleDateFormat;

import java.util.Date;



public class TimeDelayTest {


    public static void main(String arg[]) {

        

        SimpleDateFormat dayTime = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");

        

        long start = System.currentTimeMillis() ; 

        System.out.println("start=" + dayTime.format(new Date(start)));

        

        //5초 지연

        DelayTime(5);

        

        long end = System.currentTimeMillis(); 

        System.out.println("end  =" + dayTime.format(new Date(end)));

        

        System.out.println((end-start)/1000 +"초지연");

        

    }

    

    public static void DelayTime(int delaySec) {

        

        Robot robot = null;

        try {

            robot = new Robot();

        } catch (AWTException e) {

        }

        robot.delay(delaySec * 1000);

        

    }


}


결과

start=2014-50-18 04:50:17

end  =2014-50-18 04:50:22

5초지연


Posted by 무세1
,

매월 첫번째 월요일에만 작업이 돌아야 하는 경우가 생겼다..


오라클 SQL에서 매월 첫번째 월요일을 구하는 방법을 알아보자..


일단 

TRUNC(date,char) SYSDATE를 년,월,날  기준으로 잘라버린다..

NEXT_DAY(date,char) 함수는 date로부터 그 다음주 char로 명시한 요일을 출력한다.


이 두함수를 이용해서 날을 구해보았다..


SELECT  TRUNC(SYSDATE,'MONTH') FROM DUAL

UNION ALL

SELECT  TRUNC(SYSDATE,'MONTH')-1 FROM DUAL

UNION ALL

SELECT NEXT_DAY((TRUNC(SYSDATE,'MONTH')-1),'월') FROM DUAL


결과는..

2014/03/01 00:00:00

2014/02/28 00:00:00

2014/03/03 00:00:00


TRUNC함수를 이용해서 당월 1일을 구하고

-1을 해서 전월 마지막 날을 구한후에

NEXT_DAY함수를 이용해서 다음주 월요일을 구하면 당월 첫번째 월요일을 구할 수 있다.

Posted by 무세1
,