반응형

자바스크립의 배열에 대한 join 기능을 java 에서도 java8부터 사용할 수 있게 되었습니다.


String 클래스에 추가 된 method 입니다. 이름도 동일하게 join으로 사용할 수 있습니다.


String.join 으로 사용하면 되고, 아래 처럼 여러형태의 데이터들을 이용해서 join 할 수 있습니다.



1. 문자열을 순서대로 나열한 값을 join -> a,b,c

1
String joined1 = String.join(",""a""b""c");



2. 문자 배열을 join -> a,b,c
1
2
String[] array = new String[] { "a""b""c" };
String joined2 = String.join(",", array);



3. 문자 List를 join -> a,b,c

1
2
List<String> list = Arrays.asList(array);
String joined3 = String.join(",", list);



반응형
반응형

오라클에서 문자를 날짜형으로 바꿀 때 TO_DATE 함수를 사용합니다.


1
select TO_DATE('20171225123031''YYYYMMDDHH24MISS'FROM DUAL;




날짜 함수 중에 월 단위 덧셈 함수 입니다.

1
SELECT ADD_MONTHS(to_date('2017-01-27''YYYY-MM-DD'),1FROM dual;



반응형
반응형
오라클에서는 날짜를 문자열로 변환할 때 TO_CAHR 함수를 씁니다.

사용법은 다음과 같습니다.

1
SELECT TO_CHAR(SYSDATE, '날짜포맷'FROM DUAL;





자주쓰는 날짜포맷은 다음과 같습니다.

년도

YYYY 2017
YY 17


MONTH NOVEMBER
MM 06
MON NOV


DD 31

요일

D 6
DY FRI
DAY FRIDAY

시간

HH 23
HH12 11
AM AM
PM PM


MI 21


SS 20


반응형
반응형

jdk8 부터 jvm 옵션 중 아래 내용이 변경 되었습니다.


변경 전

-XX:PermSize=128m -XX:MaxPermSize=128m


변경 후

-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m


이름만 바뀐게 아니라  Permanent 영역의 정책도 같이 변경되었으니 관심있으신 분들은 Deep Searching!

반응형
반응형

오라클을 사용하다 보면 테이블이나 컬럼들의 목록을 조회 해야할 때가 있습니다.


1. 테이블 목록과 코멘트 조회 쿼리 입니다.


1
2
3
4
5
6
7
8
SELECT
    b.table_name,
    b.comments
FROM
    user_tables a
    LEFT OUTER JOIN all_tab_comments b ON a.table_name = b.table_name
WHERE
    b.table_type = 'TABLE';



2. 컬럼 목록과 코멘트 조회 쿼리 입니다. (조금 길군요.)


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
SELECT
    tab_columns.table_name,
    tab.comments AS tablecomment,
    tab_columns.column_id,
    tab_columns.column_name,
    (
        CASE
            WHEN data_type LIKE '%CHAR%' THEN data_type
             || '('
             || data_length
             || ')'
            WHEN
                data_type = 'NUMBER'
            AND
                data_precision > 0
            AND
                data_scale > 0
            THEN data_type
             || '('
             || data_precision
             || ','
             || data_scale
             || ')'
            WHEN
                data_type = 'NUMBER'
            AND
                data_precision > 0
            THEN data_type
             || '('
             || data_precision
             || ')'
            WHEN data_type = 'NUMBER' THEN data_type
            ELSE data_type
        END
    ) data_type,
    DECODE(
        nullable,
        'N',
        'Not Null',
        'Null'
    ) nullable,
    data_default,
    (
        SELECT
            DECODE(
                SUM( (
                    SELECT
                        DECODE(
                            constraint_type,
                            'P',
                            1,
                            'R',
                            2,
                            0
                        )
                    FROM
                        user_constraints
                    WHERE
                        constraint_name = cons_columns.constraint_name
                ) ),
                1,
                'PK',
                2,
                'FK',
                3,
                'PK,FK',
                ''
            )
        FROM
            user_cons_columns cons_columns
        WHERE
                table_name = tab_columns.table_name
            AND
                column_name = tab_columns.column_name
    ) constraints,
    comments.comments
FROM
    user_tab_columns tab_columns,
    user_col_comments comments,
    all_tab_comments tab
WHERE
        tab_columns.table_name = comments.table_name (+)
    AND
        tab_columns.table_name = tab.table_name
    AND
        tab_columns.column_name = comments.column_name (+)
ORDER BY
    tab_columns.table_name,
    column_id



3. 2번 쿼리 조회결과 입니다.


반응형
반응형

오라클에서 Insert 값중에 &가 포함되어 있는경우 변수로 인식해서 오류가 발생하게 됩니다.


1
insert into NOTICE (title) values ('&title');



그런 경우 세가지 해결방법이 있습니다.


1. SET DEFINE OFF;

 - &를 통한 변수를 사용하지 않게다고 선언하는 것입니다.


2. SET DEFINE [다른문자열];

 - &가 아닌 다른문자열을 통해 변수를 사용하겠다고 선언하는 것입니다.


3. SET ESCAPE ON;

 - &를 통한 변수 사용은 그대로 두면서 역슬래시 문자열(\)을 통해 &를 사용하면 문자로 인정해 주는 것 입니다.


1
insert into NOTICE (title) values ('\&title');



반응형
반응형

0. 먼저 데이터베이스에 접속합니다.

1
sqlplus / as sysdba



1. 유저를 생성하는 명령어 입니다.


1
CREATE USER [유저명] IDENTIFIED BY [비밀번호] DEFAULT TABLESPACE [테이블스페이스명] TEMPORARY TABLESPACE TEMP;



2. 생성한 유저에게 권한을 부여하는 명령어 입니다.


1
GRANT CONNECT, RESOURCE, DBA TO [유저명];




- CONNECT : 데이터베이스에 연결할 수 있는 권한입니다.

- RESOURCE : DDL과 DML을 사용할 수 있는 권한입니다.

- DBA : 데이터베이스 관리자 권한입니다.

반응형
반응형

ORA-00054: 리소스가 사용 중이어서 NOWAIT가 지정되었거나 시간 초과가 만료된 상태로 획득합니다


이런 오류가 발생할 경우 아래 쿼리를 실행 합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT
    a.sid,
    a.serial#,
    a.status
FROM
    v$session a,
    v$lock b,
    dba_objects c
WHERE
        a.sid = b.sid
    AND
        b.id1 = c.object_id
    AND
        b.type = 'TM'
    AND
        c.object_name = [테이블명];



아래 처럼 결과가 나옵니다.


1
2
3
4
       SID    SERIAL# STATUS
---------- ---------- --------
       355       5657 INACTIVE
 



그럼 다시 아래와 같이 쿼리를 실행합니다.


1
alter system kill session '355,5657';



아래와 같이 결과가 나오면서 해결 됩니다.


1
System altered.



반응형
반응형

Git 연동을 위한 SourceTree 설치 입니다.


다운로드 URL : https://www.atlassian.com/software/sourcetree




1. 클릭 해서 다운로드 후 관리자 권한으로 실행

-SourceTreeSetup_1.8.3.exe









Next 신공을 사용합니다. 




설치를 위해서 Atlaasian 계정이 필요합니다. 계정이 없으신 분들은 계정을 생성 후 진행하셔 합니다.



반응형
반응형

" [SourceTree를 이용한 상황별 Git 사용법] 단순 소스 변경 후 커밋 "에 이어서 "다른 사람이 수정한 소스 내려받기" 방법 입니다.



다른 사람이 수정하거나 추가한 소스가 있는지 확인 하려면 “페치”를 클릭 합니다.


* 설정에 따라 일정 시간이 지나면 SourceTree에서 자동으로 “페치”를 합니다.


* “페치” 하지 않은 상태에서 소스를 커밋 시 이미 다른 커밋 이력이 올라온 상태라면 SourceTree에서 경고를 보여주며 커밋이 진행되지 않습니다.






확인을 클릭 합니다.






1. 페치결과 다른 사람이 변경한 소스가 있으면 그 개수 만큼 “풀” 메뉴에 표시 됩니다.

- “풀” 메뉴를 클릭하면 다른 사람의 소스를 나의 Local로 내려 받습니다.


2. 브랜치별로 변경된 소스 개수를 표시 합니다. 


3. 나의 커밋 이력에서 위쪽에 추가로 생성된 커밋 이력을 확인 할 수 있습니다.






“풀” 메뉴를 클릭 후 화면 입니다.


“확인” 버튼을 클릭 합니다.





1. 다른 사람이 수정한 소스 개수가 사라졌습니다.


2. 다른 사람이 수정한 소스 개수가 사라졌습니다.


3. Local 저장소의 포인터가 최신 커밋 이력으로 옮겨졌습니다.



반응형

+ Recent posts