실수로 디비컬럼을 다른 값으로 업데이트하고 커밋을 처리했을경우 어떻게 처리하고 계시나요? 다행히 백업 테이블이 남아있어서 백업 테이블기준으로 데이터를 업데이트해야할 경우 아래와 같이 사용하시면 됩니다. 오라클에서 참조되는 테이블 대상으로 쿼리를 업데이트할경우에는 아래와 같이 사용해주세요. UPDATE 업데이트대상테이블 a SET 업데이트할 값 = (SELECT 업데이트참조 값 FROM 참조될테이블 b WHERE A.기준값 = b.기준값 ) WHERE a.기준값 IN (SELECT A.기준값 FROM 참조될 테이블 ) 업데이트참조 값은 다른 테이블에 있는 업데이트 대상 값입니다.
오라클을 D:에 설치한뒤 컴퓨터를 포맷하거나 기존의 환경을 그래도 압축해서 다른 컴퓨터로 가져올경우에 아래와 같이 설정을 하면 오라클을 재설치 할 필요없이 기존의 쓰던 오라클을 사용하실 수 있습니다. 오라클 인스턴스와 마찬가지로 환경변수를 설정한 후 사용하시면 됩니다. 컴퓨터 - 시스템속성 - 고급 - 환경변수 에 들어가주세요. 시스템변수 - 새로만들기 버튼을 클릭 후 변수이름을 추가해주셔야 됩니다. 변수이름 변수값 ORACLE_HOME D:\source\oracle\product\11.2.0\client_1 TNS_ADMIN D:\source\oracle\product\11.2.0\client_1\network\admin 변수의 경로는 오라클이 존재하는 위치로 맞춰주시기 바랍니다.
시스템 모니터링하다 데이터가 중복으로 들어오는 걸 발견했습니다. 테이블에 데이터가 중복으로 수천건이 들어오고 있어서 계속 쌓이기전에 빨리 처리하면서 처리한 방법을 팁으로 남겨봅니다. 일단 아래 테이블 양식을 살펴주세요. 제가 사용한 테이블은 시간당 자료를 입력을 받는 테이블이었는데 연계된 하드웨어 특성상 사용자의 의도된 중복된 자료도 넘어올 수 있기에 고유키나 유니크로 설계가 되어 있지 않았습니다. 설계부터가 좀 잘못되어 있었는데 그냥 고칠 수도 없고 중복된 자료나 정리해야죠.. 일반적으로 테이블에 넘어오는 데이터 양식은 아래와 같습니다. TEST 테이블형식예제) SEQ PJCD HOUR MINUTE SECOND CONTENT 1 PJCD001 08 10 15 기록1 2 PJCD002 09 12 07 기..
테이블을 생성하고 테스트를 할 경우가 생겨서 자료를 밀어넣다보니 넘버링을 할 필요가 생겼습니다. 데이터값은 아래와 같은 형식이었구요. SEQ PJT_CD PJT_NM VALUE P0001 테스트1 10 P0002 테스트2 20 P0003 테스트3 30 P0004 테스트4 40 P0005 테스트5 50 다른 테이블에 있는 데이터를 밀어넣다보니 시컨스를 따로 잡을 필요가 생기더군요. 약간의 삽질을 좀 했습니다. 간단한 방법을 두고 다른 방법을 찾다보니 잔머리만 늘어나네요. 다른테이블의 값을 셀렉트해서 인서트 하려다보니 넘버링을 제대로 하기가 힘들어서 셀렉트할때 지속적으로 증가되는 값을 넣어보려고 다른 방법을 찾아보려 하였습니다. 우선, SEQ 컬럼이 varchar2 형식이라 MAX값이 제대로 표기가 되지 않..