http://303-D01:1158/em
http://303-D01:5560/isqlplus
http://303-D01:5560/isqlplus/dba
이때에 303-D01은 컴퓨터이름이며 localhost또는 IP로 바꾸어 쓸 수 있다.
또한 오라클을 여러 버전 설치한 경우는 포트번호가 다를 수 도 있다.


http://303-D01:1158/em
http://303-D01:5560/isqlplus
http://303-D01:5560/isqlplus/dba
이때에 303-D01은 컴퓨터이름이며 localhost또는 IP로 바꾸어 쓸 수 있다.
또한 오라클을 여러 버전 설치한 경우는 포트번호가 다를 수 도 있다.
| ☞ Sequenc 생성 | ||
| ● 자동적으로 순차적인 숫자를 생성하기 위해 Sequenc를 정의한다. | ||
|
| ♣ Sequenc 생성 | |
|
|
| ♣ Sequence 생성 : 예 | |
| ♠ 질의 예제 : s_dept 테이블의 dept_id column 에 사용할 sequence인 s_dept_id를 만들라. sequence는 51에서 시작 한다. 캐쉬와 cycle을 하지 않게 하라.
※Sequence가 Primary Key값을 생성한다면 CYCLE 옵션을 쓰지 말라. |
| ☞ Sequence 확인 |
| ● Sequence를 생성하면 data dictionary에 기록된다. ● Sequence가 데이터베이스 객체이므로 USER_OBJECTS dictionary에서 볼 수 있다. ● 데이터 사전의 USER_SEQUENCES 테이블을 참조하면 설정된 사항을 확인할 수 있다. |
| ♠ 질의 예제 : 자신이 소유한 모든 Sequence 정보를 출력하라. | |
|
|
|
|
|
| ▶ LAST_NUMBER column은 사용가능한 다음 순서 번호를 출력합니다. |
| ☞ Sequence 이용 |
| ● 시퀀스를 만들면 테이블에서 사용할 순차적인 번호를 생성하기 위해 시퀀스를 이용할 수 있다. ● NEXTVAL과 CURRVAL Pseudocolumn을 써서 Sequence 값을 참조하라. |
♠ 질의 예제 : 지역2에 "Finance"라는 입력을 삽입하라.
| SQL>INSERT INTO s_dept(id, name, region_id) 2 VALUES (s_dept_id, NEXTVAL, 'Finance', 2): 1 row selected. |
♠ 질의 예제 : S_DEPT_ID Sequence에 대한 현재 값을 보라.
| SQL>SELECT s_dept_id,CURRVAL 2 FROM SYS,dual; |
| ☞ NEXTVAL과 CURRVAL Pseudocolumn |
| ● NEXTVAL은 사용 가능한 다음 시퀀스값을 반환한다. - 매번 고유한 값을 반환한다. ● CURRVAL은 현재 시퀀스값을 구한다. -CURRVAL은 NEXTVAL사용 후에 사용되어야 한다. ● 사용규칙을 따르라. |
| ♣ NEXTVAL과 CURRVAL 의사 Pseudocolumn | |
|
| ♣ NEXTVAL과 CURRVAL 사용규칙 |
▶ 다음에서 NEXTVAL과 CURRVAL을 사용할 수 있다.
- INSERT 문의 Subquery SELECT List - INSERT 문의 VALUE 절 - UPDATE 문의 SET 절 |
▶다음에서 NEXTVAL과 CURRVAL을 사용할 수 없다.
- DISTINCT 키워드가 있는 SELECT 문 - GROUP BY, HAVING, 또는 ORDER BY 절이 있는 SELECT 문 - SELECT, DELETE, 또는 UPDATE 문의 Subquery - CREATE TABLE 또는 ALTER TABLE 명령의 DEFAULT 값 |
| ※자세한 설명은 Oracle7 Server SQL Reference, Release 7.2, "Pseudocolumn" 절과 "CREATE SEQUENCE"을 보라 |
| ♣ Sequence 값의 캐슁 | |
|
| ♣ 증가 없이 다음 시퀀스 값 보기 | |
|
| ☞ Sequence 변경 |
| ●증가값, 최대 값, 최소 값, 순환옵션, 캐쉬 옵션을 변경한다. ●Sequence에 대한 MAXVALUE 한계에 도달하면 Sequence에 대한 추가적인 값이 할당되지 않게 되고 Sequence가 MAXVALUE를 넘었음을 알리는 오류 메시지를 받게 됩니다. 이때Sequence를 계속 사용하려면 ALTER SEQUENCE 명령을 써서 수정할 수 있다. |
| ♣ Syntax | ||
|
| ♣ Guidelines |
| ▶자신의 Sequence이거나 Sequence에 대한 ALTER 권한을 가져야만 Sequence를 수정할 수 있다. ▶아직 생성되지 않은 시퀀스값만이 ALTER SEQUENCE명령에 영향받는다. ▶유효성 검사를 하게 된다. 예를 들어 새로운 MAXVALUE는 현재의 순서 번호보다 작지 않아야 한다. ▶START WITH 옵션은 ALTER SEQUENCE를 써서 변경할 수 없다. 다른 번호에서 다시 시작하려면 이전 시퀀스를 삭제하고 다시 생성해야 한다. |
※자세한 설명은 Oracle7 Server SQL Reference, Release 7.2 "ALTER SEQUENCE"을 보라.
| ☞ Sequence 삭제 | |
| ● DROP SEQUENCE명령을 사용하여 Sequence를 삭제한다. ● Sequence가 삭제되면 더 이상 참조할 수 없다. ● Sequence를 제거할 DROP ANY SEQUENCE 권한을 가지고 있거나 그 시퀀스의 소유자이어야 한다. |
|
|
| ♣ Syntax | ||
|
||
| ※자세한 설명은 Oracle7 Server SQL Reference, Release 7.2 "DROP SEQUENCE"를 보라. |
| ☞ sequence 요약 |
| ● Sequence 사용하여 테이블의 행에 대한 primary key 값을 자동으로 생성한다. ● 데이타베이스 객체인 Sequence를 다른 사용자들과 공유할 수도 있다. ● USER_SEQUENCES 테이블에 있는 정보를 참조할 수 있다. ● Sequence.NEXTVAL을 이용하여 다음 값을 Return 받는다. ● Sequence.CURRVAL을 이용하여 NEXTVAL 에 의해 Return된 마지막 값을 확인할 수 있다. |
create table board(
num number not null primary key,
subject varchar2(50) not null
);
create sequence board_seq minvalue 1 maxvalue 99999999999999999999999 increment by 1 start with 1 cache 20 noorder nocycle;
commit;
//트리거생성 및 수정 =>주의사항: eclipse와 isqlplus에서는 dual다음의 ;(새미콜론)으로 인해서 오류와 함께 트리거가 생성된다. 관리자(/em/console) 창으로 가서 ;(새미콜론)을 붙이고 컴파일을 다시하면 트리거가 정상 동작한다.
create or replace trigger bi_board
before insert on board
for each row
begin
select board_seq.nextval into :new.num from dual;
end;
commit;
alter trigger bi_board enable;
select * from user_sequences;
select * from user_triggers;
select board_seq.nextval from dual;
select board_seq.currval from dual;
drop triger bi_board;
drop sequence board_seq;
참고 사이트 : http://www.acs.ilstu.edu/docs/Oracle/server.101/b10759/statements_7004.htm
# 때로 1521번이 아닌 리스너에 DB Control이 등록되어 있는 경우가 있다.
# 이럴 때는 다음처럼 기존 설정을 제거하고 다시 설정하면서 리스너의
# 포트를 1521로 구성하면 된다. => 10gR2에서...
OS] emca -deconfig dbcontrol db
OS] emca -config dbcontrol db
다음 정보 입력:
데이터베이스 SID: orcl
리스너 포트 번호: 1521
SYS 사용자 암호: 암호
DBSNMP 사용자 암호: 암호
SYSMAN 사용자 암호: 암호
통지를 위한 전자 메일 주소 (선택 사항):
통지를 위한 송신 메일(SMTP) 서버 (선택 사항):
-----------------------------------------------------------------
다음 설정을 지정했습니다.
데이터베이스 ORACLE_HOME ................ C:\oracle\product\10.2.0\db_1
데이터베이스 호스트 이름 ................ CCI
리스너 포트 번호 ................ 1521
데이터베이스 SID ................ orcl
통지를 위한 전자 메일 주소 ...............
통지를 위한 송신 메일(SMTP) 서버 ...............
-----------------------------------------------------------------
계속하겠습니까? [예(Y)/아니오(N)]: y
...생략...
데이터베이스 컨트롤 URL이 http://hostname:1158/em입니다.
Enterprise Manager 구성이 성공적으로 완료되었습니다.
[출처] 1521번이 아닌 리스너에 DB Control을 재등록하려면...|작성자 그와함께
1. 오라클 권한으로 변경
connect / as sysdba;
2. 테이블 스페이스 조사
select tablespace_name, bytes, file_name from dba_temp_files;
3. 데이타와 인덱스 파일을 만든다.
create tablespace INDX_01 datafile '/oracledata/indx_01.dbf' size 800M default storage(initial 3M next 2M pctincrease 0);
create tablespace DATA_01 datafile '/oracledata/data_01.dbf' size 500M default storage(initial 5M next 3M pctincrease 0);
http://sailerya.byus.net/howto/%C5%D7%C0%CC%BA%ED%BD%BA%C6%E4%C0%CC%BD%BA.htm
참고) 아이디 생성 및 권한주기
create user 아이디
identified by 비번
default tablespace 테이블스페이스 이름;
grant connect,resource,dba to 아이디;
테이블 스페이스 생성
CREATE tablespace TS_USER1
DATAFILE '/oracle/oradata/test/TS_TESTDS.dbf' SIZE 50M
AUTOEXTEND ON
NEXT 1M
MAXSIZE 100M
;
임시 테이블 스페이스 생성
// 인덱싱이나 클러스터링 등 부수적인 작업을 위해서 사용된다.
CREATE temporary tablespace TS_USER1_TEMP
TEMPFILE '/oracle/oradata/test/TS_USER1_TEMP.dbf' size 100M
EXTENT management local uniform size 128k
;
//사용자 계정 생성
//계정명은 user1이고 테이블 스페이스는 TS_USER1을 사용하며
//임시 테이블 스페이스는 TS_USER1_TEMP를 사용한다.
CREATE USER user1 IDENTIFIED BY passwduser1
DEFAULT TABLESPACE TS_USER1
TEMPORARY TABLESPACE TS_USER1_TEMP
;
//권한 지정
Grant connect, resource to USER1 ;
grant create table to 유저아이디;
grant create session to ID;
grant create sequence to id
grant dba to USER1;
//사용자 삭제
drop user USER1 cascade;
출처 : http://blog.naver.com/stayintune?Redirect=Log&logNo=80015677337