숫자만 들어있는 컬럼이 있는데, 정렬을 해 보니,
select cast('1' as unsigned) as test
숫자를 문자로 변환할 때에는
select cast(2 as char(1)) as test
'데이터베이스 > MySQL' 카테고리의 다른 글
[MySQL]날짜관련 처리함수 (0) | 2016.10.13 |
---|---|
[PHP] 대문자를 소문자로~ 소문자를 대문자로~ (0) | 2016.10.13 |
[MySQL]날짜관련 처리함수 (0) | 2016.10.13 |
---|---|
[PHP] 대문자를 소문자로~ 소문자를 대문자로~ (0) | 2016.10.13 |
[MySQL]날짜관련 처리함수 (0) | 2016.10.13 |
---|---|
[MySQL] 문자를 숫자로 숫자를 문자로 변환(CAST) (0) | 2016.10.13 |
년도와 월이 주어졌을 경우, 해당 월의 달력을 생성해주는 쿼리를 만들어 보자.
쿼리는 아래와 같다. (2000년 01월이 주어졌을 경우)
SELECT MIN (DECODE (TO_CHAR (days, 'd'), 1, TO_CHAR (days, 'fmdd'))) 일,
MIN (DECODE (TO_CHAR (days, 'd'), 2, TO_CHAR (days, 'fmdd'))) 월,
MIN (DECODE (TO_CHAR (days, 'd'), 3, TO_CHAR (days, 'fmdd'))) 화,
MIN (DECODE (TO_CHAR (days, 'd'), 4, TO_CHAR (days, 'fmdd'))) 수,
MIN (DECODE (TO_CHAR (days, 'd'), 5, TO_CHAR (days, 'fmdd'))) 목,
MIN (DECODE (TO_CHAR (days, 'd'), 6, TO_CHAR (days, 'fmdd'))) 금,
MIN (DECODE (TO_CHAR (days, 'd'), 7, TO_CHAR (days, 'fmdd'))) 토
FROM (SELECT base_mon + LEVEL - 1 days,
( TRUNC (base_mon + LEVEL - 1, 'd')
- TRUNC (TRUNC (base_mon + LEVEL - 1, 'y'), 'd')
) / 7 + 1 week_grp
FROM (SELECT TO_DATE ('200001', 'yyyymm') base_mon
FROM DUAL)
CONNECT BY base_mon + LEVEL - 1 <= LAST_DAY (base_mon))
GROUP BY week_grp
ORDER BY week_grp
connect by level 절을 사용하지 못하는 버전일 경우에는, 아래와 같이 dict 테이블을 이용한다.
아래 예는 위의 쿼리 와는 다르게 오늘로부터 몇달 후인지를 나타내는 변수 :n에 따라 달력을 생성한다.
(:n=-1 일 경우 지난달, 0은 이번달, 1은 다음달, 2는 다다음달,...)
SELECT MIN (DECODE (TO_CHAR (days, 'd'), 1, TO_CHAR (days, 'fmdd'))) 일,
MIN (DECODE (TO_CHAR (days, 'd'), 2, TO_CHAR (days, 'fmdd'))) 월,
MIN (DECODE (TO_CHAR (days, 'd'), 3, TO_CHAR (days, 'fmdd'))) 화,
MIN (DECODE (TO_CHAR (days, 'd'), 4, TO_CHAR (days, 'fmdd'))) 수,
MIN (DECODE (TO_CHAR (days, 'd'), 5, TO_CHAR (days, 'fmdd'))) 목,
MIN (DECODE (TO_CHAR (days, 'd'), 6, TO_CHAR (days, 'fmdd'))) 금,
MIN (DECODE (TO_CHAR (days, 'd'), 7, TO_CHAR (days, 'fmdd'))) 토
FROM (SELECT base_mon + ROWNUM - 1 days,
( TRUNC (base_mon + ROWNUM - 1, 'd')
- TRUNC (TRUNC (base_mon + ROWNUM - 1, 'y'), 'd')
)
/ 7
+ 1 week_grp
FROM (SELECT TRUNC (ADD_MONTHS (SYSDATE, :n), 'mm') base_mon
FROM DUAL), dict
WHERE base_mon + ROWNUM - 1 <= LAST_DAY (base_mon))
GROUP BY week_grp
ORDER BY week_grp
Orange for Oracle 단축키 (0) | 2019.01.28 |
---|---|
[oracle]GREATEST, LEAST 함수 (0) | 2018.06.22 |
[오라클]그룹별 순번 만들기 (0) | 2013.06.21 |
[오라클]유저생성 (0) | 2013.04.09 |
행을 열로 표시하기 (0) | 2011.10.14 |
SELECT
MASTER_CODE
,CODE
,VALUE
,RANK() OVER(PARTITION BY MASTER_CODE ORDER BY MASTER_CODE, CODE)
from NAME_MT
ORDER BY MASTER_CODE, CODE ;
Orange for Oracle 단축키 (0) | 2019.01.28 |
---|---|
[oracle]GREATEST, LEAST 함수 (0) | 2018.06.22 |
Oracle 달력 쿼리 (0) | 2016.10.13 |
[오라클]유저생성 (0) | 2013.04.09 |
행을 열로 표시하기 (0) | 2011.10.14 |
oracle DB 를 설치하고, instance 를 만들어서 start 를 했다면 이제 유저를 생성할 차례..
(oracle 11g 에서 테스트 해봄)
1. tablespace 를 생성
SQL> create tablespace 테이블스페이스_네임 datafile '데이타파일위치(절대경로)' size 용량;
SQL> create tablespace test_ts01 datafile '/data1/oradata/test_ts01_data01.dbf' size 1024M;
-> 인덱스용 테이블 스페이스도 미리 생성하자
SQL> create tablespace test_ti01 datafile '/data1/oradata/test_ti01_indx01.dbf' size 1024M;
2. 유저 생성
SQL> create user 아이디 identified by 패스워드 default tablespace 테이블스페이스_네임 temporary tablespace temp;
SQL> create user test identified by testpassword default tablespace test_ts01 temporary tablespace temp;
3. 권한 부여
SQL> grant connect, resource to 아이디;
SQL> grant connect, resource to test;
ps. 참고로 각 내용들의 조회 방법
유저 조회
select username, default_tablespace, temporary_tablespace, account_status, profile from dba_users order by 1;
테이블스페이스 상태 조회
select tablespace_name, status, contents, extent_management, segment_space_management from dba_tablespaces order by 1;
데이터파일 상태 조회
select tablespace_name, bytes, file_name from dba_data_files order by 1;
사용자에게 할당된 시스템 권한 조회
select grantee, privilege from dba_sys_privs where lower(grantee) in ('아이디') order by 1;
권한의 묶음인 롤 확인
select grantee, granted_role from dba_role_privs where lower(grantee) in ('아이디') order by 1;
Orange for Oracle 단축키 (0) | 2019.01.28 |
---|---|
[oracle]GREATEST, LEAST 함수 (0) | 2018.06.22 |
Oracle 달력 쿼리 (0) | 2016.10.13 |
[오라클]그룹별 순번 만들기 (0) | 2013.06.21 |
행을 열로 표시하기 (0) | 2011.10.14 |
// 달 증가
select add_months(sysdate, -1), sysdate from dual;
DB2 관련 툴 (0) | 2012.12.31 |
---|---|
[DB2]에러코드 (0) | 2012.12.24 |
[DB2] Backup & Restore (0) | 2012.12.21 |
DB2_COMPATIBILITY_VECTOR AND DB2 EXPRESS C (0) | 2012.11.30 |
[DB2] CONNECT BY LEVEL (ORACLE -> DB2) (0) | 2011.08.04 |
DB2 관련 툴
Toad for DB2 (상용)
Orange for DB2 (상용)
XpertMon (상용)
SQLGate for DB2 (상용, 무료버전 있음)
SqlDbx Personal (상용, 무료버전 있음)
개인적으로 Orange for DB2 가 가볍고 편리하나, 상용이라....
상용툴이 없다면,, SQLGate 또는 SqlDbx 추천!!
DB2 날짜 계산 (0) | 2013.01.10 |
---|---|
[DB2]에러코드 (0) | 2012.12.24 |
[DB2] Backup & Restore (0) | 2012.12.21 |
DB2_COMPATIBILITY_VECTOR AND DB2 EXPRESS C (0) | 2012.11.30 |
[DB2] CONNECT BY LEVEL (ORACLE -> DB2) (0) | 2011.08.04 |
DB2 날짜 계산 (0) | 2013.01.10 |
---|---|
DB2 관련 툴 (0) | 2012.12.31 |
[DB2] Backup & Restore (0) | 2012.12.21 |
DB2_COMPATIBILITY_VECTOR AND DB2 EXPRESS C (0) | 2012.11.30 |
[DB2] CONNECT BY LEVEL (ORACLE -> DB2) (0) | 2011.08.04 |
backup
db2 backup db DB_NAME to D:\BK
restore
db2 restore db DB_NAME from d:\BK taken at backup_time(yyyymmddhhmmss)
DB2 관련 툴 (0) | 2012.12.31 |
---|---|
[DB2]에러코드 (0) | 2012.12.24 |
DB2_COMPATIBILITY_VECTOR AND DB2 EXPRESS C (0) | 2012.11.30 |
[DB2] CONNECT BY LEVEL (ORACLE -> DB2) (0) | 2011.08.04 |
[DB2] Oracle 호환모드로 바꾸기 (0) | 2011.08.04 |
http://lifewithdatabases.tumblr.com/post/724631321/db2-compatibility-vector
DB2 관련 툴 (0) | 2012.12.31 |
---|---|
[DB2]에러코드 (0) | 2012.12.24 |
[DB2] Backup & Restore (0) | 2012.12.21 |
[DB2] CONNECT BY LEVEL (ORACLE -> DB2) (0) | 2011.08.04 |
[DB2] Oracle 호환모드로 바꾸기 (0) | 2011.08.04 |