SQL 4 Oracle 오라클용 sql 실무

SQL4Oracle 64

PLSQL- DATA가 있으면 UPDATE, 없으면 INSERT

2011-10-14 11:23:02 SQL 4 Oracle 오라클용 sql 실무 ▒ PLSQL- DATA가 있으면 UPDATE, 없으면 INSERT declare P_cnt number := 0; find_CNT number := 0; cursor P_cursor is select 고객ID, 고객상태, 취득년월일, 취득점수 from 목적_Table where 취득년월일 = '20111001' ; begin for box in P_cursor loop select count(*) into P_cnt from 평가_Table where 고객ID = box.고객ID and 취득년월일 = box.취득년월일 ; IF P_cnt = 0 then insert into 평가_Table values(box.고객ID ,b..

SQL4Oracle 2023.03.10

TABLESPACE 당 사용율 조회

2011-10-14 09:42:08 SQL 4 Oracle 오라클용 sql 실무 ▒ TABLESPACE 당 사용율 조회 ▒ sys유저 권한이 사용가능할 경우 SELECT TABLESPACE_NAME, SUM(T_BYTES) "총용량(MB)", SUM(T_USED) "사용중인공간(MB)", SUM(T_FREE) "사용가능공간(MB)" FROM (SELECT B.TABLESPACE_NAME, ROUND(B.BYTES/1024/1024,2) T_BYTES, ROUND((B.BYTES - SUM(NVL(A.BYTES,0)))/1024/1024, 2) T_USED, ROUND(SUM(NVL(A.BYTES,0))/1024/1024, 2) T_FREE FROM SYS.DBA_FREE_SPACE A, SYS.DBA_D..

SQL4Oracle 2023.03.10

메인 Table 안에서 OVER함수 이용 다중고객 계산하기

2011-08-26 13:45:50 SQL 4 Oracle 오라클용 sql 실무 ▒ 메인 Table 안에서 OVER함수 이용 다중고객 계산하기 ▒ 인라인 뷰를 이용 다중고객 계산하기 select decode(eq_YN, 0, '단독고객', '다중고객') 다중고객유무, mdf_mon 등록년월, count(*) 총건수, count(distinct 고객ID) 고객수, sum(취득점수) 취득점수 from ( select A.고객ID, decode( B.eq_CNT, 1, '0', '1') eq_YN substr(A.등록년월일,1,6) mdf_mon, A.취득점수 from 목적_Table A , (select B.고객ID ,count(*) eq_CNT from 목적_Table B where B.고객상태='활동중 ..

SQL4Oracle 2023.03.10

replace가 꼭 필요한 시점

2011-08-22 10:20:34 SQL 4 Oracle 오라클용 sql 실무 ▒ replace가 꼭 필요한 시점 웹상에서 문제를 일으키는 select 결과에 포함된 특수문자 처리 ▒ html 태그로 오인 받는 "" 문자 처리 select trim(replace(비고,'',']')) from 목적_Table where 고객상태='활동중' and 비고 like '%>%' update 목적_Table set 비고 = trim(replace(비고,'>',']')) where 고객상태='활동중' and 비고 like '%>%' ; commit; ▒ 문자열 구분으로 오인받는 "'" 문자 처리 (I'PARK 등) select replace(주소,'''','-') from 주소_Table where 주소 like ..

SQL4Oracle 2023.03.10

재미있는 DUAL 테이블2

2011-08-19 15:08:56 SQL 4 Oracle 오라클용 sql 실무 ▒ 재미있는 DUAL 테이블2 Oracle에는 SYS가 소유하고, 모든 USER가 사용할 수 있는 DUAL이라는 Table이 있다. 용도는 개별 계산식 테스트나, select절 안에서 연관 계산식으로 사용이 가능한 재미있는 Table이다. ▒ DUAL Table을 인라인 뷰로 활용하기 select b.종류코드, b.종류명, a.* from 목적_Table a , (select '10000' 종류코드, '여신' 종류명 from dual union select '20000' 종류코드, '기금' 종류명 from dual union select '30000' 종류코드, '신탁' 종류명 from dual ) b where a.종류코드..

SQL4Oracle 2023.03.10

재미있는 DUAL 테이블

2011-08-18 17:26:24 SQL 4 Oracle 오라클용 sql 실무 ▒ 재미있는 DUAL 테이블 Oracle에는 SYS가 소유하고, 모든 USER가 사용할 수 있는 DUAL이라는 Table이 있다. 용도는 개별 계산식 테스트나, select절 안에서 연관 계산식으로 사용이 가능한 재미있는 Table이다. ▒ DUAL Table을 이용한 sysdate 날짜 분리하기 select to_char(sysdate,'YYYY.MM.DD HH24:MI:SS') 년월일시분초, to_char(sysdate,'YYYYMMDD') 년월일, to_char(sysdate,'HH24') 시, to_char(sysdate,'MI') 분, to_char(sysdate,'SS') 초, trunc( months_betwee..

SQL4Oracle 2023.03.10

Informix와 Oracle 달랐던 점 한가지

2011-08-18 11:13:16 SQL 4 Oracle 오라클용 sql 실무 ▒ Informix와 Oracle 달랐던 점 한가지 두 시스템 모두 대용량 데이터 처리에 탁월한 성능을 보여주었다. 기능을 잘 몰라서 불편함이 있었지 성능상의 어려움을 느낀적은 없었다. 그래도 하나 다른점이 눈에 띄었는데 대용량 데이터 처리에서 장점이 될 수도 있고, 단점이 될 수도 있는 건이었다. 정리되지 않은 자료를 정보로써 가공을 하기 위해 대량 데이터 로딩을 각 시스템에서 해본적이 있었다 예로 1000Byte로 정의된 text 필드에 대량 데이터 로딩 작업 Informix는 로딩이 성공 했으나, Oracle은 로딩에 실패하였다. 왜 실패했을까? 원시 자료를 까보니 전체 자료중에서 1000Byte가 넘는 건이 몇건 있었..

SQL4Oracle 2023.03.10

주민등록번호 성별 구분

2011-08-16 09:14:43 SQL 4 Oracle 오라클용 sql 실무 ▒ 주민등록번호 성별 구분 - 7번째 자리 성별 표현의 의미 남성 1: 국내 1900년대 생 3: 국내 2000년대 생 5: 외국 1900년대 생 7: 외국 2000년대 생 또는 (외국인등록증 및 외국국적동포 국내거소신고증이 없을 경우) 조합주민번호 9: 국내 1800년대 생 여성 2: 국내 1900년대 생 4: 국내 2000년대 생 6: 외국 1900년대 생 8: 외국 2000년대 생 또는 (외국인등록증 및 외국국적동포 국내거소신고증이 없을 경우) 조합주민번호 0: 국내 1800년대 생 SELECT (case when substr(고객주민번호,7,1) in ('1','3','5','7','9') then '남성' else ..

SQL4Oracle 2023.03.10