'DataBase/Oracle'에 해당되는 글 8건
- 2011.06.02 테이블 조회 및 특정 테이블의 컬럼 및 속성 조회 하는 방법
- 2011.03.22 방금전에 실행한 쿼리 확인하기 쿼리 입니다.
- 2011.03.21 오라클 케릭터셋 확인하는 쿼리
- 2008.08.14 TRIGGER를 해봅시다.
- 2008.08.06 오라클 컬럼 조작 하기
- 2008.07.31 [DDL] SEQUENCE 사용하기 (숫자 자동 1씩증가 PRIMARY KEY 활용)
- 2008.06.17 ORA-01653 Error 가 발생을 하여 당황해 하다;; 2
- 2008.05.22 신규 오라클 사용자에게 Table 권한 주기
우선 Trigger을 하계된 계기는 Hynix에서 MDM 장비 통합 작업을 하는데 해당 MDM에서 우리쪽 DB로 데이터를
Insert 혹은 Update를 할 경우 우리쪽 관련 Table의 정보역시 변경혹은 삽입을 해야 할 경우가 발생하여
알게 되었다.
1. 우선 두개의 Table을 만들어 봅시다.
====================================
CREATE TABLE SW_TEST
(
OK VARCHAR2(10)
)
CREATE TABLE SW_TEST2
(
OK VARCHAR2(10)
)
====================================
2. Trigger를 만들어 봅시다.
====================================
CREATE OR REPLACE TRIGGER TEST_TRIGGER -- 트리거를 만들고 이름은 TEST_TRIGGER
AFTER INSERT OR UPDATE -- INSERT 또는 UPDATE할때 EVENT 발생
ON SEWOO.S_TEST
REFERENCING NEW AS NEW OLD AS OLD -- :NEW. :OLD. <-- 이거 이름 설정할때..
FOR EACH ROW -- 각각의 행에 대해 실행 한다.
DECLARE -- 요고 위쪽에 변수 선언 가능 : EX) OK NUMBER;
BEGIN -- 요고 와 END 사이에 PLSQL 작성
INSERT INTO S_TEST2 (OK) VALUES (:NEW.OK);
END TEST_TRIGGER;
/
====================================
3. 실행해 봅시다.
INSERT INTO S_TEST (OK) VALUES ('ABC')
4. 확인해 봅시다.
SELECT * FROM S_TEST
ABC <-- 나온다 ㅎㅎ
짝짝짝 끝이에요;
1. 해당 컬럼의 속성 변경 하기
ALTER TABLE midas_usemanagement MODIFY (ITEM01 VARCHAR2(40));
2. 해당 컬럼의 이름 변경하기
ALTER TABLE midas_usemanagement RENAME COLUMN ITEM01 TO IPADDR
3. 신규 컬럼 추가 하기
ALTER TABLE midas_equipment ADD MASTER_KEY VARCHAR(10);
4. 컬럼 삭제 하기
ALTER TABLE midas_equipment DROP COLUMN MASTER_KEY
5. 기본키 추가 하기
ALTER TABLE midas_equipment add constraint pk_midas_equipment primary key (컬럼1, 컬럼2,...);
게시판에서 글이 등록되면 자동으로 그 글에 대한 번호를 1번 2번 식으로 순서가 매겨지면서 등록이 되도록
하게 할려고 확인하다가 오라클에서는 SEQUENCE를 사용하는 방법이 있다는것을 확인 할 수 있었다.
[예제]
1. 시퀀스 생성
create sequence sw_num
increment by 1 -- 1씩 증가하라는거고요
start with 1 -- 1부터 시작이고요 100 시작할려면 100 이라고 쓰시면 됩니다.
nomaxvalue -- 최대값 제한이 없다
nocycle
nocache;
2. 실지 활용 예제
Insert into SW_Board (number, username) values (sw_num.nextval, '박세우')
3. 좀더 상세한 정보 오라클클럽 출처 ^^/
| |||||
우선 저런 에러가 발생하고 테이블 스페이스 확장이 안된다!! 라고 나에게 외치고 있다.
알았어.. 그럼 테이블 스페이스 확장 할 수 있도록 내가 할게 ㅎㅎ;
어떻게 해야할까?;;
곰곰이 생각을 하다가 네이버 검색을 하였다..
//테이블 명과 대비하여 테이블 스페이스 명을 보는거 같다. 아무튼 테이블 정보 본다.
select * from user_tables;
select e.tablespace_name,e.file_name,e.bytes, (e.bytes-sum(f.bytes)) result
from dba_data_files e, dba_free_space f
where e.file_id = f.file_id
group by e.tablespace_name, e.file_name, e.bytes;
select * from dba_tablespaces
alter database datafile '/data1/oradata/MI/mi_data03.dbf' resize 4000M;
위의 내용은 테이블 스페이스 크기를 늘리는 거다 ㅎㅎ
alter tablespace MI_DATA ADD DATAFILE '/data1/oradata/MI/mi_data04.dbf' SIZE 300M
이거는 새로 생성 하는거 ^^;
ALTER DATABASE DATAFILE '/data1/oradata/MI/mi_data04.dbf' RESIZE 3000m
------------- 추가 정보 --------------
[테이블스페이스 현황 확인]
SELECT d.tablespace_name , d.bytes "Total(M)" , f.bytes "Free(M)" , e.bytes "Max Extent(M)" , Round(f.bytes/d.bytes*100,0) "Free %"
FROM ( SELECT tablespace_name , sum(bytes)/1024/1024 as bytes
FROM dba_data_files
GROUP BY tablespace_name ) d ,
( SELECT tablespace_name , sum(bytes)/1024/1024 as bytes
FROM dba_free_space
GROUP BY tablespace_name ) f ,
( SELECT tablespace_name , max(bytes)/1024/1024 as bytes
FROM dba_free_space
GROUP BY tablespace_name ) e
WHERE d.tablespace_name = f.tablespace_name (+)
AND f.tablespace_name = e.tablespace_name;
[특정 테이블스페이스의 데이터파일 확인]
select tablespace_name, file_name, bytes/1024/1024 from dba_data_files
where tablespace_name='테이블스페이스명';
select * from dba_temp_files;
select tablespace_name, file_name, bytes/1024/1024 from dba_temp_files;
[테이블스페이스 생성]
create tablespace 새롭게 생성할 이블스페이스명 datafile '/..데이터파일 위치../데이터파일명.dbf' size 1024m online;
[데이터파일 추가]
alter tablespace 테이블스페이스명 add datafile '/..데이터파일 위치../데이터파일명.dbf' size 1024m;
[데이터파일 resizing]
alter database datafile '/../변경할파일명.dbf' resize 2048m;
alter database tempfile '/../변경할파일명.dbf' resize 1024m;
[데이터파일의 자동확장]
alter database datafile '/..데이터파일 위치../데이터파일명.dbf' autoextend on; (비권장)
▣ AUTOEXTEND 확인
select tablespace_name, file_name, AUTOEXTENSIBLE from dba_data_files;
▣ AUTOEXTEND 의 OFF
SQL> ALTER DATABASE DATAFILE ‘C:\ORACLE\ORADATA\app_data02.dbf'
AUTOEXTEND OFF;
▣ AUTOEXTEND 사용 예제
SQL> ALTER TABLESPACE storm
ADD DATAFILE 'C:\ORACLE\ORADATA\app_data02.dbf' SIZE 200M
AUTOEXTEND ON NEXT 10M
MAXSIZE 500M;
<출처: http://cafe.naver.com/metanetbts/23 >