DB링크  이용 시 

DB connection 관련 정보는 아래에 설명되어 있다.


https://docs.oracle.com/cd/E11882_01/server.112/e25494/ds_admin.htm#ADMIN12168


예전 10g에서 DB링크 이용 시 DB LINK Connection 이 full 나서 시스템을 사용하지 못하는 경우가 발생했다. 




처음엔 원인을 몰라 헤매었는데 


나중에 알고보니 


ALTER SESSION CLOSE DATABASE LINK linkname;


를 안해서 limit connection 수가 다 찼던 것. 



결론은 db링크를 쓰고 나면 session 을 close 해줘야 한다. 


commit 만 한다고 끝나는게 아니라는 거. 




안 쓸 수 있다면 db링크는 안쓰는게 더 좋... ㅎㅎ




우리나라 대형 IT프로젝트의 웃픈 현실을 엿볼 수 있는 사건


모사에서 수행하던 프로젝트가 엎어지고... 모사는 철수 & 모2사에서 다시 인수하여 진행하는 중에 있은 일이다. 


엎어지면서 만든 모사의 자료를 철석같이 믿고 그대로 뿌리다니... 


주는 사람이나 받아서 그대로 전달하는 사람이나... 충격적이다. 


하아... 암울한 미래가 선명하게 보인다.


---------------------------------------------------------------------------------------------------------------------------------------------------


보낸 사람 : 설계아무개/과장/모2사

받은 사람 : 아무개

날짜 : Mon Feb 26 14:58:13 KST 20xx

제목 : [전달] 계산 관련테이블

 


 

안녕하세요. 보낸아무개 과장입니다.

 

현업 확인 결과 계산에 관련된 테이블이 누락되었습니다.

 

첫번째탭 '최종현황' 시트에 필터되어 있는 68개 테이블입니다.

 

보완 부탁드립니다.

 

감사합니다.

 

----- 원본 메시지 -----

보낸 사람 : 고객아무개/과장/고객어벤저스팀

받은 사람 : 여러아무개들

날짜 : Mon Feb 26 13:36:40 KST 20xx

제목 : 계산 관련테이블

 


 

 

주위의 몇분의 얘기를 들으니 계산 관련테이블 목록이 누락이 있는 듯 하여

기존 모사에서 작업한 파일을 다시 검토하여 보았습니다.

기존 보내드린 자료의 생성일자가 최신이라 그것을 보내드렸는데, 아무리 봐도 무슨 작업용 파일인 듯 합니다.

 

그 이전 버전을 확인해 보니 그것이 최종인 듯 합니다.

첨부파일에 기존 목록과 비교하여 68개의 테이블을 필터링 하여 놓았습니다.

해당 테이블 목록을 검토하여 우선전환 테이블 목록(계산 검증용)에 추가 부탁드립니다.

 

수고하세요.

윈도우 업데이트(KB4074588 ) 로 인한 문제라고 함


업데이트(KB4074588)를 삭제하면 된다고 하는데


마우스/키보드가 안되는데 어떻게 삭제하지? 




도스모드로 부팅하여

커멘드창에서 

wusa /uninstall /kb:4075688

입력하면 된다고 한다. 



한번 해보자




길게 쓰자면 한없이 길 수 있는 주제다. 


숫자타입 컬럼의 데이터를 

INSERT

SELECT 하다 보면


소스 데이터의 숫자의 합과 

타겟 데이터의 숫자의 합이 다를 수 있다.


왜?




소스 컬럼 타입이 NUMBER 이고

타겟 컬럼 타입이 NUMBER(22) 일 때


NUMBER 는 소수점을 포함하고 

NUMBER(22)는 소수점을 포함하지 않는 정수형 타입이므로 


INSERT 하면서 반올림 해버린다. 


테스트해본 내용은 이렇다. 



CREATE TABLE HWON

(

BASIC_USE_QT NUMBER(22),

BASIC_USE_QT2 NUMBER

)

NOLOGGING;


INSERT INTO HWON

SELECT ODQT, ODQT

FROM TABLE

WHERE MOD(ODQT, 1) <> 0  -- 소수점 자리 값이 있는것만 


SELECT *

FROM HWON


이렇게 해보면 결과는


BASIC_USE_QT BASIC_USE_QT2 

1 0.5

1 0.5

1 0.5

2 1.5

1 0.5

1 0.5

1 0.5

1 0.5

1 0.5



이렇게 강제로 반올림 되어버린다. 



그러니 모르고 있으면... 값이 잘못 들어갈 수 있다.



select COLUMN_NAME, DATA_LENGTH, DATA_PRECISION, DATA_SCALE 

from all_tab_columns where table_name = 테이블명


해보면 DATA_SCALE 이 소수점 자리수를 의미한다. 0이면... 정수다. 




자세한 내용은 

https://m.blog.naver.com/PostView.nhn?blogId=hanccii&logNo=220733159291&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F

이 분 블로그 내용을 참고해보시라. 상당히 자세히 연구하신듯.



코레일(www.letskorail.com) 예매 사이트에서 기차표 예매 시 


타임시커와 네이비즘을 이용하여 예매를 성공해볼까 했는데... 


결과는 반쯤 성공. 


원하던 시간 중 복편만 예매하고 왕편은 원하던 다음시간대로 예매했다. 




타임시커와 네이비즘의 시간 차가 약 1.2초 정도 있었는데 (네이비즘이 1.2초 빠름)


실제 클릭을 해보니...  네이비즘이 맞았다. 


