728x90
반응형
LIST
-- 해당 테이블에 대한 참조 테이블 및 프로시저, 함수 추출
 
SELECT * FROM USER_DEPENDENCIES WHERE REFERENCED_NAME = '테이블명' order by name;     -- 범위 : 접속중인 DB
 
SELECT * FROM DBA_DEPENDENCIES WHERE REFERENCED_NAME = '테이블명' order by name;     -- 범위 : 전체 DB
 
-- View 스크립트 추출
 
SELECT TEXT FROM USER_VIEWS WHERE VIEW_NAME='뷰이름'
728x90
반응형
LIST
728x90
반응형
LIST
실제 DB Link를 걸기 위해서는 'B' DB의 서비스 네임과 link걸 table의 user/passwd를 알아야 합니다. 
그리고 'A' DB에서 DB Link를 걸기 위해선 권한이 필요합니다. 
 
'A' DB 의 System 계정으로 들어가서
 GRANT CREATE PUBLIC DATABASE LINK, DROP PUBLIC DATABASE LINK TO A DB_ID;
 'A' DB에 권한을 주고, 아래와 같이 DB Link를 생성합니다.
CREATE DATABASE LINK TEST_LINK CONNECT TO B DB_ID IDENTIFIED BY PASSWORD USING 'B DB'
      TEST_LINK  -> Link 이름
      B DB_ID -> B DB 접속 아이디
      PASSWORD  -> B DB 접속 패스워드
     'B DB'  -> B DB 의 TNSNAMES.ORA에 등록된 Name
 
마지막으로 아래의 명령어로 DB Link 가 걸렸는지 확인해 줍니다. 
 
SELECT * FROM Table@TEST_LINK
 
 
* 모든 DB Link 를 확인하는 SQL 
 select * from all_db_links;
* DB Link 삭제
drop database link TEST_LINK
 
 
CREATE  DATABASE LINK 원하는 링크이름
 CONNECT TO 계정 IDENTIFIED BY 비번
 USING '연결할 DB의 TNS';
 
이래저래 안걸리면 직접넣기
CREATE DATABASE LINK 링크이름
 CONNECT TO 아이디 IDENTIFIED BY 비번
 USING '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=호스트명)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=SID)))';  
 
 
<GLOBAL_NAME>
alter system set global_names=false;
 
select * from global_name;

 

728x90
반응형
LIST
728x90
반응형
LIST
◆ 오라클 계정 생성

 

1. SQL Plus에 접속
sqlplus "/as sysdba"
[oracle@namhun /usr/lib/oracle/xe]$ sqlplus  "/as sysdba"
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production
SQL> conn /as sysdba
Connected.
 
2. 계정생성 :
ex)
SQL> create user inpion identified by "imsi00";
User created.
 
 
3. 접속권한 부여 :
grant resource, connect to 계정;
resource, connect는 일반적인것을 다 사용 할 수 있음. DDL, DML 사용가능
ex)
SQL> grant resource, connect to inpion;
Grant succeeded.
 
4. 작업 tablespace 지정 : alter user 유저네임 default tablespace users;
 
5. 임시 tablespace 지정 : alter user 유저네임 temporary tablespace temp;
ex)
SQL> alter user inpion temporary tablespace temp;
User altered.
 
 
◆ 오라클 계정 삭제
 
1. SQL Plus 에 접속
   sqlplus system/비밀번호
 
2. 사용자 삭제 : SQL drop user inpion cascade; 
   cascade 를 명시하면 유저네임과 관련된 모든 데이터 베이스 스키마가 
   데이터 사전으로부터 삭제되고 모든 스키마 객체도 물리적으로 삭제됨.
 
 
◆ 오라클 패스워드 강제 변경
sqlplus "/as sysdba"
SQL> alter user sys identified by 암호;
SQL> alter user system identified by 암호
ex) SQL> alter user sys identified by "123456";
    User altered.
ex) SQL> alter user system identified by "123456";
    User altered.
728x90
반응형
LIST
728x90
반응형
LIST

-- 여러가지 연산자들

 

between 1 and 10 -- 사이 값

sal IN(2, 3) -- 해당 레코드와 일치하는 것 

ename like '_S\%%' escape '\' -- 해당 문자가 포함된 레코드 검색

                                                %를 포함한 문자 검색시에 옵션 설정 가능

 

 

 

-- 숫자 관련 함수들

 

abs(-2) -- 절대값

mod(5,2) -- 나머지

sign(-2) -- 양, 음 판단

ceil(3.26) -- 소수점에서 올림

floor(3.26) -- 소수점에서 버림

round(3.26, 1) -- 해당 소수점에서 반올림

trunc(3.26, 1) -- 해당 소수점에서 버림

 

-- 문자 관련 함수들

upper/lower(ename) -- 대,소문자 변환

initcap(ename) -- 첫 글자만 대문자로 변환

concat(job,ename) -- 두 문자 값 연결

substr(ename, 1, 2) -- 해당 위치부터 지정된 만큼의 문자를 추출. -1위치는 뒤에서 추출

 

length(ename) -- 문자의 길이

ltrim/rtrim('abb ', 'a') -- 해당 방향에서 지정된 문자 제거

lpad/rpad('abb ', 5, 'a') -- 문자가 자리수를 만족하지 못한다면 해당 방향에서 지정된 문자로 채움

trim('S' from ename) -- 양쪽에서 지정된 문자열 제거

 

-- 날짜 관련 함수들

 

add_months(sysdate,2) -- 해당 날짜에 달수를 더함

months_between(sysdate, hiredate) -- 두 날짜의 차이

 

 

 

-- 형 변환 함수들

 

to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') -- 날짜형을 문자형으로 변환. 일반적인 형태

to_char(123456, 'L000,000,000') -- 숫자형을 문자형으로변환. 1의자리부터 맞추고 \형태로 0을 채움 

                                              0 대신 9로 채우면 알아서 잘라서 채움

to_number('5')-2 -- 문자형을 숫자형으로 변환

to_date(19810220, 'YYYYMMDD') -- 문자형을 날짜형으로 변환

 

 

-- 그 밖의 함수들

 

 

nvl(str, 'a') -- 해당 값이 NULL값이면 해당 지정된 문자 출력

 

-- NULL 값[정해지지 않은 값]을 넣는 세가지 방법

insert into emp(seq, str) values(2,NULL)

insert into emp(seq) values(2)

insert into emp(seq, str) values(2,'')

 

 

 

 

-- 조건 관련 함수

 

DECODE(to_char(hiredate, 'YYYY'),

'1980','과장',   '1981','대리',   '사원')

CASE to_char(hiredate, 'YYYY')

WHEN '1980' THEN '과장'   WHEN '1981' THEN '대리'   ELSE '사원'   END

-- CASE에서는 비교조건을 쓸 수 있음. NULL은 is NULL 형태로 기술

 

-- 그룹 함수

 

max(sal) -- 최소 값

min(sal) -- 최대 값

sum(sal) -- 합계

avg(sal) -- 평균

count(comm) -- NULL값을 제외한 개수

count(*) -- 총 개수

 

 

 

-- HAVING 절[그룹함수는 where절에 쓸 수 없기 때문에 씀(순서에 유의)]

select job, count(*)

from emp

where sal>500 and job !='PRESIDENT'

group by job -- select에 기술한 컬럼들은 반드시 group by절에 기술 되어 있어야 함

HAVING count(*)>2 -- 그룹의 결과를 제한할 때 쓰이며, 그룹함수를 적용한 컬럼이 조건으로 옴

order by job

728x90
반응형
LIST

+ Recent posts