목록DB (15)
말랑말랑제리스타일
요즘 회사에서 테스트 DB와 운영 DB간 사이즈를 마이그레이션 하면서 유용하게 쓰고있는 오라클 테이블의 Column Size 변경 쿼리입니다 ALTER 테이블 구문이 자주 쓰는게 아니다 보니까 한번씩 찾아보게 되는데요 다음에 또 테이블 Column Size 변경할일 있을때 찾아볼려고 제가 쓰려고 올리는 가장 간단한 쿼리문입니다 ALTER TABLE 테이블 명 MODIFY (컬럼명 컬럼타입(사이즈)); 이렇게 사용 가능하고 예시로는 ALTER TABLE TABLE1 MODIFY (COL1 VARCHAR2(5)); 이렇게 되겠죠 테이블 Column의 Size를 바꾸고 나서는 가능하면 테이블 연관된 Index도 다시한번 체크해보시길 권장합니다
Oracle에는 신기한 기능들이 많습니다 그게 Oracle이 바로 업계 1위의 자리를 유지하는 원동력이죠 기본적으로 Drop한 테이블은 Drop이 DDL이라 Auto Commit에다 복구가 불가능한데요 얼마전 테이블 작업을 하다가 테이블을 날려먹었습니다... 기어이 사고를... 쳤다고 생각한 순간 Flashback이 떠올랐고 쥐도새도 모르게 제가 Drop한 테이블을 복구했죠 물론 삭제와 생성을 반복한 경우 복구가 어려운데요 그렇지 않고 Drop한 이후 어??!!!하는 순간에는 간편하게 Oracle의 Flashback 기능으로 복구가 가능합니다 만약 Drop만 진행했다면 FLASHBACK TABLE 삭제한테이블명 TO BEFORE DROP; 구문으로 원래 테이블 명으로 복구가 가능하고 만약 같은 이름으로 ..
오라클 테이블을 수정하거나 프로시저를 깨진 채로 저장한 경우 컴파일이 안된채로 깨져있는데요 이런 경우 토드나 오라클 DB 툴을 이용하면 볼수는 있는데 간혹 다수로 리스트 쫙 뽑아서 보고싶을때나 다른 테이블이랑 엮어서 보고싶을때 조회 쿼리를 이용해서 깨진 프로시저를 한번에 볼 수 있습니다 SELECT * FROM ALL_OBJECTS WHERE OWNER = '유저명' AND STATUS = 'INVALID' 바로 이 ALL_OBJECT 테이블에서 STATUS를 INVALID로 놓고 조회하면 깨진 프로시저, 펑션 등이 쫙 나오는데 DBA 권한이 있어야 조회 가능한 테이블이고 전 유저에 대해 조회하기 때문에 유저명을 OWNER에 넣고 조회해야 퍼포먼스가 나올 수 있다는 점을 참고해서 쓰시길 바랍니다 깨진 프..
오라클 DB를 사용하다보면 테이블 크기가 커지고 속도가 느려질때를 체감하게 되는데 이때 오라클 DB에서 사용할 수 있는 테이블 크기를 확인 가능한 쿼리를 알려드리려고 합니다 참고로 DBA 테이블이라 권한이 충분하지 않다면 확인이 불가능할 수 있지만 따로 권한을 분류하지 않은 DB나 개인 목적의 DB인 경우 아래 쿼리로 테이블의 크기를 확인할 수 있습니다 SELECT OWNER, SEGMENT_NAME, BYTES FROM DBA_SEGMENTS WHERE SEGMENT_TYPE='TABLE' ORDER BY 3 DESC; 위에서 활용한 DBA_SEGMENTS 테이블에는 테이블 뿐만 아니라 INDEX, CLUSTER 등의 정보도 나와있기 때문에 TABLE로 SEGMENT_TYPE을 걸어주고 OWNER는 D..
Insert 구문은 Delete, Update와 함께 SQL의 대표적인 DML문이죠 Oracle DB 사용중 테이블을 새로 만들거나 마이그레이션을 하는 경우 등 다양한 상황에서 Select 한 내용을 Insert 하게 되는 상황이 꽤 많은데요 이 상황에서 사용 가능한 구문이 Insert Select 구문이고 사용법은 간단합니다 테이블1이 데이터가 Insert 될 테이블, 테이블2가 데이터를 Select 할 테이블이라고 하면 Insert Into 테이블1 Select * from 테이블2 로 사용할 수 있고 만약 테이블 2의 데이터가 테이블 1의 데이터 개수와 일치하지 않을 경우 Insert into 테이블1 Select Insert Into 테이블1 Select Col1,Col2...ColN from 테..
SELECT * FROM USER_SOURCE WHERE TEXT LIKE '%TAB명%'; Oracle에서 어떤 테이블이 다른 프로시저에서 사용되는지 어떤 프로시저에서 테이블이 업데이트되고 사용되는지 확인할때 사용 가능한 쿼리입니다 USER_SOURCE 테이블에 프로시저를 포함한 프로시저, 패키지, 펑션 등의 PL/SQL 정보가 들어있고 이 테이블을 조회하는 방식입니다 테이블 뿐만 아니라 프로시저에 어떤 문구가 포함된건지도 전부 찾을 수 있기 때문에 유용하다고 할 수 있고 테이블 내용을 수정할때 참고하면 좋겠죠 여기서 NAME 컬럼에는 프로시저 명, TYPE에는 프로시저인지 패키지인지 등 타입, LINE에는 해당되는 라인 TEXT는 실제 테이블 명칭이 사용된 라인 등이 출력됩니다 만약 프로시저 명으로만..
오라클에서 가장 자주 사용하는 함수로 TO_CHAR 함수가 있죠 날짜 또는 숫자를 문자 형태로 바꿔주는 함수인데요 이 오라클 날짜함수는 두개의 매개변수를 이용합니다 TO_CHAR(날짜데이터, 포맷) 이런 방식으로 사용하는데 이중 요일을 구하는 포맷은 총 세가지가 있고 날짜와 요일을 동시에 보여주는 기본 포맷이 한가지 있습니다 'D' : 일요일~토요일을 숫자 형태로 보여주는 포맷 (일요일 : 1, 월요일 : 2, 화요일 :3 ... 토요일 : 7) 'DY' : 요일을 요약해서 보여주는 포맷 (오라클 언어 설정에 따라 '월','화',수'...'토','일' 또는 'MON','TUE'...'SAT','SUN') 'DAY' : 요일 풀네임 (오라클 언어 설정이 한글이면 '월요일','화요일'...'토요일','일요일..