'분류 전체보기'에 해당되는 글 108건
- 2013.08.20 한글깨질때!!!
- 2013.06.25 ie 상위버전이나 크롬에서 getYear() 가 데이터를 제대로 못가져올때 수정
- 2012.11.08 모바일 참고
- 2012.02.07 오라클 wait
- 2012.02.03 오라클 OBJECT 조회(USER_SOURCE 활용)
- 2012.02.03 오라클 TIMESTAMP
- 2011.10.12 웹인쇄 - 인쇄시 Page 나누기
- 2011.10.12 jad로 역컴파일..
- 2011.03.17 드라마 '연애시대' 중...
- 2011.03.02 오라클 테이블 복사 쿼리
- 2011.03.01 crow의 오라클 백업/복구 제2회
- 2011.03.01 crow의 오라클 백업/복구 제1회
- 2011.02.28 SYS_CONNECT_BY_PATH , CONNECT BY
- 2011.02.11 [펌]은행별 우수고객 되는 방법과 조건
- 2011.01.26 하드케이스 & 하드
String pram = new String(request.getParameter("param").getBytes("8859_1"),"euc-kr");
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
java.net.URLDecoder.decode(request.getParameter("param"), "EUC-KR");
ss.username, se.time_waited,
so.physical_reads
from v$session_event se, v$session ss, v$sess_io so
where 1=1
and event like '%db file %'
and se.sid = ss.sid
and ss.sid = so.sid
order by time_waited desc;
v$session_wait 를 조회하세요.
V$EVENT_NAME
|
인스턴스에서 정의된 대기이벤트의 정보를 가지는 참조성 View
|
이벤트 명, Parameter1, Parameter2, Parameter3
|
V$SYSTEM_EVENT
|
인스턴스의 기동 후 , 전 세션에서 발생한 대기 이벤트의 누계 통계치(인스턴스 단위)
|
인스턴스의 전반적인 안정도를 판단할 수 있으며, 특정 시간대의 Delta 정보를 산출하여 구간 분석 가능
|
V$SESSION_EVENT
|
현재 접속되어 있는, 각 세션 별 대기이벤트의 누계 통계치
|
접속한 세션에 대해, 각 이벤트 별 통계정보를 파악
|
V$SESSION_WAIT
|
각 세션이 현재 대기하고 있는 대기이벤트에 대한 상세 정보(P1,P2,P3,대기시간 등)를 제공
|
누적데이터가 아니고, 실시간 데이터이므로, 반복적으로, Query를 수행하여 대기이벤트의 상황을 파악해야 함
|
V$SYSTEM_WAIT_CLASS
|
10g NF.인스턴스 기동 후 발생된 대기이벤트를 관련된 Class별로 Grouping 한 결과 제공
|
대기이벤트의 클래스 단위로, 인스턴스의 대기 상황 파악
|
V$SESSION_WAIT_CLASS
|
10g NF. 현재 접속되어 있는 각 세션 별 대기이벤트를 Class별로 Grouping한 결과 제공
|
대기이벤트의 클래스 단위로, 세션의 대기 상황 파악
|
V$SESSION_WAIT_HISTORY
|
10g NF. 최근 10개의 V$SESSION_WAIT 데이터 제공
|
Session Wait에 대한 아주 짧은 이력 정보 제공
|
V$EVENT_HISTOGRAM
|
10g NF. 인스턴스 기동후의 대기이벤트에 대한 히스토그램 제공
|
각 버킷(대기시간의 구간)별 대기이벤트의 발생 이력 파악에 도움
|
V$ACTIVE_SESSION_HISTORY
|
10g NF. Active Session의 이력정보 제공
|
1초 단위로 각 Active 세션 기본 정보,SQL수행정보, PQ 관련정보, 대기Event정보, 대기 Event관련 OBJ#, FiLE#, BLOCK# 등의 정보 제공 |
SELECT * FROM USER_SOURCE
WHERE TEXT LIKE '%테이블명%'
SELECT * FROM 테이블명 AS OF TIMESTAMP(SYSTIMESTAMP -INTERVAL '20' MINUTE)
WHERE SEQ ='1'
20분전 데이터 조회
1.데모
http://www.ihelpers.co.kr/programming/css/print.html
2.소스
<STYLE TYPE="text/css">
<!-- .break {page-break-before: always;} -->
</STYLE>
1. http://mamoru15.egloos.com/1815962
2. http://cafe.naver.com/javababy.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=68&
< 역컴파일러 사용법 >
1. 역컴파일하려는 class파일이 있는 폴더에 jad.exe를 옮긴다.
2. DOS 창을 열고 그 폴더를 찾아간다.
3. jad -sjava '클래스명' 을 타이핑한다.
(예) 경로가 c:javafiles, 역컴파일하려는 파일이 A.class인 경우 DOS창에서
C:javafiles> jad -sjava A.class
4. 확인해 보면 그 폴더에 A.java 파일이 생성되어 있을 것이다. jad.exe
5. 여러 파일을 한번에 컴파일
jad -sjava ./경로폴더명/*.class
(예) jad -sjava ./temp/*.class
그때는 그냥 흘려들었던, 노래가 계속 기억이 남아 찾아보니,
이문세의 '그때 내가 미처 하지 못했던 말'이였다....
아마... 처음 드라마를 보았을때 정도엔 나름 20대 중후반이였기에...
너무 늘어지는 노래라고 생각하지 않았을까 싶다....
유난히 마음에 와닿는 대사들이 많아서 책까지 샀었던...
드라마... 좋은 글귀들을 정리해본다...
난 나중에 후회 안 할 만큼 마지막까지 발버둥 쳐본거예요.
중간에 그만두면 두고두고 납득하지 못해요.
후회가 길어지죠.
안그래요? 한 번 쯤 발버둥 쳐봐요.
모양새는 우습더라도 그게 나을 때도 있어요.
----
심리학자가 아니라
그냥 자네보다 좀더 오래 산 사람으로서 말한다면 산다는 건 어떻게든 후회가 남는 일이라고 생각해.
그래서 뭔가를 선택해야 할 때 나는 덜 후회할 일을 선택하지.
----
은호야, 최선을 다해 노력하지 않으면 행복해질 수 없다.
네가 행복해져야만 이 세상도 행복해 진단다.
하나님한테는 내가 같이 용서를 빌어주마.
행복해져라, 은호야.
OST '그때 내가 미처 하지 못했던 말' - 이문세..
작사/곡 : 노영심
다 버릴 수 있어
내 긴 슬픔, 상처
다 주어도 좋은
다 잃어도 좋은
단 하나의 너
나의 단 하나의 눈물
나 기억해줘
내 고백은 널 위한 꿈
언제나 등불 같던 이 사랑
네 마음이 흐르는 곳에
진실이 닿는 그 곳에
내가 먼저 있을께
네 사랑이 닿는 그 곳에
두눈이 머무는 곳에
항상 내가 있을께
[출처] 오라클 테이블 복사 쿼리 |작성자 수유산장
테스트용 테이블 만들때 유용하게 쓸수 있죠..
CREATE TABLE TEST_MEMBER AS SELECT * FROM MEMBER
검색을 걸어서 필요한 데이타만 복사할수도 있죠.
CREATE TABLE TEST_MEMBER AS SELECT * FROM MEMBER WHERE IDX<10000
테이블 구조만 복사하고 싶다면..
CREATE TABLE TEST_MEMBER AS SELECT * FROM MEMBER WHERE 1=2
검색조건을 이렇게 한다면 테이타는 복사가 안되겠죠..
테이블이 이미 만들어진 경우는
INSERT INTO TEST_MEMBER SELECT * FROM MEMBER
주의할점은 테이블구조만 복사된다는 것이다.
프라이머리키나 인덱스등은 복사가 안돼니 따로 설정해 주어야 한다.
안녕하세요 영원한 초보 crow입니다. 두번째 강좌입니다..^^
김호님 감사합니다 허접하기 짝이 없는 강좌가 올라갈 줄이야 꿈에도 몰랐습니다.
앞으로 더욱 알차게 실무에 바로 쓸 수 있게 올리겠습니다.
그럼 첫번째 강좌에 이어 오늘은 테이블스페이스를 만들어 보고, 크기 조정하고, 지우고...
그리고 테이블 스페이스가 지웠졌을 때 복구하는 이런 것들을 해보죠.
아무래도 데이타가 쌓이는 곳이 이곳이다 보니 쪼까 중요하자나요..
일단 오라클을 실행하구요..
[oracle@crow oracle]$ svrmgrl SVRMGR> connect internal SVRMGR> startup |
전 시간에 배운걸 이용해서 테이블 스페이스가 어디있는지 확인하겠습니다.
SVRMGR> select tablespace_name, bytes, file_name from dba_data_files; TABLESPACE_NAME BYTES FILE_NAME ------------------------------------------------------------------------------- SYSTEM 183500800 /home/oracle/oradata/ORCL/system01.dbf OEM_REPOSITORY 5242880 /home/oracle/oradata/ORCL/oemrep01.dbf RBS 26540032 /home/oracle/oradata/ORCL/rbs01.dbf TEMP 10485760 /home/oracle/oradata/ORCL/temp01.dbf USERS 2087409664 /home/oracle/oradata/ORCL/users01.dbf INDX 10485760 /home/oracle/oradata/ORCL/indx01.dbf DRSYS 83886080 /home/oracle/oradata/ORCL/drsys01.dbf |
보시는대로 /home/oracle/oradata/ORCL 에 다 있군요.. 그러면 test라는 테이블 스페이스를 하나 만들어 보겠습니다.
SVRMGR> create tablespace test 2> datafile '/home/oracle/oradata/ORCL/test_01.dbf' 3> size 10K; Statement processed. SVRMGR> select tablespace_name, bytes, file_name from dba_data_files; TABLESPACE_NAME BYTES FILE_NAME ------------------------------ ---------- ------------------------------------------ SYSTEM 183500800 /home/oracle/oradata/ORCL/system01.dbf OEM_REPOSITORY 5242880 /home/oracle/oradata/ORCL/oemrep01.dbf RBS 26540032 /home/oracle/oradata/ORCL/rbs01.dbf TEMP 10485760 /home/oracle/oradata/ORCL/temp01.dbf USERS 2087409664 /home/oracle/oradata/ORCL/users01.dbf INDX 10485760 /home/oracle/oradata/ORCL/indx01.dbf DRSYS 83886080 /home/oracle/oradata/ORCL/drsys01.dbf TEST 10240 /home/oracle/oradata/ORCL/test_01.dbf <==여기보이시죠 8 rows selected. |
보시는대로 test라는 테이블 스페이스를 만들고요, /home/oracle/oradata/ORCL/ 에 test_01.dbf라는 이름의 파일을 만들었습니다.. 아.. 그리고 크기는 10kbyte 로 만들어놨습니다.. 여기서 꼭 /home/oracle/oradata/ORCL/ 에 만들 필요는 없습니다. 전 그저 쉽게 하기 위해 이렇게 하는겁니다..^^ 그럼 테이블 스페이스의 크기를 늘려볼까요?
SVRMGR> alter tablespace test add datafile '/home//oracle/oradata/ORCL/test_02.dbf' size 30K; Statement processed. |
흠 그럼 데이타 파일 크기를 늘리죠.
SVRMGR> !ls -al /home/oracle/oradata/ORCL/test_02.dbf -rw-r----- 1 oracle dba 53248 Apr 13 06:05 /home//oracle/oradata/ORCL/test_02.dbf |
크기가 늘어났군요.. 그럼 지워볼까요..
SVRMGR> drop tablespace test; Statement processed. |
지금은 테이블 스페이스 안에 데이타가 없어서 그냥 이렇게 지워졌지만.. 데이타가 들어있다면
drop tablespace test including contents; |
이렇게 하세요.. 그럼 어디 데이타 파일도 지워졌나 보죠.
SVRMGR> !ls -al /home//oracle/oradata/ORCL/ total 2363032 drwxr-x--x 2 oracle dba 4096 Apr 13 06:02 . drwxr-x--x 3 oracle dba 4096 Nov 27 05:54 .. -rw-r----- 1 oracle dba 4315136 Apr 13 06:11 control01.ctl -rw-r----- 1 oracle dba 4315136 Apr 13 06:11 control02.ctl -rw-r----- 1 oracle dba 83888128 Apr 13 05:48 drsys01.dbf -rw-r----- 1 oracle dba 10487808 Apr 13 05:48 indx01.dbf -rw-r----- 1 oracle dba 5244928 Apr 13 05:48 oemrep01.dbf -rw-r----- 1 oracle dba 26542080 Apr 13 05:48 rbs01.dbf -rw-r----- 1 oracle dba 512512 Apr 13 05:48 redo01.log -rw-r----- 1 oracle dba 512512 Apr 13 06:08 redo02.log -rw-r----- 1 oracle dba 183502848 Apr 13 05:48 system01.dbf -rw-r----- 1 oracle dba 10487808 Apr 13 05:48 temp01.dbf -rw-r----- 1 oracle dba 12288 Apr 13 06:08 test_01.dbf <== -rw-r----- 1 oracle dba 53248 Apr 13 06:08 test_02.dbf <==데이타파일은 이렇게 2개 살아있죠 -rw-r----- 1 oracle dba 2087411712 Apr 13 05:48 users01.dbf |
이 데이타 파일을 지워보겠습니다..
SVRMGR> !rm -f /home//oracle/oradata/ORCL/test_* |
자 이렇게 해서 지워졌습니다..
SVRMGR> shutdown immediate; SVRMGR> exit |
데이타 베이스를 종료하고 나왔습니다.. 지금까지 테이블스페이스를 만들어보고, 조정하고, 지워봤습니다. 자, 이제 temp 라는 테이블 스페이스를 유실시킨 후 복구 실습을 한번 해보겠습니다. 역시 오라클을 시동하시구요,
[oracle@crow oracle]$ svrmgrl SVRMGR> connect internal SVRMGR> startup |
그럼 먼저 temp 테이블 스페이스의 크기와 경로를 알아보구요
SVRMGR> select tablespace_name, bytes, file_name from dba_data_files; TABLESPACE_NAME BYTES FILE_NAME ------------------------------ ----------ㅡ------------------------------------------------ SYSTEM 183500800 /home/oracle/oradata/ORCL/system01.dbf OEM_REPOSITORY 5242880 /home/oracle/oradata/ORCL/oemrep01.dbf RBS 26540032 /home/oracle/oradata/ORCL/rbs01.dbf -------------------------------------------------------------------------------- TEMP 10485760 /home/oracle/oradata/ORCL/temp01.dbf<==여기 보이시죠 -------------------------------------------------------------------------------- USERS 2087409664 /home/oracle/oradata/ORCL/users01.dbf INDX 10485760 /home/oracle/oradata/ORCL/indx01.dbf DRSYS 83886080 /home/oracle/oradata/ORCL/drsys01.dbf 7 rows selected. |
경로는 아까 본 거기이고 크기는 1M 네요.
SVRMGR> shutdown abort <== failure가 되었다고 가정하는 것입니다. ORACLE instance shut down. |
[oracle@crow ORCL]$ svrmgrl SVRMGR> connect internal Connected. |
위처럼 파일을 지우고요. 아래처럼
SVRMGR> alter database open; Statement processed. |
이렇게 데이타베이스를 open 합니다 그리고 나서
SVRMGR> drop tablespace temp including contents; Statement processed. |
이렇게 temp 스페이스를 지웁니다.. 그런다음 아래와 같이
SVRMGR> create tablespace temp datafile '/home/oracle/oradata/ORCL/temp01.dbf' size 1M; Statement processed. |
아까 경로 와 크기를 알아둔 거 있자나요. 그걸 그대로 이용해서 하나 다시 만들어줍니다..그럼 끝.. 이제 오라클을 종료하고요..
SVRMGR> shutdown immediate |
스타트업을 합니다..
SVRMGR> startup ORACLE instance started. Total System Global Area 71998864 bytes Fixed Size 64912 bytes Variable Size 54984704 bytes Database Buffers 16777216 bytes Redo Buffers 172032 bytes Database mounted. Database opened. |
잘 실행되네요.. 다시 종료시키죠..
SVRMGR> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SVRMGR> exit Server Manager complete. |
파일이 복구되어있는지 ls로 확인해 보면..
[oracle@crow ORCL]$ ls control01.ctl drsys01.dbf oemrep01.dbf redo01.log system01.dbf temp01.org control02.ctl indx01.dbf rbs01.dbf redo02.log temp01.dbf users01.dbf [oracle@crow ORCL]$ rm -f temp01.org <== 테스트가 끝났으므로 이젠 필요없는 파일을 지웁니다.. |
이렇게 테스트가 끝났습니다. 테이블스페이스 유실이었을때 이렇게 하면 됩니다.. 그런데 여기서 중요한 건 경로와 크기를 잘 알아야 한다는 것이겠죠.. 이걸 어떻게 기억하낭^^ 오늘은 이만 합니다..^^ 좀 난해하면 crow@dreamsta.com으로 연락주세요... 변변치 않는 실력에 답변까지 하기가 좀 뭐하지만 최선을 다해 답변해드리겠습니다.. 감사합니다.. 다음 강좌에서는 아카이브 모드와 노아카이브모드에대해서 알아보져.. 그럼 안녕히계세요..
출처 : http://cafe.naver.com/javalove.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=294&
안녕하세요? 백업/복구 과정 강좌를 맡게 된 영원한 초보 crow입니다.. 정식 명칭은 10의 redcrow 이구요 저도 초보라 강좌가 강좌답게 갈런지 의심스럽네요..^^ .. 현재 (주)DWS에서 허접한 개발자로 있구요 ^^ 처음 게임프로그래머로 시작을 했고 IT쪽은 이제 1년이 쪼금 안됐네요.. 나이요 절라 많아요 73년12월10일생이에요. 음력으로여^^ 아무쪼록 귀엽게 봐주시구요.. 백업은 저도 몇 달 전에 학원에서 듣고 써 먹지를 못했습니다.. 학원에서 배운 그대로 여러분에게 전달은 안되겠지만 한번 최선을 다해 보도록 하겠습니다.. 저도 테스트를 해봐야 하기에 컴터는 펜Ⅲ650 / 128M (리눅스 6.2/오라클 8i) 에 설치를 해놓았습니다.. 그리고 일단, 여러분.. 디비는 만들어보셨는지 ^^ 오라클을 설치하면 기본적으로 디비가 하나 만들어지지만, 그거말고 여러분이 디비를 하나 만들줄 알아야 합니다.. 전 여러분이 디비를 만들줄 안다는 가정하에서 들어가겠습니다.. 왜냐하면요.. 오라클 데이타베이스에 전반적인 메모리 구조와 프로세서 구조를 설명을 해야 하는데.. 저도 사실 가물가물하거든요 오라클을 안만진지가 어언~~~~~~~몇 개월돼서..^^ 그럼 일단 오라클 데이타 베이스에 데이타파일, 컨트롤파일, 리두로그파일 들이 어디에 있는지 알아보죠 이 파일들이 꼭 있어야 백업이 가능하고 복구가 가능합니다. 오늘은 이 파일들을 가지고 놀아보겠습니다. 그리고 이 파일들을 가지고 백업을 하는건 다음시간에 하기로 하구요.. 데이타 베이스에 데이터파일은 v$datafile, v$datafile_header, dba_data_files 이 값들을 추출해서 볼 수 있습니다.. 데이터파일이란 테이블스페이스를 구성하는 파일로 실제로 데이타가 저장되는 곳입니다. 한번 실습해보죠..
일단 오라클이 시동이 안되어있다면 이렇게 시동하세요.
[oracle@crow oracle]$ svrmgrl Oracle Server Manager Release 3.1.5.0.0 - Production (c) Copyright 1997, Oracle Corporation. All Rights Reserved. Oracle8i Release 8.1.5.0.2 - Production With the Java option PL/SQL Release 8.1.5.0.0 - Production SVRMGR> connect internal Connected. SVRMGR> startup ORACLE instance started. Total System Global Area 71998864 bytes Fixed Size 64912 bytes Variable Size 54984704 bytes Database Buffers 16777216 bytes Redo Buffers 172032 bytes Database mounted. Database opened. |
참고로 오라클 종료 명령어는 shutdown입니다. 이제 값을 추출해 보죠.
SVRMGR> select name from v$datafile; NAME -------------------------------------------------------------------------------- /home/oracle/oradata/ORCL/system01.dbf /home/oracle/oradata/ORCL/oemrep01.dbf /home/oracle/oradata/ORCL/rbs01.dbf /home/oracle/oradata/ORCL/temp01.dbf /home/oracle/oradata/ORCL/users01.dbf /home/oracle/oradata/ORCL/indx01.dbf /home/oracle/oradata/ORCL/drsys01.dbf |
데이타 파일 위치와 이름들이 보이시죠.. 디비를 한번 만들어보신 분들은 그 사용 목적이 뭔지 아실껍니다.. 모르시는 분들도 그냥 이런게 있구나만 알고 계십시요. 이 강좌는 오라클 백업과 복구이기 때문에 자세한 설명은 다음에 제가 오라클 디비를 만들어 볼 때 해드리거나 아니면 다른 참고 자료를 읽어보세요.. 제가 잘가는 database.sarang.net에 가보시면 오라클뿐만아니라 여러가지 많은 디비들의 자료가 있습니다. 그럼 계속 나가보겠습니다.. 데이터파일에 관한 정보는 v$datafile과 v$datafile_header, dba_files 에 있습니다. 또 있던거 같은데 생각이 나질 않네요...^^; 우리는 지금 데이타파일의 위치와 이름만 알면 되니까 이거면 충분합니다. 그리고 컨드롤파일의 위치와 파일 이름은 v$controlfile, 리두로그는 v$logfile, v$log를 통해서 볼 수 있습니다..
SVRMGR> select name from v$controlfile; NAME -------------------------------------------------------------------------------- /home/oracle/oradata/ORCL/control01.ctl /home/oracle/oradata/ORCL/control02.ctl |
컨트롤 파일 위치 정보 입니다.. 컨트롤 파일은 데이타 화일들의 위치나 Online/Offline 상태, 온라인 로그화일들의 위치와 가장 최근의 system change number 값과 가장최근에 발행한 CheckPoint 시간과 각종 오라클 관련 정보를 저장하는곳입니다.
SVRMGR> select * from v$logfile; GROUP# STATUS MEMBER ======================================================= 1 STALE /home/oracle/oradata/ORCL/redo01.log <--현재 이것만 사용하고 있습니다.. 2 /home/oracle/oradata/ORCL/redo02.log <--이건 아직 사용대기중입니다.. |
로그파일 위치와 파일이름이 출력되었습니다. 리두로그파일은 변화된 모든 데이타를 저장하며 데이타베이스 복구 작업의 경우에만 사용됩니다. 참고로 데이타베이스 대한 정보는 v$database 로 보실 수 있습니다. 그리고 각 v$view 에 대한 필드명을 알고 싶으면, 알고 있겠지만 desc v$database, v$datafile(테이블명); 아시겠져.. 오늘 강좌를 이걸로 마치겠습니다 다음 강좌에서는 테이블스페이스를 하나 만들고 테이블을 만들어서 데이타를 넣어서 그걸 가지고 백업해보겠습니다.. 그럼 이만..^^
출처 : http://blog.naver.com/cjj721004?Redirect=Log&logNo=120116296911
1. SYS_CONNECT_BY_PATH(column,char)은 데이터의 셀프조인에 의한 트리구조 데이테에 대해서 한row에서 표현할때 사용하는 것입니다.
간단히 말씀드리면, FIle시스템에서 파일이 위치하는 경로에 대해서 표현하는것과 같다고 생각하시면 됩니다.
2. "START WITH rnum = 1" 은 경로중에서 root에 해당하는 부분을 어디서 부터 할것인지 설정한는 조건을 말합니다.
3. "CONNECT BY PRIOR rnum = rnum - 1 AND PRIOR a = a"은 계층을 만들기 위한 조인부분으로 경로의 다음 연결 경로를 지정하는 역할을 합니다.
즉, A -> B -> C 로 데이터의 연결을 만들기 위함입니다.
4. 이함수는 Oracle에서 사용하는 것으로, 특별한 환경 설정은 없으며, 단지 Data에 대해서 계층구조를 가지고 있다면 언제든지 사용을 할수 있습니다.
가장 대표적인 예제로는 회의의 조직도 Data가 되겠네요.. ^^
출처 : Tong - redyoon님의 DB통
간단한 샘플
SELECT A
, SUBSTR(MAX(SYS_CONNECT_BY_PATH(B, ',')), 2) AS B
FROM (SELECT A
, B
, ROW_NUMBER() OVER(PARTITION BY A ORDER BY A) AS RNUM
FROM (SELECT 1 A , '엄마' B FROM DUAL
UNION ALL
SELECT 1 A , '아빠' B FROM DUAL
UNION ALL
SELECT 1 A , '이모' B FROM DUAL
UNION ALL
SELECT 2 A , '삼촌' B FROM DUAL
UNION ALL
SELECT 2 A , '오빠' B FROM DUAL)
)
START WITH RNUM = 1
CONNECT BY PRIOR RNUM = RNUM - 1 AND PRIOR A = A
GROUP BY A
다음의 실행하면 결과값은 다음과 같이 나올 것이다.
A | B
1 | 엄마,아빠,이모
2 | 삼촌,오빠
---------------
어떻게 만들어지는지 분석모드
SELECT 1 A , '엄마' B FROM DUAL
UNION ALL
SELECT 1 A , '아빠' B FROM DUAL
UNION ALL
SELECT 1 A , '이모' B FROM DUAL
UNION ALL
SELECT 2 A , '삼촌' B FROM DUAL
UNION ALL
SELECT 2 A , '오빠' B FROM DUAL
A B
1 엄마
1 아빠
1 이모
2 삼촌
2 오빠
일단 기본 데이터를 정의한다.
SELECT A,B,
ROW_NUMBER() OVER( ORDER BY A) AS RNUM
FROM (SELECT 1 A , '엄마' B FROM DUAL
UNION ALL
SELECT 1 A , '아빠' B FROM DUAL
UNION ALL
SELECT 1 A , '이모' B FROM DUAL
UNION ALL
SELECT 2 A , '삼촌' B FROM DUAL
UNION ALL
SELECT 2 A , '오빠' B FROM DUAL)
A B RNUM
1 엄마 1
1 아빠 2
1 이모 3
2 삼촌 4
2 오빠 5
기본데이터를 ROW_NUMBER() OVER( ORDER BY A) 를 사용해서 A 컬럼을 기준으로 정렬을해서 RNUM 을 정의해준다.
SELECT A
,SUBSTR(SYS_CONNECT_BY_PATH(B, ','),2) AS B
FROM (SELECT A
, B
, ROW_NUMBER() OVER(PARTITION BY A ORDER BY A) AS RNUM
FROM (SELECT 1 A , '엄마' B FROM DUAL
UNION ALL
SELECT 1 A , '아빠' B FROM DUAL
UNION ALL
SELECT 1 A , '이모' B FROM DUAL
UNION ALL
SELECT 2 A , '삼촌' B FROM DUAL
UNION ALL
SELECT 2 A , '오빠' B FROM DUAL)
)
START WITH RNUM = 1
CONNECT BY PRIOR RNUM = RNUM - 1 AND PRIOR A = A
A B
1 엄마
1 엄마,아빠
1 엄마,아빠,이모
2 삼촌
2 삼촌,오빠
위에 나온데이터를 기준으로 SYS_CONNECT_BY_PATH 를 써줬다.
START WITH RNUM = 1 시작 기준점을 RNUM 1을 시작점으로 잡고
CONNECT BY PRIOR RNUM = RNUM - 1 RNUM과 하나작은 RNUM과 결합하면서,
AND PRIOR A = A A값을 기준으로 같은거 끼리 묶어줬다.
CONNECT BY PRIOR RNUM = RNUM - 1 를 이해할때는 하나의 BOM을 생각하면 될거다.
시작은 RNUM = 1 로 시작하고
RNUM 이 2이면 RNUM 1과 2를 합치면서 A와 A가 같은걸 결합
RNUM 이 3이면 RNUM 3과 2를 합치고 A와 A가 같은걸 결합
SELECT A
, SUBSTR(MAX(SYS_CONNECT_BY_PATH(B, ',')), 2) AS B
FROM (SELECT A
, B
, ROW_NUMBER() OVER(PARTITION BY A ORDER BY A) AS RNUM
FROM (SELECT 1 A , '엄마' B FROM DUAL
UNION ALL
SELECT 1 A , '아빠' B FROM DUAL
UNION ALL
SELECT 1 A , '이모' B FROM DUAL
UNION ALL
SELECT 2 A , '삼촌' B FROM DUAL
UNION ALL
SELECT 2 A , '오빠' B FROM DUAL)
)
START WITH RNUM = 1
CONNECT BY PRIOR RNUM = RNUM - 1 AND PRIOR A = A
GROUP BY A
A B
1 엄마,아빠,이모
2 삼촌,오빠
그룹함수를 써서 A로 그룹지어서 가장큰 값을 뽑아오면 끝
[출처] SYS_CONNECT_BY_PATH , CONNECT BY|작성자 아기대장
우연히 은행관련 정보를 얻기 위해 웹서핑을 하다가 좋은 정보가 있어 여기에 올립니다.
아시는 분들은 다 아시겠지만 그래도 조금이나바 도움이 되었음 합니다...^^
저금리 상태가 계속되면서 일반인들은 자잘한 은행 수수료에도 민감해질 수밖에 없다. 몇푼 안돼 보이지만 금융거래가 잦은 사람은 2,3만원을 허공에 날려 버리기 때문이다. 게다가 은행들이 슬금슬금 수수료를 계속 올리고 있어 수수료가 점차 부담이 될 가능성이 높다.
이런 상황에서는 수수료나 대출 금리 할인, 적금 금리 우대 따위의 서비스를 제공한다는 주거래고객에 관심을 가질만 하다. “기왕이면 다홍치마”라고 어차피 은행 거래를 할 바에야 한 은행과 집중적으로 거래하면서 조금이라도 잇속을 챙기는 편이 낫기 때문이다.
지금까지 주거래고객이 누릴 수 있는 혜택에 대해선 많은 이야기들이 나왔다. 하지만 실제 주거래고객이 될 수 있는 ‘지름길’은 알려진 적이 거의 없다. 대개 주거래고객 우대제도는 우대, 우수, 최우수, VIP 등 4등급으로 나뉜다. 해당 은행 고객관리팀장이 공개하는, 첫 단계 ‘우대’ 수준의 주거래고객이 되는 방법을 공개한다.
하나은행 “신용카드를 많이 써라”
신용카드 사용 실적만 늘리면 하나은행 주거래고객이 되는 것은 비교적 쉽다. 홍필희 고객정보관리팀 팀장은 “다른 은행과 달리 신용카드 실적에 상당히 높은 점수를 준다”며 “두세달 정도만 사용하면 된다”고 말했다.
고객점수가 20점만 넘으면 하나은행의 주거래고객이 될 수 있다. 그런데 3개월 동안 신용카드 누적거래금액이 150만원에 이르면 22.5점이 된다. 신용카드로 한달에 50만원씩 쓰면 3개월만에 주거래고객이 될 수 있는 셈이다. 아울러 가족들의 거래 실적도 주거래고객 평가 때 합산 된다.
하지만 주거래고객이 되려면 다음 세가지 조건 가운데 두가지 이상이 충족돼야 한다. 우선 신용카드 결제 통장이 반드시 하나은행 것이어야 한다. 두번째로 급여이체, 자동이체, 인터넷뱅킹, 텔레뱅킹 중에서 세가지는 거래 실적이 있어야 한다. 마지막으로 적립식 예금이 100만원 이상 있어야 한다.
주거래고객이 되면 텔레뱅킹 및 인터넷뱅킹을 이용한 타행이체 수수료를 500원에서 250원으로 내려준다. 또한 환전할 때도 0.16% 만큼 환전을 더 해준다. 인터넷쇼핑몰인 인터파크(interpark.com)에서 여행상품을 사면 4% 할인 혜택도 준다.
신한은행 “적금을 많이 들어라”
신한은행의 주거래고객이 되는 지름길은 적립식 예금, 즉 적금을 늘리는 것이다. 서춘석 개인고객부 마케팅 팀장은 “점수로 보면 상대적으로 적금 비중이 높고 대출 비중은 낮은 편”이라고 강조했다. 따라서 적금 거래를 집중적으로 공략하는 것이 좋다.
신한은행 주거래고객이 되려면 고객점수가 500점이상 되야 한다. 적금은 100만원당 20점, 입출금식 예금은 100만원당 15점을 받는다. 은행에 부은 적금이 2500만원을 넘으면 바로 주거래고객이 되는 것이다.
신용카드를 사용할 때도 10만원당 5점씩이 주어진다. 점수 비중으로 보면 꽤 높은 편이다. 하지만 신용카드만으로 주거래고객이 되려면 최소 6개월이상 사용하고, 1천만원 넘게 써야 한다. 평범한 직장인들 입장에선 현실성이 떨어지는 것이다. 따라서 신용카드는 모자라는 예·적금 점수를 보충하는 것으로 활용하는 게 낫다.
주거래고객에게는 신용대출과 주택담보대출 때 금리를 0.1%포인트 내려준다. 텔레뱅킹과 인터넷뱅킹 타행이체 수수료 500원도 300원으로 내려간다. 환전이나 해외송금 수수료도 각각 10%와 20%씩 줄여준다.
국민은행 “입출금식 예금을 늘려라”
국민은행 주거래고객이 되려면 수시 입출금식 예금을 늘리는 게 빠르다. 황태원 고객관리팀 팀장은 “한마디로 자유저축 또는 보통저축 통장에 잔고가 많을수록 좋다”고 말했다.
구체적으로 국민은행의 주거래고객이 되기 위해서는 입출금식 예금의 3개월치 평균잔액이 1500만원 이상 있어야 한다. 이 기준에는 양도성예금증서(CD), 신탁 등도 포함돼 있다. 물론 적금에도 점수를 주기는 하지만 조금 더 까다롭다. 예를 들어 3개월 수신금액이 2천만원 이상 돼야 주거래고객으로 분류되는 것이다. 신용카드 실적도 다른 은행에 비해 그리 비중이 높지는 않다.
주거래고객이 되면 텔레뱅킹과 인터넷뱅킹을 이용할 때 600원인 타행이체 수수료를 400원만 내면 된다. 이외에 통장이나 현금·직불카드를 재발급받거나 자기앞수표를 발행할 때 수수료를 면제해준다. 아울러 가계자금을 대출받을 때 금리가 최소한 0.1% 포인트 낮아진다.
우리은행 “대출만 받으면 된다”
대출을 많이 받으면 우리은행에서는 주거래고객으로 대접받는다. 홍현풍 고객관리팀 팀장은 “은행 에 수익을 안겨주는 대출이 많을수록 점수가 높다”고 조언했다.
우리은행에선 신용카드나 적금 등의 실적은 비중이 상당히 낮다. 따라서 오직 대출과 입출금식 예금의 합산금액을 늘리는 것이 가장 빠른 주거래고객 공략법이라고 할 수 있다. 3개월 평균으로 대출과 입출금식 예금 합산금액이 2천만원 이상, 4천만원 미만이면 주거래고객이 된다. 왠만한 주택담보대출만 받아도 바로 주거래고객이 될 수 있는 것이다.
우리은행이 주거래고객에게 제공하는 서비스가 그리 많지는 않다. 통장이나 현금·직불카드 재발행 수수료 등만 면제해준다. 1단계 주거래고객에는 다른 은행처럼 텔레뱅킹이나 인터넷뱅킹 타행이체 수수료 할인 혜택이 없는 것이다. 물론 최우수(VIP)고객이 되면 할인 혜택이 많지만 총수신 평균잔액이 1억원 이상이어야 한다.
외장케이스 : NTY-S35HD :
하드 1T : WD10EALS : 67,720
하드 2T : WD20EARS : 100,000
외장케이스_1T -> 111,000
외장케이스_2T -> 164,000