게다가 네이비즘도 정확하진 않은 것 같고... 약 0.1~0.5 초 정도 더 빨리 눌러야 1000번 대기 이내로 들어갈 수 있을 듯 하다. 



오랜만에 시도하여 절반만 성공했지만 

다음번에는 꼭.... 완성을 해야지.



rdp.zip



윈도우 HOME EDITION은 원격데스크톱 기능이 빠져있다.


PRO 버전을 설치해야 원격데스크톱을 사용할 수 있는데 


RDP 프로그램을 이용하면 HOME EDITION에서도 원격 사용이 가능하다. 


근데 윈도우 10은 RDP를 이용해서도 잘 안되던데 


몇시간을 시도하다 겨우 해결하여 올려본다.



마지막으로 시도한 DLL 파일은 아래 링크에 있는 파일이며 

다운로드한 파일을 압축하여 올려두었다. 혹시 안되면 아래 링크에서 받아 해보길...


https://github.com/stascorp/rdpwrap/issues/229#issuecomment-292485948




나도 잘 까먹으니 남겨두기용으로.... 



계좌정보통합관리서비스 (은행에 숨어있는 계좌/돈 찾기)- https://www.payinfo.or.kr/payinfo.html


카드 포인트 통합조회서비스 - https://www.cardpoint.or.kr/

미환급 공과금찾기 - http://www.minwon.go.kr/etc/AA090_pkg_srch_refund.jsp


내보험 찾아줌 (숨은보험금찾기) - https://cont.insure.or.kr/


내보험다보여(가입된 보험내용 다 보기) - http://ins.credit4u.or.kr/showAll/main.do


주식찾기(미수령주식 조회) - http://www.ksd.or.kr/esrv/stockSearch.home?menuNo=114


연금조회 - https://100lifeplan.fss.or.kr/main/main.do


출자·배당금 미환급조회 

   - 농협 : https://www.nonghyup.com/Html/Nhnonghyup/Nhperson/MoneyInvested.aspx

   - 수협 : https://www.suhyup.co.kr/minwon/refund.jsp

   - 산림조합 : http://www.nfcf.or.kr/forest/user.tdf?a=user.refund.RefundApp&c=1001&mc=KOR_SUP_RFD

   - 새마을금고 : https://ibs.kfcc.co.kr/ib20/mnu/MCT0000000001126


유료방송 미환급액 조회 - https://www.kait-tvrefund.kr/



SELECT A.TABLESPACE_NAME AS "TABLESPACE"

     , A.BYTES / 1024 / 1024  AS "TOTAL(MB)"

     , (A.BYTES - NVL(B.FREEBYTES,0)) / 1024 / 1024 AS "Used(MB)"

     , NVL(B.FREEBYTES,0) / 1024 / 1024 AS "Free(MB)"

     , ROUND(NVL(B.FREEBYTES,0)*100/A.BYTES,2) AS "Free(%)"

FROM (

      SELECT TABLESPACE_NAME

           , SUM(BYTES) BYTES 

        FROM DBA_DATA_FILES 

       GROUP BY TABLESPACE_NAME

      ) A

   , (

      SELECT TABLESPACE_NAME

           , SUM(NVL(BYTES,0)) FREEBYTES 

        FROM DBA_FREE_SPACE 

       GROUP BY TABLESPACE_NAME

      ) B

WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME(+)

ORDER BY 5 ASC;




좀 오래 걸리긴 함. ...






SELECT d.status "Status", d.tablespace_name "Name", d.contents "Type", d.extent_management "Extent Management", 

 TO_CHAR(NVL(a.bytes / 1024 / 1024, 0),'99,999,990.900') "Size (M)", 

 TO_CHAR(NVL(a.bytes - NVL(f.bytes, 0), 0)/1024/1024,'99999999.999') ||'/'||TO_CHAR(NVL(a.bytes/1024/1024, 0), '99999999.999') "Used (M)", 

 TO_CHAR(NVL((a.bytes - NVL(f.bytes, 0)) / a.bytes * 100, 0), '990.00') "Used %" 

 FROM sys.dba_tablespaces d, (select tablespace_name, sum(bytes) bytes from dba_data_files group by tablespace_name) a, 

 (select tablespace_name, sum(bytes) bytes from dba_free_space group by tablespace_name) f 

 WHERE d.tablespace_name = a.tablespace_name(+) AND d.tablespace_name = f.tablespace_name(+) 

 AND NOT (d.extent_management like 'LOCAL' AND d.contents like 'TEMPORARY') 

 UNION ALL 

 SELECT d.status "Status", d.tablespace_name "Name", d.contents "Type", d.extent_management "Extent Management", 

 TO_CHAR(NVL(a.bytes / 1024 / 1024, 0),'99,999,990.900') "Size (M)", 

 TO_CHAR(NVL(t.bytes, 0)/1024/1024,'99999999.999') ||'/'||TO_CHAR(NVL(a.bytes/1024/1024, 0),'99999999.999') "Used (M)", 

 TO_CHAR(NVL(t.bytes / a.bytes * 100, 0), '990.00') "Used %" FROM sys.dba_tablespaces d, 

 (select tablespace_name, sum(bytes) bytes from dba_temp_files group by tablespace_name) a, 

 (select tablespace_name, sum(bytes_cached) bytes from v$temp_extent_pool group by tablespace_name) t 

 WHERE d.tablespace_name = a.tablespace_name(+) AND d.tablespace_name = t.tablespace_name(+) 

 AND d.extent_management like 'LOCAL' AND d.contents like 'TEMPORARY';

+ Recent posts