테이블 생성

CREATE TABLE 테이블명 (
컬럼명 데이터타입 디폴트값 NULL허용여부, 
컬럼명 데이터타입 디폴트값 NULL허용여부,
...
);

CREATE TABLE TABLE_aa (
column_A NUMBER(4) NOT NULL,
column_B DATE
column_C VARCHAR2(10) '디폴트값'
);

 

PK생성

ALTER TABLE 테이블명 ADD CONSTRAINT PK명 PRIMARY KEY (컬럼명, 컬럼명...);

ALTER TABLE TABLE_aa ADD CONSTRAINT column_A_pk PRIMARY KEY (column_A);

 

테이블 설명 (comment)

COMMENT ON 테이블명 IS '테이블설명';
COMMENT ON TABLE_aa IS '테이블설명';

COMMENT ON COLUMN 테이블명.컬럼명 IS '컬럼설명';
COMMENT ON COLUMN TABLE_aa.column_A IS '컬럼설명';

 

인덱스 생성

CREATE INDEX 인덱스명 ON 테이블명 (컬럼명, 컬럼명...);

CREATE INDEX index_aa ON TABLE_aa (column_A, column_B);

 

컬럼 데이터타입 변경

ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입(길이)
ALTER TABLE TABLE_aa MODIFY column_A VARCHAR2(50);

-- 같은 방식으로 null 허용여부, 디폴트 값도 변경 가능

 

컬럼명 변경

ALTER TABLE 테이블명 RENAME COLUMN 기존컬럼명 TO 새컬럼명;
ALTER TABLE TABLE_aa RENAME COLUMN column_A TO column_Z;

 

컬럼 추가, 삭제


-- 컬럼 추가
ALTER TABLE 테이블명 ADD 컬럼명 데이터타입 디폴트값 NULL허용여부;
ALTER TABLE TABLE_aa ADD column_S NUMBER(4) 0000 NOT NULL;
 
-- 컬럼삭제
ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
ALTER TABLE TABLE_aa DROP COLUMN column_A;

 

이클립스에 테마 적용해서 쓰고 있었는데,

배경색과 드래그 색이 비슷해서 불편함이 있다.

물론 이런 건 Preferences 에서 간단하게 변경 가능하다.

 

 

Eclipse → Window → Preferences → General → Editors → Text Editors → Appearance color options

※ 사실 좌측 상단의 타입필터에 검색어를 입력하면,

트리구조를 다 거치지 않아도 해당 메뉴로 바로 이동할 수 있다.

 

드래그 관련 설정은 여기에서 5,6번째 항목을 만져주면 된다.

 

 

 

그 외 Appearance color options 설명


1. Line number foreground: 좌측 줄번호 색상
2. Current line highlight: 커서가 위치한 현재 라인의 하이라이트 색상(배경)
3. Print margin: 편집창에 세로로 있는 라인 색상(참고로 설정을 꺼놔서 내 편집창엔 안보인다)
4. Find scope: ctrl+F 검색 시 Selected lines 옵션을 선택하면 나타나는 배경 색상 (검색 대상 라인 표시)
5. Selection foreground color: 드래그 시 폰트 색상
6. Selection background color: 드래그 시 배경 색상
7. Background color: 편집창의 배경 색상을 지정
8. Foreground color: 전경색(사실 무슨 옵션인지 잘 모르겠음)
9 Hyperlink: 하이퍼링크 색상

 

xml파일로 쿼리 수정하던 중 난데없이 nvl로 트집잡는 이클립스...

어차피 DB툴로 쿼리 테스트 해보고 복붙하는 것이니,

그냥 스펠링 체크를 해제하기로 했다.

 

 

window → preferences  Spelling

체크해제해서, 사용안함으로 바꿔주면 된다.

 

 

 

톰캣 서버를 올리면, 가끔 이렇게 해당 포트가 이미 사용중이라는 오류가 뜰 때가 있다.

진짜 사용중이면 억울하지라도 않을텐데...

 

 

해결방법

8080 포트를 사용중인 PID를 찾아서 죽이면 된다.

 

 

1. 일단 cmd창을 연다. (윈도우+R → cmd)

 

 

2. 어떤 PID가에서 포트를 쓰고 있는지 찾아본다. (내 경우에는 12976)

netstat -a -n -o -p tcp

 

3. 죽인다.

taskkill /f /pid 12976

 

 

 

끝!

 

 

MS-SQL

 

데이터 복사 / 백업테이블 만들기

SELECT * INTO ~ FROM ~ WHERE ~

INSERT INTO ~ SELECT * FROM ~ WHERE ~

 

-- A_TABLE_COPY를 생성해서 A_TABLE 내용 복사
SELECT * INTO A_TABLE_COPY
FROM A_TABLE WHERE USER_NO = 1234;

-- B_TABLE_COPY가 존재할 때 B_TABLE 내용 복사
INSERT INTO B_TABLE_COPY
SELECT * FROM B_TABLE WHERE USER_NO = 5678;

 

단, INSERT INTO SELECT 구문을 사용하려면

기존 테이블과 타입 등이 일치해야 한다

 

 


 

