본문 바로가기

Oracle/운영133

컬럼사이즈 변경 및 데이터타입 변경 테이블의 컬럼사이즈를 변경해달라는 요청이 가끔 있는데요, (저도 지원은 해주지만 까먹기 때문에...) 블로그에 기록차 적어놓고 한번더 정리하는 글을 남기려고 합니다. 컬럼사이즈변경 명령어 alter table [테이블명] modify ([컬럼명] [데이터타입]) 특징 - 컬럼사이즈 늘리는것은 바로 적용할 수 있습니다. (ex varchar2(20) -> varchar2(100)) - 컬럼사이즈를 줄이는것은 아래와 같은 제약사항이 있습니다. 변경을 하려는 컬럼에 값에 변경하려는 컬럼보다 큰 값이 들어가 있으면 안됩니다. 그렇지 않으면 ORA 에러가 발생합니다. ORA-01440: column to be modified must be empty to decrease precision or scale 컬럼사이.. 2020. 8. 25.
Restricted Session 제한된 모드라고도 불리는 Restricted Session은 Restriced Session 권한이 없는 다른 유저의 접속을 제한하여, 데이터베이스 관리자가 작업을 용이하게 할 수 있게 해주는 DDL 명령어입니다. 사용방법은 startup 시 startup restrict 명령어로 시작하는 방법과 Open된 상태에서 alter system enable restricted session 명령어로 변경하는 방법 두가지가 있습니다. 확인은 v$instance 뷰의 logins컬럼으로 확인이 가능합니다. ALLOWED는 일반적인 상태이고 RESTRICTED는 제한된 모드입니다. 1.startup 시 SYS@ysbae> startup restrict ORACLE instance started. Total Syst.. 2020. 8. 22.
Offset , Limit (페이징 처리) 12c 이전의 Oracle은 Top-N쿼리를 구현하기 위해 ROWNUM을 사용해 왔습니다. 하지만 이는 쿼리를 View로 감싸야 하고 순서보장을 원한시에는 한번더 View로 감싸 쿼리가 복잡해지는 단점이 있었습니다. Oracle 12c부터 Row limiting 절을 이용하여 기존에 사용하던 방식을 간단하게 풀어 Top-N 쿼리를 구현할 수 있게 되었습니다. 구문의 이해 [ OFFSET offset { ROW | ROWS } ] [ FETCH { FIRST | NEXT } [ { rowcount | percent PERCENT } ] { ROW | ROWS } { ONLY | WITH TIES } ] OFFSET 건너뛸 행의 수를 지정, 즉 시작 행을 정함. 생략 시 offset 값은 0 FETCH 반환.. 2020. 8. 19.
Shared lock과 Execlusive lock Lock? 같은 데이터를 동시에 접근해서 조회 및 수정을 해야하는 DB환경에서 일관성과 무결성 유지를 위해서는 트랜잭션의 순차적 진행을 보장할 수 있는 직렬화(Serialization)장치가 필요하게 됩니다. 즉, 같은 데이터를 동시에 접근했을 때 한명만 사용할 수 있게 해야한다는 것입니다. 그때 다른 사용자는 해당 데이터에 lock이 걸린 상태로 대기해야 합니다. Shared Lock? 데이터를 읽고자 할 때 사용됩니다. Read lock이라고도 불리며 어떤 트랜잭션에서 데이터를 읽고자 할 때 다른 Shared lock은 허용이 되지만 Execlusice lock은 불가능합니다. 리소스를 다른 사용자가 동시에 읽을 수 있게 하되 변경은 불가능하게 됩니다. 즉, 어떤 사용자가 읽고 있는 레코드 혹은 테이.. 2020. 8. 17.