1) SSH 설치 여부 확인 및 설치
패키지 설치 여부 확인
$ dpkg -l | grep ssh
만약 openssh-server항목이 없다면 미 설치이므로
sudo apt-get install openssh-server
SSH 프로세스 시작
sudo /etc/init.d/ssh start
2) 오라클 접속
su - oracle
lsnrctl start
sqlplus 계정/패스워드 as sysdba
startup
2. 오라클 사용자 생성 및 권한주기
1) 계정의 테이블 스페이스 생성
create tablespace [tablespace_name] datafile '/home/oracle/oradata/DANBEE/[file_name].dbf' size 500m;
예)
CREATE TABLESPACE ADMIN DATAFILE 'D:\ORACLE\ORADATA\XE\ADMIN.dbf' SIZE 500M ; 2) 오라클 유저 만들기
CREATE USER [user_name] IDENTIFIED BY [password] DEFAULT TABLESPACE [tablespace_name]
TEMPORARY TABLESPACE TEMP;
예)
CREATE USER nextree IDENTIFIED BY nextree DEFAULT TABLESPACE NEXTREE TEMPORARY TABLESPACE TEMP;
3) 생성한 USER에 권한주기
GRANT connect, resource, dba TO [user_name];
예)
grant connect, dba, resource to 유저명; (모든 권한 주기)
GRANT CREATE SESSION TO 유저명 // 데이터베이스에 접근할 수 있는 권한
GRANT CREATE DATABASE LINK TO 유저명
GRANT CREATE MATERIALIZED VIEW TO 유저명
GRANT CREATE PROCEDURE TO 유저명
GRANT CREATE PUBLIC SYNONYM TO 유저명
GRANT CREATE ROLE TO 유저명
GRANT CREATE SEQUENCE TO 유저명
GRANT CREATE SYNONYM TO 유저명
GRANT CREATE TABLE TO 유저명 // 테이블을 생성할 수 있는 권한
GRANT DROP ANY TABLE TO 유저명 // 테이블을 제거할 수 있는 권한
GRANT CREATE TRIGGER TO 유저명
GRANT CREATE TYPE TO 유저명
GRANT CREATE VIEW TO 유저명
GRANT CREATE SESSION, CREATE TABLE, CREATE SEQUENCE, CREATE VIEW TO 유저명;
4) 생성한 USER로 ORACLE에 접속하기
sqlplus nextree/nextree[@db_sid]
5) 계정 삭제하기
drop user 사용자계정 cascade;
sqlplus nextree/nextree[@db_sid]
5) 계정 삭제하기
drop user 사용자계정 cascade;
-- 테이블 스페이스 크기 확장해주는 쿼리문
alter database
datafile 'D:\oracle\oradata\XE\ADMIN.DBF' resize 900M;
--테이블 스페이스 정보 보는 쿼리문
SELECT file_name, tablespace_name, bytes, status FROM DBA_DATA_FILES;
--테이블 명시적 인덱스 생성
--1번째 방법
CREATE INDEX MSID_IDX1 ON TEST(MSID)
--2번째 방법
create index test1_test on test1(test)
tablespace users
storage
(
initial 10k
next 10k
pctincrease 0)
pctfree 10
--테이블 정보 보는 쿼리
select * from user_constraints-- where table_name = upper('test1');
--ORA-00054: 자원이 사용중이고, NOWAIT가 지정되어 있습니다 해결 방법
select a.sid, a.serial#
from v$session a, v$lock b, dba_objects c
where a.sid=b.sid and
b.id1=c.object_id and
b.type='TM' and
c.object_name='CAR_INFO';
alter system kill session '12, 27846';
-- CAR_INFO에는 있는 값을 DASH_BOARD에 넣기
INSERT INTO DASH_BOARD(CAR_LICEN_NUM)
SELECT CAR_LICEN_NUM FROM CAR_INFO
MINUS
SELECT CAR_LICEN_NUM FROM DASH_BOARD
SYSTEM 계정 패스워드 변경하기
사용자계정 : /as sysdba
alter user system identified by "암호";
일반 스트링은 관계없지만 특수문자가 있을경우 반드시 "" 따옴표로 감싸준다.
alter database
datafile 'D:\oracle\oradata\XE\ADMIN.DBF' resize 900M;
--테이블 스페이스 정보 보는 쿼리문
SELECT file_name, tablespace_name, bytes, status FROM DBA_DATA_FILES;
--테이블 명시적 인덱스 생성
--1번째 방법
CREATE INDEX MSID_IDX1 ON TEST(MSID)
--2번째 방법
create index test1_test on test1(test)
tablespace users
storage
(
initial 10k
next 10k
pctincrease 0)
pctfree 10
--테이블 정보 보는 쿼리
select * from user_constraints-- where table_name = upper('test1');
--ORA-00054: 자원이 사용중이고, NOWAIT가 지정되어 있습니다 해결 방법
select a.sid, a.serial#
from v$session a, v$lock b, dba_objects c
where a.sid=b.sid and
b.id1=c.object_id and
b.type='TM' and
c.object_name='CAR_INFO';
alter system kill session '12, 27846';
-- CAR_INFO에는 있는 값을 DASH_BOARD에 넣기
INSERT INTO DASH_BOARD(CAR_LICEN_NUM)
SELECT CAR_LICEN_NUM FROM CAR_INFO
MINUS
SELECT CAR_LICEN_NUM FROM DASH_BOARD
SYSTEM 계정 패스워드 변경하기
사용자계정 : /as sysdba
alter user system identified by "암호";
일반 스트링은 관계없지만 특수문자가 있을경우 반드시 "" 따옴표로 감싸준다.
오라클 사용자 생성 및 권한 관련 출처 : http://fordev.tistory.com/23
3. 오라클 테이블 생성
1) create table
create table [table_name](column1 datatype, column2 datatype, column3 datatype, column4 datatype);
create table [table_name](column1 datatype check(column1<10));
create table [table_name](column1 datatype, constraint pk_[table_name] primary key(column1));
예)
create table userinfo(idx number check(idx>0 and idx<4), id varchar2(10) not null, pass varchar2(20) not null, name varchar2(10) not null, constraint pk_userinfo primary key(id));
2) Oracle Data Type
Character Data Type
Type
|
Description
|
Char
|
고정된 길이의 문자형 데이터 타입으로 테이블의 타입 선언 시 “Char”형으로 선언을 합니다. 또한 1-2000byte사이의 내용을 저장 할 수 있습니다.
|
Varchar
Varchar2
|
Varchar2형 타입은 가변 길이의 문자형 데이터 타입입니다. 최고 1-4000 byte의 문자를 저장할 수 있습니다.
|
Nchar
Nvarchar
|
저장 길이는 2000/4000으로 동일하고 유니코드에서 사용되는 문자를 저장하기 위한 타입입니다.(Transact-SQL)
|
LOB
|
LOB타입의 문자 데이터를 최대 8테라의 문자를 저장 할 수 있습니다. 종료는 CLOB와NLOB로 나뉘어 집니다.
|
Long
|
LOB타입이 나오기 전에 사용되던 문자 타입이고 2기가의 문자를 저장 할 수 있습니다. LONG 대신 LOB 타입을 사용하는 것이 좋습니다.
|
ü Unicode를 사용함으로써 Text로 저장되는 모든 문자, 모든 언어를 사용할 수 있는 장점이 있습니다.
Numeric Data Type
Type
|
Description
|
Number
|
고정된 길이를 가진 숫자 형태의 데이터타입이다. 범위는 1 x 10-130 to 9.99...9 x 10125이다. 일반적인 정수를 표기할 때 사용된다.
|
Floating-Point
|
소수점을 포함하는 데이터 타입으로 두 가지 형태가 존재한다.
Binary_float와 Binary_double이다. Number 형태를 포함하고 지원하는 타입이다.
|
Datetime Data Type
Type
|
Description
|
Date
|
문자, 숫자데이터와는 다른 타입으로 세기,년,월,일,시간 등을 표기하는데 사용합니다. 길이는 고정된 길이로 7byte이다.
|
Timestamp
|
Date 타입의 확장된 모델로 TIMESTAMP WITH TIME ZONE과 TIMESTAMP WITH LOCAL TIME ZONE 등의 Time zone을 포함한 타입이다.
|
Rowid Data Type
Type
|
Description
|
Physical rowids
|
물리적인 주소에 해당하는 heap객체 테이블, 테이블 클러스터, 테이블이나 인덱스 파티션에 대한 위치를 저장합니다.
|
Logical rowids
|
인덱스 객체 테이블의 row 주소를 기록합니다.
|
Foreign rowids
|
외부 테이블의 정의로 DB2테이블을 사용하기 위한 gateway입니다. 기본적으로 Oracle데이터베이스의 표준이 아니다.
|
오라클 데이터 타입 관련 출처 : http://amitige.tistory.com/31
4. 오라클 INSERT
sql> insert into [table_name] values('value1', 'value2', 'value3', 'value4');