ORACLE

 

데이터 복사 / 백업테이블 만들기

CREATE TABLE ~ AS SELECT * FROM ~ WHERE ~

INSERT INTO ~ SELECT * FROM ~ WHERE ~

 

-- A_TABLE_COPY를 생성해서 A_TABLE 내용 복사
CREATE TABLE A_TABLE_COPY AS
SELECT * FROM A_TABLE WHERE USER_NO = 1234;

-- B_TABLE_COPY가 존재할 때 B_TABLE 내용 복사
INSERT INTO B_TABLE_COPY
SELECT * FROM B_TABLE WHERE USER_NO = 5678;

 

단, INSERT INTO SELECT 구문을 사용하려면

기존 테이블과 타입 등이 일치해야 한다

 

 

 

 

 

 

 

1. 윈도우 시계 우클릭 → 날짜/시간 조정


2. 관련설정의 날짜, 시간 및 사용지역 언어 → 추가 날짜, 시간 및 국가별 설정


3. 제어판의 날짜, 시간 또는 숫자형식 변경


4. 추가설정

 

5. 날짜 탭으로 이동

 

6. 날짜 형식 수정

* 참고

ddd: 월, 화 등 한 글자로 표기
dddd: 월요일, 화요일 등 세 글자로 표기

 

 

확인 또는 적용하면 끝

 

매번 설정할 때마다 까먹고 헤매서 따로 백업해둠

 

 

1. Oracle SQL Developer 메모리 설정

 

설치경로\sqldeveloper\ide\bin

(내 경우엔 C:\TOOL\sqldeveloper\ide\bin)

ide.conf 수정

-Xms 최소 할당

-Xmx 최대 할당

적절히 수정해주기

 

 

 

2. 설치한 글꼴이 Oracle SQL Developer에서 안보일 때

글꼴을 '모든 사용자용으로 설치'해야 보인다

 

 

3. 매번 설정하기 귀찮아서 올려두는 코드편집기 설정파일(테마 적용하기)

C:\Users\A\AppData\Roaming\SQL Developer\system19.2.1.247.2212\o.ide.13.0.0.1.42.190403.1502\dtcache.xml

(사용자이름/버전 등에 따라 상세 경로는 다를 수 있음)

 

dtcache.xml
0.19MB

이 부분 이름을 수정하면 Oracle SQL Developer 내부에서도 저장된 이름이 바뀐다.

여기에 해당 Key와 Value 붙여넣거나 파일을 바꾸면...

코드편집기에서 구성표로 불러올 수 있음

 

 

4. 그 외 설정

 

 

설정 완료된 모습...

매번 설정할 때마다 까먹고 헤매서 백업해둠

C드라이브밖에 없을 때, 용량을 나누어 D드라이브 추가하기

 

 

1. Win+R 단축키로 실행 → diskmgmt.msc 입력해 디스크관리 실행

 

 

 

2. (C:) 우클릭, 볼륨 축소

 

3. D드라이브로 나누어줄 용량만큼 설정

 

4. 하단에 '할당되지 않음' 용량 확인

 

5. 우클릭 - 새 단순 볼륨

 

6. 단순 볼륨 만들기 마법사 실행 > 다음

 

 

7. C드라이브에서 떼어온 용량 중 원하는만큼 설정

 

8. 드라이브 문자 설정(기본 D)

 

 

9. 포맷 설정 (여기서 '새 볼륨' 대신 다른 이름 설정하면 D드라이브에 이름 붙음)

 

10. 최종 확인 후 마침 클릭

 

11. 파티션 분할 완료

 

WM_CONCAT과 DISTINCT 기능을 함께 이용하다 발생한 오류.

SELECT 결과에 CLOB 주소값?이 나오고, ORA-00932 오류가 발생했다.

 

문제가 되었던 함수는 아래의 wm_concat과 distinct...

 

wm_concat(distinct(컬럼명))

 

row 데이터를 A, B, C 이런식으로 자동 나열해주는 wm_concat...

찾아보니 이 wm_concat 함수가 10g 이상에서만 사용 가능하다고 해서,

혹시 버전호환 문제일까? 했는데 아니었다... (11g사용)

 

wm_concat은 데이터를 CLOB 타입으로 return하는데, 

중복을 제거해주는 DISTINCT 함수는 CLOB 타입을 지원하지 않아서 생긴 문제였다.

 

11g에서 사용 가능한 ListAgg 함수는 DISTINCT를 사용할 수 없어서

wm_concat 함수를 그대로 이용하는 방법을 찾아봤다.

 

to_char(wm_concat(distinct(컬럼명)))

 

이렇게 감싸주니 생각보다 간단히 해결되었다.

물론 진짜 CLOB 타입이 필요한 아주 긴 데이터였으면 곤란했겠지만,

실제로는 VARCHAR2(20 BYTE) 정도의 짧은 데이터가 한개, 많아야 두개 묶이는 데이터여서 큰 문제는 없을 것 같다.

 

 

 

참고

http://gurubee.net/article/55512

https://blog.daum.net/jwchoi1224/70

+ Recent posts