[Oracle]CREATE TABLE

2007. 12. 17. 09:47

CREATE TABLE A1_Prof(

             PID        char(4) PRIMARY KEY,

             PName   char(10) not null,

             PDept    char(15)

);

 

CREATE TABLE A1_Student(

             ID          char(9)   PRIMARY KEY,

             Name     char(10) not null,

             Dept      char(15) not null,

             Grade    number(5) not null,

             PID        char(4)   REFERENCES A1_Prof(PID)

);

 

CREATE TABLE A1_Curriculum(

             SubjectID            char(10) PRIMARY KEY,

             SubjectName      char(20) not null

);

 

CREATE TABLE A1_Score(

             ID                        char(9),

             SubjectID            char(10),

             Score                 number(5)  Default 0 not null,

             PRIMARY KEY (ID, SubjectID),

             FOREIGN KEY (ID) REFERENCES A1_Student(ID),

             FOREIGN KEY (SubjectID) REFERENCES A1_Curriculum(SubjectID)

);

 

 

CREATE TABLE A1_Customer_Info(

             CID        char(6)  PRIMARY KEY,

             Name     char(10) not null,

             Address             char(20) ,

             Tel        char(15) ,

             Bday      date       not null,

             SID        char(14)not null,

             Job        char(10) ,

             Sex        char(1)  not null,

             Married  number(1)

);

 

CREATE TABLE  A1_Customer_OnlineInfo( 

             CID        char(6) ,

             LID        char(20) not null,

             LPW       char(15) not null,

             Email     char(20) ,

             Jday       date not null,

             PRIMARY KEY (CID),

             FOREIGN KEY (CID) REFERENCES A1_Customer_Info(CID) 

);

 

CREATE TABLE A1_Product(

             PID        int PRIMARY KEY,

             Name     char(15) not null,

             Cor        char(20) not null,

             UnitPrice int  not null,

             Holding   int  not null,

             Photo     char(20)

);

 

CREATE TABLE A1_Region(

             RID        number(5) PRIMARY KEY,

             LRegion char(10) not null,

             SRegion char(10) not null

);

 

CREATE TABLE A1_Store(

             SID        number(5) PRIMARY KEY,

             Name     char(20) not null,

             RID        number(5)  REFERENCES A1_Region(RID)

);

 

CREATE TABLE A1_Sales(

             SaleID    number(5) PRIMARY KEY,

             PID        number(5)REFERENCES A1_Product(PID),

             SID        number(5)REFERENCES A1_Store(SID),

             CID        char(6)REFERENCES  A1_Customer_Info(CID),

             SDay      date  not null

);

 

 

CREATE TABLE A1_sales_return(

             returnday            date not null,

             returnreason       char(30) not null,

             saleid                 number(5) REFERENCES A1_store(sid)

);

 

CREATE TABLE A1_customer_score(

             cid char(6) REFERENCES A1_customer_info(cid),

        score number(6)  default 0 not null

);

 

 
 
Posted by 나비:D
:

Export와 Import는 가장 유용하게 그리고 자주 사용되는 백업관련 DBA ToolKit 입니다.


SQL*Loader는 외부 데이터를 오라클 서버로 업로드 하는 역할을 수행 하지만 Export/Import는 오라클 서버의 데이터를 다른 오라클 서버(이때 플랫폼과는 무관하다. 예를 들어 윈도우용 오라클에서 Export 받은 파일을 Unix/Linux 서버 기반의 오라클로 Import 하는것이 가능하다) 또는 같은 서버의 다른 사용자로 Import 하는 것이 가능 하다.
먼저 Export부터 그 사용법에 대해 알아 보기로 하자.

1. Export
- EXport는 데이터베이스의 논리적인 백업을 제공 한다. 즉 테이블, 데이블스페이스, 데이터를 포함한 사용자, 그리고 사용자가 만든 스키마 오브젝트(Index, View, Synonym, Trigger, DataBase Link, sequence, stored code 등등)등을 백업 받을 수 있는 것이다.

- Export 유틸리티의 Output은 export dump 파일 이다. 이 파일은 import Utility를 통해 읽혀져 다른 데이터베이스등으로 복구 되는 것이다.

- Export 파라미터
  많은 파라미터중 UserID라는 파라미터는 꼭 가져야 한다는 것을 기억 하자. Exp 명령 입력하고  아무 파라미터도 주지 않는 경우 기본(Default) 값을 제공하면서 입력을 위한 프롬프트를 보여준다.(이때 사용자 ID와 ORD)는 반드시 입력해야 한다.

  USERID : username/password를 값으로 입력 한다. 반드시 입력해야 한다. 만약 전체 데이터베이스를 백업 받기 위해 서는 기술된 User는 명시적으로 exportfull database 롤(Role)을 부여 받아야 한다.

 

  FILE :  출력 파일의 이름(Export후 생기는 dump 파일 이름)

 

  ROWS : Export Dump 파일에 테이블 행(데이터) 포함 여부 표시: (Y)es/(N)o 만약 여러분이 테이블 구조만 export하고 실제 row data는 백업을 원하지 않는 경우에는 rows=n 이라고 명시 해야 한다.(default값은 y)

 

  Query : 테이블의 특정 부분만을 Export 하기 위해서 사용 한다.
       (exp userid=scott/tiger tables=emp query=\"where sal \> 2000 \
  -----------------------------------------  
  Export Mode와 관련된 파라미터

  FULL : DataBase 레벨의 Export를 수행할지 여부를 표시, 전체 데이터베이스 익스포트 여부를 표시: (Y)es/(N)o
            (exp userid=system/manager full=y)

 

  OWNER : Schema Level의 EXport를 수행 할지의 여부를 표시 Export를 원하는 사용자이름을 기술 한다.
               (exp userid=system/manager owner=(scott)
  TABLES : export할 테이블 테이블 리스트 또는 (Y)es/(N)o
                 (exp userid=system/manager tables=(emp, dept, salgrade)
                 (exp userid=system/manager tables=(scott.emp%)
  TABLESPACE : export를 원하는 테이블스페이스(TableSpace)를 기술
               (exp yserid=system/manager tablespaces = (users) )
  -----------------------------------------------------------------------------                
  INDEXES, CONSTRAINTS, GRANTS, TRIGGERS : Index, Constraints, grant,  
                 triggers등을 export할지의 여부를 지정 (Y)es/(N)o, 기본적으로 앞 4개의 스
                 키마 오브젝트는 Export 됨
                 (exp userid=scott/tiger indexes=n constraints=n grants=n triggers=n)
 
  DIRECT : Direct 모드 익스포트 유무 (Y)es/(N)o  
  INCTYPE :  익스포트 레벨 유형
  PARFILE :  파라미터가 명시된 파일의 이름, Export인자들이 많을 경우 별도의 파일로
                  서 관리 가능
  HELP :  대화식 모드에서 익스포트 파라미터 디스플레이 (Y)
  LOG : 로깅 메시지를 위한 파일이름을 기술 한다.
  CONSISTENT : 익스포트 동안 데이터 갱신시 데이터베이스의 읽기 일관성 뷰 제공  
                        유무: (Y)es/(N)o
  BUFFER : 바이트로된 데이터 버퍼 크기: (정수)
  COMPRESS : 하나의 익스텐트(Extent)에 모든 데이터를 포함시킬지 명시, (Y)es/(N)o

  * Direct Path 익스포트 개념
     Direct Path 기능을 사용함으로써 데이터를 훨씬 더 빨리 export할 수 있다.  

   * Direct-Path 익스포트의 구조  
    export시 direct 모드의 사용은 파라미터 DIRECT=Y라고 기술함으로써 설정될 수 있다  
    Direct Path 익스포트는 인스턴스의 다른 자원들과 경쟁하지 않으며 세션에 의해 사용
    되는 private area로 데이터베이스 블록을 읽어 들인다.
    행들은 전송을 위해 Two-Task Command(TTC) 버퍼로 직접 이동되며 이 TTC 버퍼  
    내의 데 이터는 Export의 형식으로 되어 있다.  

    ---------------------------------------------------------------
    Export의 예 1 : exp 라는 명령만 입력 함으로서 대화식으로 export 처리
    ---------------------------------------------------------------
   D:\backup>exp

   Export: Release 9.2.0.1.0 - Production on 일 Jan 11 22:51:41 2004

   Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


   사용자명: scott
   암    호:

   다음에 접속됨: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
   With the Partitioning, OLAP and Oracle Data Mining options
   JServer Release 9.2.0.1.0 - Production
   배열 인출 버퍼 크기 입력: 4096 >

   엑스포트 파일: EXPDAT.DMP >

   (2)U(사용자), 또는 (3)T(테이블): (2)U >

   권한부여 엑스포트 (yes/no): yes >

   테이블 데이터 엑스포트 (yes/no): yes >

   확장 영역 압축 (yes/no): yes >

   KO16MSWIN949 문자 설정과 AL16UTF16 NCHAR 문자 설정에서 엑스포트가 종료되
   었습니다

. 스키마 이전 단계의 객체와 작업을 엑스포트합니다\r

. SCOTT 사용자를 위해 외래 함수 라이브러리 이름을 엑스포트합니다
. PUBLIC 유형 동의어 엑스포트 중
. 전용 유형 동의어 엑스포트 중\
. SCOTT 사용자의 객체 유형 정의를 엑스포트 합니다 \r

SCOTT의 객체를 엑스포트하려고 합니다 ...
. 데이터베이스 링크 엑스포트 중
. 순차 번호 엑스포트 중
. 클러스터 정의 엑스포트 중
. SCOTT의 테이블을 엑스포트하려고 합니다 via 규정 경로...
. . 테이블   ADDRBOOK(를)을 엑스포트 중          3 행이 엑스포트됨
. . 테이블   EMP(를)을 엑스포트 중         15 행이 엑스포트됨
......
. 동의어 엑스포트 중
. 뷰 엑스포트 중
. 저장 프로시저 엑스포트 중
. 작업을 엑스포트합니다
. 참조 무결성 제약조건 엑스포트 중
. 트리거 엑스포트 중
. 인덱스유형을 엑스포팅합니다
. 비트맵, 함수, 기능과 확장 가능한 인덱스들을 엑스포트합니다
. 이후 테이블 처리를 엑스포트 중
. 구체화된 뷰 엑스포트 중
. 스냅샷 로그 엑스포트 중
. 작업 대기열을 엑스포트 중
. 리프레쉬 그룹과 자식 엑스포트 중
. 차원을 엑스포트합니다\
. 스키마 이후 단계의 객체와 작업을 엑스포트합니다\r

. 통계를 엑스포트합니다
엑스포트가 경고 없이 정상적으로 종료되었습니다.

   D:\backup>dir
    D 드라이브의 볼륨: data1
    볼륨 일련 번호: 2434-2E50

    D:\backup 디렉터리

   2004-01-11  11:07p    <DIR>          .
   2004-01-11  11:07p    <DIR>          ..
   2004-01-11  11:08p           51,200 EXPDAT.DMP <-- 이름을 안주면 이 이름으로 생성
               1개 파일          51,200 바이트
               2 디렉터리   2,185,789,440 바이트 남음




    ---------------------------------------------------------------
    Export의 예 2 : SCOTT 계정의 모든 오브젝트를 Export
    ---------------------------------------------------------------
   D:\backup>exp userid=scott/tiger file=scott.dmp  
   또는    D:\backup>exp userid=system/manager owner=scott file=scott.dmp

Export: Release 9.2.0.1.0 - Production on 일 Jan 11 23:24:38 2004

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


다음에 접속됨: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
KO16MSWIN949 문자 설정과 AL16UTF16 NCHAR 문자 설정에서 엑스포트가 종료되었습니다
\
. 스키마 이전 단계의 객체와 작업을 엑스포트합니다\r

. SCOTT 사용자를 위해 외래 함수 라이브러리 이름을 엑스포트합니다
. PUBLIC 유형 동의어 엑스포트 중
. 전용 유형 동의어 엑스포트 중\
. SCOTT 사용자의 객체 유형 정의를 엑스포트 합니다 \r

SCOTT의 객체를 엑스포트하려고 합니다 ...
. 데이터베이스 링크 엑스포트 중
. 순차 번호 엑스포트 중
. 클러스터 정의 엑스포트 중
. SCOTT의 테이블을 엑스포트하려고 합니다 via 규정 경로...
. . 테이블          ADDRBOOK(를)을 엑스포트 중          3 행이 엑스포트됨
. . 테이블          EMP(를)을 엑스포트 중         15 행이 엑스포트됨
    .......................

    엑스포트가 경고 없이 정상적으로 종료되었습니다.

   D:\backup>dir
    D 드라이브의 볼륨: data1
    볼륨 일련 번호: 2434-2E50

    D:\backup 디렉터리

   2004-01-11  11:24p      <DIR>          .
   2004-01-11  11:24p      <DIR>          ..
   2004-01-11  11:08p              51,200 EXPDAT.DMP
   2004-01-11  11:24p              51,200 scott.dmp
                  2개 파일         102,400 바이트
                  2 디렉터리   2,185,736,192 바이트 남음


    

    ---------------------------------------------------------------
    Export의 예 3 : scott 계정의 emp, dept 테이블의 구조만 Export
    ---------------------------------------------------------------
   D:\backup>exp userid=scott/tiger tables=(emp, dept) rows=n file=structure.dmp

Export: Release 9.2.0.1.0 - Production on 일 Jan 11 23:29:15 2004

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


다음에 접속됨: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
KO16MSWIN949 문자 설정과 AL16UTF16 NCHAR 문자 설정에서 엑스포트가 종료되었습니다

경고: 테이블 데이터(행)가 엑스포트 되지 않습니다

지정된 테이블을 엑스포트하려고 합니다 via 규정 경로...
. . 테이블                            EMP(를)을 엑스포트 중
. . 테이블                           DEPT(를)을 엑스포트 중
엑스포트가 경고 없이 정상적으로 종료되었습니다.

D:\backup>dir
D 드라이브의 볼륨: data1
볼륨 일련 번호: 2434-2E50

D:\backup 디렉터리

2004-01-11  11:29p      <DIR>          .
2004-01-11  11:29p      <DIR>          ..
2004-01-11  11:24p              51,200 scott.dmp
2004-01-11  11:29p               4,096 structure.dmp  <--------
               3개 파일          59,392 바이트
               2 디렉터리   2,185,781,248 바이트 남음

    ---------------------------------------------------------------
    Export의 예 4 : 전체 데이터베이스 백업
    ---------------------------------------------------------------
    D:\backup>exp userid=system/manager full=y file=full.dmp

    


2. Import
   Import Utility는 Export를 통해 생성된 덤프파일을 읽어 데이터베이스 복구를 진행  
   한다.  

   파라미터

   USERID : Import를 수행 할  객체의 사용자이름/패스워드  
   FILE : 입력 파일 이름. Export를 통해 생성된 파일  
   IGNORE : Import시 테이블이나 인덱스와 같은 스키마 오브젝트는 기본적으로 만들려
                 고 시도한다. 이때 비록 비어있지만 객체가 이미 존재 한다면 존재함으로 인
                 한 생성 에러가 나타나는데 이를 무시한다는 의미 이다.(default n)
   ROWS : Import시 테이블의 Row를 임포트 할것인지의 여부를 지정
               (default y)
   TABLES : 임포트시킬 테이블(default y)
   INDEXES : 임포트시킬 인덱스(default y)
   CONSTRAINTS : Constraint들을 import할 전지의 여부를 표시(default y)
   GRANTS : GRANT들을 임포트 할건지의 여부(default y)  
   INCTYPE : 증분적 임포트 유형 명시. SYSTEM 및 RESTORE 옵션이 있음.
   PARFILE : 파라미터 명시 파일, 파라미터등이 많아 복잡한 경우에 사용  
   HELP :  대화식 모드로 익스포트 파라미터 디스플레이.
   LOG : 로그 파일명  
   INDEXFILE : Index-creation 명령을 수용할 파일 명시.
   ---------------------------------- Import Mode와 관련된 파라미터
   FULL :  전체 데이터베이스를  임포트함.  
   Schema Level에서는 fromuser, touser를 사용한다.    
       DBA이거나 import full database role을 부여 받지 않았다면 import를 수행하는 사용
       자의 스키마에서만 import를 할 수 있다. 이를 해결하기 위해 fromuser, touser를 사
       용 한다.
      - FROMUSER :  임포트시킬 객체를 포함하는 스키마 리스트.
      - TOUSERS : 사용자의 스키마가 임포트될 사용자 리스트 명시.  
   Table level에서는 tables 파라미터를 사용한다.
      - Tables : 기술된 테이블들이 임포트 된다.
    
   예) $imp userid=system/manager full=y
        $imp userid=system/manager fromuser=scott touser=test
        $imp userid=system/manager tables=(scott.emp, scott.dept)
   -----------------------------------------------------------------

   DESTROY : Import 시  Import Utility는 필요하다면 어떠한 테이블 스페이스에 대해 만
                    들 수도 있다. 만약 destroy=y이면 export dump 파일안에 같은 이름을 가
                    진 data file명이 있다면 import되는 오라클 서버에 대해서 그 파일을  
                    overwrite 한다는 것이다. (default는 n이다.)
                    ($imp userid=scott/tiger destroy=y)



   =========================================================================
   import 예제 1 : scott 계정을 삭제 후 export 받은 백업본을 이용해 복구하기
   =========================================================================

   ---> 아래는 SQL*Plus에서...  
   SQL> connect / as sysdba
      연결되었습니다.
   SQL> drop user scott cascade;
      사용자가 삭제되었습니다.


   ---> 아래는 명령프롬프트에서...
   D:\backup>dir
D 드라이브의 볼륨: data1
볼륨 일련 번호: 2434-2E50

D:\backup 디렉터리

2004-01-11  11:33p      <DIR>          .
2004-01-11  11:33p      <DIR>          ..
2004-01-11  11:28p               4,096 EXPDAT.DMP
2004-01-11  11:36p             548,864 full.dmp
2004-01-11  11:24p              51,200 scott.dmp
2004-01-11  11:29p               4,096 structure.dmp
               4개 파일         608,256 바이트
               2 디렉터리   2,185,232,384 바이트 남음

D:\backup>imp userid=system/manager fromuser=scott touser=scott file=scott.dmp

Import: Release 9.2.0.1.0 - Production on 월 Jan 12 00:20:59 2004

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


다음에 접속됨: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production

엑스포트 파일은 규정 경로를 거쳐 EXPORT:V09.02.00 에 의해 생성되었습니다

경고: 객체는 다른 사용자 SCOTT(이)가 엑스포트한 것입니다.

KO16MSWIN949 문자집합과 AL16UTF16 NCHAR 문자 집합에 임포트가 완성되었습니다
. SCOTT 객체를 SCOTT(으)로 임포트하는 중입니다
IMP-00003: ORACLE 오류 1435 가 발생했습니다
ORA-01435: 사용자가 존재하지 않습니다
경고와 함께 임포트가 정상 종료되었습니다.


---> 다음은 SQL*Plus에서...
SQL> create user scott identified by tiger
  2  default tablespace users
  3  temporary tablespace temp
  4  quota 100m on users;

사용자가 생성되었습니다.

SQL> grant connect, resource to scott;
권한이 부여되었습니다.

SQL> connect scott./tiger;
연결되었습니다.

SQL> select * from tab;
선택된 레코드가 없습니다.


---> 다음은 명령 프롬프트에서...
 
D:\backup>imp userid=system/manager fromuser=scott touser=scott file=scott.dmp

Import: Release 9.2.0.1.0 - Production on 월 Jan 12 00:33:32 2004

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


다음에 접속됨: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production

엑스포트 파일은 규정 경로를 거쳐 EXPORT:V09.02.00 에 의해 생성되었습니다

경고: 객체는 다른 사용자 SCOTT(이)가 엑스포트한 것입니다.

KO16MSWIN949 문자집합과 AL16UTF16 NCHAR 문자 집합에 임포트가 완성되었습니다
. SCOTT 객체를 SCOTT(으)로 임포트하는 중입니다
. . 테이블     "ADDRBOOK"(를)을 임포트 중          3 행이 임포트되었습니다.
  . 테이블     "EMP"(를)을 임포트 중                   15행이 임포트되었습니다.
  ............
  ............
  임포트가 경고 없이 정상적으로 종료되었습니다.


  SQL>  select * from tab;

TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
ADDRBOOK                       TABLE
BONUS                             TABLE
CUSTOMER                      TABLE
CUSTOMER1                     TABLE
CUSTOMER2                     TABLE
DEPT                                TABLE
EMP                                 TABLE
EMPLOYEE                       TABLE
EMP_HISTORY                  TABLE
KOR                                 TABLE
LONGTEST                       TABLE

TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
MYDEPT                        TABLE
MYEMP                         TABLE
MYTABLE                      TABLE
SALES                           TABLE
SALGRADE                     TABLE
SAWON                          TABLE
S_CUSTOMER                 TABLE
S_DEPT                          TABLE
S_EMP                           TABLE
S_IMAGE                        TABLE
S_INVENTORY                 TABLE

TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
S_ITEM                         TABLE
S_LONGTEXT                 TABLE
S_ORD                          TABLE
S_PRODUCT                  TABLE
S_REGION                      TABLE
S_TITLE                         TABLE
S_WAREHOUSE              TABLE
TEST                             TABLE
TIME_TAB                      TABLE

31 개의 행이 선택되었습니다.
  

  =========================================================================
   import 예제 2 : emp Table을 삭제 후 백업본을 이용해 복구하기        
  =========================================================================
  
  --> SQL*Plus에서 ...
  SQL> connect scott/tiger
연결되었습니다.
SQL> drop table emp;
drop table emp
           *
1행에 오류:
ORA-02449: 외래 키에 의해서 참조된 테이블에 유일/기본 키입니다

SQL> drop table emp cascade constraint;
테이블이 삭제되었습니다.

SQL> select count(*) from emp;
select count(*) from emp
                     *
1행에 오류:
ORA-00942: 테이블 또는 뷰가 존재하지 않습니다



  --> 명령프롬프트에서 실행

  D:\backup>imp scott/tiger tables=(emp) file=scott.dmp <-- scott으로 export 받은 경우에...
D:\backup>imp userid=system/manager tables=(emp) file=scott.dmp fromuser=system
touser=scott  <-- system으로 export 받은 경우에...

Import: Release 9.2.0.1.0 - Production on 월 Jan 12 00:43:45 2004

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


다음에 접속됨: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production

엑스포트 파일은 규정 경로를 거쳐 EXPORT:V09.02.00 에 의해 생성되었습니다
KO16MSWIN949 문자집합과 AL16UTF16 NCHAR 문자 집합에 임포트가 완성되었습니다
. SCOTT 객체를 SCOTT(으)로 임포트하는 중입니다
. . 테이블                          "EMP"(를)을 임포트 중         15 행이 임포트
되었습니다
사용 가능한 제약 조건에 관해서...
임포트가 경고 없이 정상적으로 종료되었습니다.

--> SQL*Plus에서 실행
  

SQL> select count(*) from emp;

  COUNT(*)
----------
        15

 

 

Posted by 나비:D
:

1. 콘솔에서 emca 실행

2. 새로운 management server 구성

 
 
 
3. 구성작업을 완성한 후에 콘솔에서 관리 서버의 상태를 확인한다
 
C:\Documents and Settings\Administrator>oemctl ping oms
Windows NT에 대한 OEMCTL: 버전 9.2.0.1.0 Production
Copyright (c) 1998, 2002, Oracle Corporation. All rights reserved.
Management Server가 실행 중입니다.
 
 
C:\Documents and Settings\Administrator>oemctl status oms
    ** 참고 oemctl status oms 명령을 실행하면 팝업이 떠서 super administrator 계정과
        비밀번호를 묻는다. 관리서버가 설치되면 기본적으로 sysman/oem_temp, reports_user/?
        사용자가 존재한다.
Windows NT에 대한 OEMCTL: 버전 9.2.0.1.0 Production
Copyright (c) 1998, 2002, Oracle Corporation. All rights reserved.
호스트 [222.239.137.191]의 Oracle Management Server가 제대로 작동합니다.
  서버가 0 00:34:59.578용으로 실행 중입니다.
  대상 데이터베이스 세션 수: 0 (세션 공유 해제)
  처리 대기 중인 작업: 1
  도메인에 있는 OMS 시스템 수: 1 (222.239.137.191)
  로그인한 관리자 수: 0
  저장소 세션 풀 깊이: 15
  저장소 세션 수: 7 사용 중, 1 사용 가능, 풀 효율성: 83%
 
4. 콘솔에서 oemapp console을 실행한 후 management server 에 접속한다.
   sysman/oem_temp 사용자로 접속한 후 바로 비밀번호를 변경하라는 메세지가 뜬다.
   적절하게 수정하면 em 화면이 뜨는데, 다시 또 노드 검색 마법사가 실행된다.
   로컬 db를 노드로 등록해야 하므로 윈도의 서비스 창에서 agent 서비스를 실행 시킨다.
 
 
 
5. agent 가 정상적으로 작동되면 다음처럼 로컬 db가 노드로 검색된다.

 
 
6.
 
 
 
Posted by 나비:D
:
DB Tips
::Taxus:: 2002-09-26 18:08:35.0
CONSOLE 구동 방법

(V2.X) OEM 2.1 CONSOLE 구동 방법
================================

PURPOSE
-------

이 자료는 OEM 2.X 의 console을 구동하기 위한 절차에 대한 소개 자료이다.


Explanation
-----------

다음은 OEM 2.1을 이용, oracle server 8.1.5 또는 8.1.6 이상을 모니터하려
는 환경에서 이용되는 가이드이다. 만약, 서버가 그 이전 버젼이거나 OEM이
2.1 이하 버젼이면, 이 가이드에 있는 사용법 일부가 적용되지 않을 수도 있다.
(그러나, winnt 용 OEM 2.0.4 console에서는 똑같이 적용된다.)
먼저 OEM 2.1을 console이 되는 winNT에 install한다.

<OEM console 시작>

1. OEM console을 시작하기 전에 반드시 OMS(Oracle Management Server)를
   시작한다.
   시작 -> 설정 -> 제어판 -> 서비스 선택
   OracleORA8i_HOMEManagementServer 를 시작한다.

   [주의] 만약, OMS를 구동하지 않고, console을 시작하면
          VTK-1000 unable to connect to the management server 에러 발생

2. OEM console 시작
   시작 -> 프로그램 -> ORA8i_HOME -> enterprise manager -> console 선택

3. oracle enterprise manager login 에서 OMS user를 입력.
  
   administrator : sysman
   password : oem_temp
   management server : 사용할 management server 입력

4. security warning 에서 sysman의 password를 변경한다.
  
   username : sysman
   password : manager (예를 들어)
   confirm password : manager

5. OEM console에서 관리할 DB를 discovery 한다.
   메뉴가 있는 console toolbar에서 navigator 메뉴 -> discover nodes 선택

6. discover할 node를 입력 후, OK 선택
  
   창에서 DB가 있는 서버의 IP address(152.69.40.26)를 입력해도 되고,
   krlinux 와 같은 hostname을 입력한다. hostname을 입력하는 경우에는
   c:\Winnt\system32\drivers\etc\hosts 화일에 hostname이 등록되어 있어야 한다.

   (hosts 화일 예)
   127.0.0.1       localhost
   152.69.40.26    krlinux
   152.69.44.29    server-7
   152.69.40.75    o200
   152.69.40.73    krrcsun
      
7. specify databases 창에서 tnsnames.ora에서 지정한 alias명과 포트 번호
   (예를 들어 1521), 관리할 ORACLE_SID를 입력하고, 지정한 node가 discover됨을
   확인한다.
   discover가 성공적으로 수행되었으면 close 버튼을 누른다.
  
   [주의] intelligent agent가 start되어 있지 않으면
   VD-4565 The agent on the node is already being deleted 메시지가 뜬다.

   [주의] TNS alias명과 port, sid가 일치하지 않으면
   VD-4564 cannot resolve host host명:1521:orcl 메시지가 뜬다.

   [참고] intelligent agent를 start하려면 oracle user로 들어가서

          $ lsnrctl dbsnmp_start

8. navigator window에서 databases 폴더를 클릭하면 discover된 데이타베이스가
   나타난다.

9. discover된 데이타베이스를 클릭하면 로그인 화면이 뜬다.
   
   username : system
   password : manager
   service  : rc816
   connect as : SYSDBA

   connect as를 SYSDBA로 해야만 remote에서 instance startup/shutdown 등
   이 가능하다.
   save as preferred credential 을 체크 표시하고, OK 버튼을 누른다.

   [참고] SYSDBA로 접속을 하려면 O/S 인증을 받아야 하는데, 이 role이 없
   으면 OEM console에서 어떤 작업을 할 때 ORA-1031 에러가 발생하게 된
   다. 이 때 password 화일을 만들어서 O/S 인증을 받도록 다음과 같이 합니다.

   1) initSID.ora 화일

      REMOTE_OS_AUTHENT = TRUE
      REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE

   2) DB 서버에 password file 생성
      cd $ORACLE_HOME/dbs
      OS> orapwd file=orapwSID password=new_password entries=10

   3) SVRMGR> grant sysdba to system

   4) connect as를 SYSDBA로 해야만 remote에서 O/S 인증을 받고 작업 가능.

   5) Menu -> System -> Preference -> Preferred Credentials ->
      위와 같이 connect as를 SYSDBA로 설정한다.

10. 데이타베이스 폴더를 더블 클릭하면 데이타베이스 리스트가 나타난다.
    (OEM 2.1에서는 Databases -> SID_노드명 -> Storage 를 선택하면 된다.)
    Navigator 윈도우에서 datafiles, tablespaces, rollback segments,
    redo log groups, archive logs 등 관리할 DB의 모든 정보들을 볼 수 있다.

11. Preferred Credentials를 설정하면 관리할 database를 더블 클릭하였을 때
    매번 login username(
system/manager@service)을 지정하는 것을 피할 수 있다.

    메뉴에서 system -> preference -> preferred credential tab 선택.
    나타나는 service name과 service type에 대하여 login username과
    password, role(service type이 db인 경우에만)을 입력하고 OK 버튼을 누른다.
    (9번에서 지정한 것을 편집할 수 있다.)
 
    service name : rc816(예), service type : database
                   -> 해당 database 에만 적용.
    service name : krlinux(예), service type : node
                   -> 해당 노드의 DBA unix 계정과 password 입력.
    service name : <DEFAULT>, service type : database
                   -> 설정되어 있지 않은 모든 database 에 적용.


Example
-------
none


Reference Document
------------------
자료출처 :
http://www.oracle.co.kr:8880/bulletin/list.jsp?seq=11930&pg=0&keyfield=subject&keyword=console    

Posted by 나비:D
:

원문 : http://support.microsoft.com/default.aspx?scid=kb;ko;255084


요약

본 문서에서는 Active Server Pages(ASP) 응용 프로그램에서 Oracle 데이터베이스로 연결할 때 발생하는 문제를 해결하기 위한 일반적인 단계를 설명합니다. 대개 아래와 같은 오류 메시지가 나타납니다.
ODBC 드라이버용 Microsoft OLE DB 공급자 오류 '80004005' [Oracle][ODBC][Ora]ORA-12154: TNS:서비스 이름 /vdir/filename.asp를 확인할 수 없습니다. 줄 번호 xxx.


Oracle(tm) 클라이언트 및 네트워킹 구성 요소를 찾을 수 없습니다. 이 구성 요소는 Oracle Corporation이 제공하며 Oracle 버전 7.3 이상 클라이언트 소프트웨어 설치의 일부입니다.

이 구성 요소를 모두 설치해야 이 드라이버를 사용할 수 있습니다.

추가 정보

다음은 ASP와 Oracle 데이터베이스 간의 연결 문제를 조사할 때 일반적으로 수행하는 단계입니다.
  1. 먼저 명령줄 기반 쿼리 유틸리티인 Oracle SQL Plus를 사용하여 Oracle에 연결하고 데이터를 검색할 수 있는지 확인합니다. 이 도구에서 Oracle에 연결할 수 없으면 Oracle 클라이언트 구성 요소의 설치 또는 구성에 문제가 있거나 SQL Net Easy Config 또는 Oracle Net8 Easy Config 유틸리티를 올바른 방법으로 사용하여 Oracle 서버의 별칭을 만들지 않은 것입니다. Oracle 데이터베이스 관리자와 협조하여 필요한 Oracle 구성 요소가 올바르게 설치되고 구성되어 있는지 확인해야 합니다.
  2. 최근에 Internet Information Server(IIS) 컴퓨터에 Oracle 클라이언트를 설치했으면 컴퓨터를 적어도 한 번 이상 다시 부팅했는지 확인합니다. 설치를 완료한 후 Oracle 구성 요소 SQL Plus가 올바르게 작동하더라도 컴퓨터를 다시 부팅하지 않으면 IIS와의 연결이 작동하지 않을 수도 있습니다.
  3. IIS 서버에 OCIW32.dll 파일의 여러 복사본이 있는지 확인합니다. 컴퓨터에는 이 .dll 파일 복사본이 Oracle 홈 폴더의 \Bin 하위 폴더에 하나만 있어야 합니다. 다른 복사본이 있으면 확장자를 .bak로 바꾼 다음 연결을 다시 테스트합니다. 추가로 발견한 .dll 파일 복사본의 이름을 변경한 후 IIS 서비스를 다시 시작할 수도 있습니다.
  4. 권장되는 Oracle 구성 요소 버전을 실행하고 있는지 확인합니다. 아래의 Microsoft 기술 자료 문서에서 권장되는 버전을 확인할 수 있습니다.

    193225 ASP와 ADO에서 Oracle에 연결하도록 IIS를 구성하는 방법

    패치가 필요하면 Oracles FTP 사이트(ftp://Oracle-ftp.oracle.com)에서 구할 수 있습니다. 패치를 구하여 설치하는 방법에 대한 자세한 내용은 데이터베이스 관리자나 Oracle 기술 지원부에 문의하십시오. Microsoft 기술 지원부는 이러한 Oracle 구성 요소의 구성을 지원하지 않습니다.
  5. Oracle 클라이언트 구성 요소가 IIS 서버에 로컬로 설치되어 있는지 확인합니다. Oracle 구성 요소가 로컬로 설치되어 있지 않으면 다른 응용 프로그램은 제대로 작동할 수도 있지만 ASP 응용 프로그램을 사용할 때 문제가 발생합니다. Microsoft는 이들 구성 요소를 IIS 서버에 설치할 것을 권장합니다. 다른 사용자 정의 구성은 지원되지 않습니다.
  6. IIS 컴퓨터에서 시스템 환경 변수와 PATH 변수를 확인합니다. Oracle 구성 요소가 있는 위치를 가리키는 원격 공유 이름이나 연결된 드라이브가 있으면 제거합니다. 변경 내용이 적용되도록 컴퓨터를 다시 부팅해야 합니다.
  7. IIS 컴퓨터에서 시스템 환경 변수와 PATH 변수를 다시 확인합니다. Oracle 홈 디렉터리의 \Bin 폴더가 PATH 환경 변수에 포함되어 있는지 확인합니다. 기본 설치인 경우 이 경로는 Orant\Bin 폴더입니다. 이번에도 변경 내용이 적용되도록 컴퓨터를 다시 부팅해야 합니다.
  8. Oracle용 Microsoft ODBC 드라이버와 Oracle용 Microsoft OLE DB 공급자를 사용하여 연결을 시도합니다. 아래는 이러한 각 연결을 위한 연결 문자열 구문 예제입니다.
    'Microsoft OLEDB Provider for Oracle
    "Provider=MSDAORA.1;Data Source=Your_TNSNames_Alias;User ID=User;Password=Password"
    
    'Microsoft ODBC for Oracle DSN-Less 
    "Provider=MSDASQL;DRIVER={Microsoft ODBC for ORACLE};UID=User;PWD=Password;Server=Your_TNSNames_Alias"
    
    'Microsoft ODBC for Oracle using a DSN
    "DSN=Your_DSN_Name;UID=User;PWD=Password"
    					
  9. SQL*Net 인증의 설정을 해제합니다. 이를 위해 SQLNET.ora 파일을 편집합니다. 이 구성 파일은 대개 Oracle 홈 폴더의 Network\Admin 하위 폴더에 저장되어 있습니다. 이 파일에 아래와 같은 줄을 추가합니다.
    SQLNET.AUTHENTICATION_SERVICES = (none)
    SQLNET.AUTHENTICATION = (none)
    						
    변경을 마친 후 IIS 서비스를 다시 시작합니다.
  10. IUSR_시스템 이름 계정 및 IWAM_시스템 이름 계정을 Oracle 홈 폴더에 추가합니다. 두 계정에 모든 권한을 부여합니다.

    이렇게 하려면 Windows 탐색기에서 Oracle 홈 폴더를 마우스 오른쪽 단추로 누릅니다. 등록 정보를 누른 다음 보안 탭을 누릅니다. 해당 계정을 추가한 다음 모든 권한을 부여합니다. 컴퓨터를 다시 시작합니다.
이 문서에 나와 있는 다른 공급업체 제품은 Microsoft와 무관한 회사에서 제조한 것입니다. Microsoft는 이들 제품의 성능이나 신뢰성에 관하여 명시적이든 묵시적이든 어떠한 보증도 하지 않습니다.

이 문서에 포함된 다른 공급업체의 연락처 정보는 기술 지원을 받는 데 도움을 주기 위한 것입니다. 이 연락처 정보는 예고 없이 변경될 수 있습니다. Microsoft는 이러한 다른 공급업체 연락처 정보의 정확성을 보증하지 않습니다.




Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.

본 문서의 정보는 다음의 제품에 적용됩니다.

  • Microsoft Data Access Components 1.5
  • Microsoft Data Access Components 2.0
  • Microsoft Data Access Components 2.1
  • Microsoft Data Access Components 2.1 (GA)
  • Microsoft Data Access Components 2.1 SP1
  • Microsoft Data Access Components 2.1 SP2
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.6
Posted by 나비:D
:

원문 : http://support.microsoft.com/default.aspx?scid=kb;KO;193225


요약

본 문서에는 Microsoft Internet Information Server(IIS) 및 Active Server Pages(ASP)와 함께 사용하도록 권장되는 Oracle 클라이언트 소프트웨어 버전과 ODBC 드라이버 버전이 포함되어 있습니다.

응용 프로그램을 위한 안정된 플랫폼을 만들기 위해 올바른 버전을 사용하고 있는지, 그리고 적절한 Oracle 패치가 설치되어 있는지 확인하는 것이 좋습니다.

본 문서에는 ASP 또는 ADO를 Oracle 서버와 연결하기 위해 Internet Information Server를 올바르게 설치하는 방법을 보여주는 단계별 안내 예제도 포함되어 있습니다. 본 문서에서 제공하는 설치 안내는 예제일 뿐이며 모든 Oracle 클라이언트 소프트웨어 설치에 적용되는 것은 아닙니다. 자세한 내용은 Oracle 기술 지원부에 문의하십시오.

권장되는 소프트웨어 버전

권장되는 클라이언트 소프트웨어의 버전은 아래와 같습니다.

Oracle용 Microsoft ODBC 드라이버(Msorcl32.dll) 버전 2.573.2927 이상과 Microsoft Data Access Components 2.0


아래와 같은 버전이나 그 이상의 Oracle 소프트웨어를 권장합니다.
   Oracle 서버       7.3.3.0.0  7.3.4.0.0  8.0.3.0.0  8.0.4.0.0
   -------------     ---------  ---------  ---------  ---------
   RSF               7.3.3.5.3  7.3.4.2.0  8.0.3.2.3  8.0.4.3.2
   SQL*Net           2.3.3.0.5  2.3.4.0.4  N/A        N/A
   Net8              N/A        N/A        8.0.3.0.4  8.0.4.0.3

Oracle 기술 지원부에서 Oracle 업데이트와 패치를 구할 수도 있습니다.

Microsoft Data Access Components(MDAC) 2.0 설치는 아래 웹 사이트에서 구할 수 있습니다.
http://www.microsoft.com/data/mdac2.htm

중요: Oracle 클라이언트 소프트웨어(SQL*Net, Net8)는 Microsoft와 무관한 공급업체인 Oracle이 만드는 제품으로서 Microsoft는 이 제품의 성능과 신뢰성에 대해 어떠한 보증도 하지 않습니다.

추가 정보

아래는 클라이언트에서 Oracle 데이터베이스를 액세스하는 데 필요한 소프트웨어를 설치하기 위한 단계별 설치 예제입니다. 이 예제에서는 SQL*Net 버전 2.3.3.0.0 및 필요한 지원 파일 버전 7.3.3.0.0을 Windows NT 4.0 Server 컴퓨터에 설치합니다.

참고: 최적의 결과를 얻으려면 Windows NT 4.0(SP3)을 새로 설치하고 Internet Information Server를 설치한 컴퓨터에서 아래와 같이 구성하는 것이 좋습니다.

Microsoft Data Access Components 2.0 설치

Custom 설치를 선택한 경우에는 아래의 항목을 선택해야 합니다.
  1. ODBC Components
  2. OLE DB Components
  3. ODBC Driver for Oracle Databases
  4. OLE DB Provider for Oracle Databases
  5. Microsoft ActiveX Data Objects

참고: Microsoft Data Access Components 2.0 설치를 아래 웹 사이트에서 구할 수 있습니다.
http://www.microsoft.com/data/mdac2.htm

필요한 Oracle 지원 파일 및 SQL*Net 설치

Active Server Pages는 ActiveX Data Objects(ADO)를 사용하여 ODBC(Open Database Connectivity)를 통해 Oracle과 통신합니다. 이 연결을 사용 가능하게 하려면 웹 서버에 Oracle의 클라이언트 소프트웨어를 설치합니다.
  1. Oracle 소프트웨어 CD의 루트 디렉터리에서 설치 프로그램을 실행합니다.

    참고: 네트워크 드라이브에서 Oracle 소프트웨어를 설치하려면 네트워크 드라이브를 연결해야 합니다.
  2. 언어를 선택합니다.
  3. 설치 디렉터리를 선택합니다.
설치 디렉터리 경로 정보를 레지스트리에 추가해야 한다는 메시지가 나타납니다. Oracle 설치 프로그램이 자동으로 이 정보를 레지스트리에 추가합니다. 이제 설치 프로그램이 종료되고 컴퓨터를 다시 시작해야 합니다. 위의 단계를 반복합니다.
  1. Oracle7 클라이언트 제품을 선택합니다.
  2. 응용 프로그램 사용자를 선택합니다.
  3. Oracle 설명서를 하드 디스크 드라이브에 설치할 것인지 CD에서 직접 사용할 것인지 묻는 메시지가 나타나면 적절한 위치를 선택합니다.
이제 Oracle 클라이언트 설치 프로그램이 파일을 복사하고 클라이언트 소프트웨어를 구성합니다.

ODBC를 사용하여 Oracle 데이터베이스에 연결하려면 유효한 SQL*Net 연결 문자열을 제공해야 합니다. SQL Net Easy Configuration을 이용하면 Oracle 서버에 연결하기 위해 ODBC 데이터 원본 이름(DSN)에서 참조할 수 있는 별칭을 만들 수 있습니다.

데이터베이스 별칭 추가

  1. SQL*Net Easy Configuration을 실행합니다. 이를 위해 시작을 누르고 프로그램을 가리키고 Oracle for Windows NT를 선택한 다음 SQL Net Easy Configuration을 선택합니다.
  2. Add Database Alias를 선택합니다.
  3. 별칭을 위한 이름(예: 서버 이름)을 입력합니다.
  4. 프로토콜(대개 TCP/IP)을 선택합니다.
  5. 호스트 컴퓨터 및 데이터베이스 인스턴스를 지정합니다. 이것은 Oracle 서버 및 그 서버에 있는 데이터베이스의 이름입니다. 이 값들을 모르면 Oracle 데이터베이스 관리자(DBA)에게 문의하십시오.
  6. 설정을 확인합니다.
  7. Exit SQL*Net Easy Configuration을 선택합니다.

시스템 DSN 만들기

  1. 웹 서버의 제어판에서 32비트 ODBC Administrator(관리자)를 사용하여 시스템 DSN을 추가합니다.
  2. Oracle용 Microsoft ODBC 버전 2.573.2927을 선택합니다.
  3. Microsoft ODBC for Oracle 대화 상자에서 필요한 정보를 입력합니다. 사용자 이름은 Oracle DBA가 제공하며 "서버"는 SQL Net Easy Configuration에서 만든 별칭입니다.
       데이터 원본 이름: OracleDSN
       설명            : <서버 이름>에서 Oracle 서버 테스트(옵션)
       사용자 이름     : <Oracle DBA가 제공>
       서버            : <SQL*Net Easy Configuration 별칭>
    
    
옵션들을 기본값으로 둡니다.

ASP에서 Oracle 서버에 연결

아래와 같은 코드를 포함하는 Active Server Page를 만들어 Oracle 연결을 테스트할 수 있습니다. 연결 문자열은 유효한 사용자 ID와 암호를 가져야 하고 SQL 문은 유효한 테이블을 참조해야 합니다.
   <%@ Language=VBScript %>
   <html>
   <head>
   <title>Oracle Test</title>
   </head>
   <body>
   <center>
   <%
     Set objConn = Server.CreateObject("ADODB.Connection")
     objConn.Open "dsn=OracleDSN;uid=userid;pwd=password;"

     Set objRs = objConn.Execute("SELECT * FROM DEMO.EMPLOYEE")

     Response.Write "<table border=1 cellpadding=4>"
     Response.Write "<tr>"

     For I = 0 To objRS.Fields.Count - 1
       Response.Write "<td><b>" & objRS(I).Name & "</b></td>"
     Next

     Response.Write "</tr>"

     Do While Not objRS.EOF
       Response.Write "<tr>"

       For I = 0 To objRS.Fields.Count - 1
         Response.Write "<td>" & objRS(I) & "</td>"
       Next

       Response.Write "</tr>"

       objRS.MoveNext
     Loop

     Response.Write "</table>"

     objRs.Close
     objConn.Close
   %>
   </center>
   </body>
   </html>

Oracle과 IIS에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.

189410: HOWTO: Enable or Disable Connection Pooling in IIS 4.0

178391: PRB: Oracle TNS: Authentication Service Initialization Error

참조

60781: Hardware and Software Third-Party Vendor List, L-P

본 문서의 정보는 다음의 제품에 적용됩니다.

  • Microsoft Internet Information Server 4.0
Posted by 나비:D
:
오라클에서 지원하는 DUAL 테이블 이라는 놈이 신기해서  곰곰히 생각해 보다가..
조금 정리해 봤습니다.
 
 
- DUAL테이블은 데이터 딕셔너리와 함께
Oracle에 의해 자동으로 생성되는 테이블 입니다.

- DUAL테이블은
사용자 SYS의 스키마에 있지만 모든 사용자는 DUAL이라는 이름으로 엑세스 할 수 있습니다.

- DUAL테이블은 VARCHAR2(1)으로 정의된 DUMMY라는 하나의 열이 있으며 값을 가지는 하나의 행도 포함되어 있습니다.

- DUAL테이블은
사용자가 계산이나 사용자 함수등을 실행하고자 할 경우에 유용 합니다.
 
 
SQL> DESC DUAL;
 이름                                      널?      유형
 ------------------------- -------- ---------------
 DUMMY                                         VARCHAR2(1)
 
 
 
SQL> SELECT dummy FROM dual;
 
DU
--
X
 
 
 
몇가지 예제들..
 
SQL>SELECT count(*) FROM dual;
 
  COUNT(*)
----------
         1
 
 
SQL>SELECT 123456789 FROM dual;
 
 
 123456789
----------
 123456789
 
 
   
SQL>SELECT ROUND(5*(4+5)/3, 1) xx FROM dual
 
        XX
----------
        15
 
 
 
 
더 자세한 내용은 아래 링크를 참고해 보세용..   근데 아쉽게도 영문이네용..

링크참조
Posted by 나비:D
:

날짜 및 시간을 조작 하는 함수들 이다.

ADD_MONTHS(date, n) : date에 n달을 추가한다. date값을 반환하며 n은 정수이다.

LAST_DAY(date) : date를 포함하는 달의 마지막 날을 반환, date값을 반환 한다.

MONTHS_BETWEEN(date1, date2) : date1과 date2의 차이를 달 수로 표현, 정수를 반환하며 차이가 1개월 미만인 경우는 1보다 작은 소수를 반환한다.  즉 (date1 – date2)를 나타낸 것이라고 생각하면 된다.

NEXT_DAY(date, c) : 날짜 date를 포함해서 이후 나타나는 첫번째 c요일을 반환 한다.

ROUND(date, fmt) : date를 지정한 포맷 형식에 맞춰 표시하는데 반올림 한다.

SYSDATE : 해당 시스템의 현재 날짜 및 시간을 반환

SYSTIMESTAMP : 오라클 9i에서 추가 되었으며 SYSDATE와 마찬가지로 해당 시스템의 현재 날짜 및 시간을 반환 한다. TIMESTAMP는 DATETIME의 확장이며 보다 정교한 시간을 나타낼 수 있다.
TRUNC(date, fmt) : date를 지정한 포맷 형식에 맞춰 표시하는데 절삭 한다.

 

 

 

[ROUND, TRUNC함수의 fmt 문자열]
YYYY , YYY , YY , Y , YEAR : 년도의 첫날(7월1일부터 반올림)
Q : 분기의 첫날(분기의 두번째 달 16일부터 반올림)
MONTH , MON, MM : 월의 첫날(16일부터 반올림)
W : 월의 첫날과 같은 요일
DDD, DD : 일(정오를 지나면 반올림)
DAY, DY, D : 주의 첫 요일(수요일 정오가 지나면 반올림)
HH, HH12, HH24 : 시단위
MI : 분단위

 현재 시스템의 시간 및 날짜를 확인
SQL> select sysdate, systimestamp from dual;

SYSDATE            SYSTIMESTAMP
------------    ---------------------------
03/10/01           03/10/01 10:52:28.243000 +09:00

 “2003년12월1일”에 3개월을 더하면 어떤 결과가 나올까?
SQL> select add_months('03/12/01', 3) from dual;

ADD_MONT
--------
04/03/01

 “2003년10월1일을 포함하는 달의 마지막 날을 반환 하는 예문 이다.
SQL> select last_day('03/10/01') from dual;

LAST_DAY
--------
03/10/31        

SQL> select months_between('04/01/01','05/01/01') from dual;

MONTHS_BETWEEN('04/01/01','05/01/01')
-------------------------------------
-12

SQL> select months_between('04/01/01','05/01/30') from dual;

MONTHS_BETWEEN('04/01/01','05/01/30')
-------------------------------------
-12.935484

 “2003년 10월1일을 포함하여 다음 일요일을 구하는 예문이다.
SQL> select next_day('03/10/01','일요일')from dual;

NEXT_DAY
--------
03/10/05

  SYSDATE를 그냥 출력하면 날짜만 나오게 된다. 만약 시간도 확인을 하기 위해서는 to_char 와 같은 변환 함수를 이용하여 문자로 변환을 시켜 줘야 한다.
SQL> select sysdate, to_char(sysdate,'yyyy.mm.dd hh24:mi:ss') from dual;

SYSDATE  TO_CHAR(SYSDATE,'YY
-------- -------------------
04/02/17 2004.02.17 15:25:53

 현재 날짜를 2004년2월17일 오후15시25분 정도라면 가정 하고 다음 예문을 이해 하자. MONTH는 월의 첫날을 출력하는데 17일 이므로 월은 반올림 하면 다음 월인 3월1일이 출력된다. 또한 DAY의 경우 주의 첫요일을 출력하는데 2월17일은 화요일 이므로 반올림 대상이 아니다. 즉 주의 첫요일인 2월15일이 출력 되는 것이다.

SQL> select round(sysdate, 'MONTH'), round(sysdate, 'DAY') from dual;

ROUND(SY ROUND(SY
-------- --------
04/03/01 04/02/15

 EMP 테이블에서 “SMITH” 사원의 오늘(2004년2월17일 이라고 가정)을 기준으로 입사한지 몇 개월째 인지 파악 하려고 한다.(16째일 부터는 1개월로 반올림하는 예문이다.)

SQL> select ename, hiredate "입사일", sysdate "기준일",
  2         round(months_between(sysdate, hiredate), 0) "입사개월수"
  3  from emp
  4  where ename = 'SMITH';

ENAME      입사일   기준일   입사개월수
---------- -------- -------- ----------
SMITH      80/12/17 04/02/17        278

 아래는 trunc를 사용하는 예문이다. 위의 예문에서는 현재 날짜가 17일 이므로 반올림이 되었지만 절삭을 하면 월의 첫날은 2월1일이 된다.

SQL> select trunc(sysdate, 'MONTH'), trunc(sysdate, 'DAY') from dual;

TRUNC(SY TRUNC(SY
-------- --------
04/02/01 04/02/15

 일단위로 보면 정오를 지났으므로 일자가 반올림 된다.
SQL> select round(sysdate, 'DD') from dual;

ROUND(SY
--------
04/02/18

[날짜 산술 연산]
date + number  date
date – number  date
date – date  정수
date + number/24  date

SQL> select systimestamp from dual;
SYSTIMESTAMP
--------------------------------------------------------------------
04/02/18 06:49:35.008000 +09:00

SQL> select sysdate +60 "오늘부터 60일 후" from dual;
오늘부터
--------
04/04/18

SQL> select systimestamp + 60 "오늘부터 60일 후"  from dual;
오늘부터
--------
04/04/18

 아래 예문은 1970년 1월1일부터 오늘까지의 일수차이를 반환하는 예문이다.

SQL> select trunc(sysdate - to_date('19700101','yyyymmdd')) from dual;

TRUNC(SYSDATE-TO_DATE('19700101','YYYYMMDD'))
---------------------------------------------
                                        12466

Posted by 나비:D
:

/*--------------------------------------------------------------------------------*/
/*  ★ [참고] Oracle DB에서 특정 컬럼명이 들어 있는 테이블 목록 Sql
----------------------------------------------------------------------------------*/

Select A.table_name, B.comments
  From sys.all_tab_columns  A,
    sys.all_tab_comments B
 Where A.column_name = 'ZZZZZZ'  -- 여기 컬럼명 (대문자)
  And A.table_name = B.table_name
;

Select * from all_tables Where owner = 'ZZZZZZ';

Select * from all_tab_comments Where owner = ZZZZZZ;

Posted by 나비:D
:

select *
from
(

SELECT ALL_TAB_COMMENTS.TABLE_NAME,  
         ALL_TAB_COMMENTS.COMMENTS 
    FROM ALL_TAB_COMMENTS 
   WHERE ( ALL_TAB_COMMENTS.OWNER = 'SCOTT' )
ORDER BY  ALL_TAB_COMMENTS.COMMENTS  , ALL_TAB_COMMENTS.TABLE_NAME
) a,

(

SELECT A.TABLE_NAME,  
       A.COLUMN_NAME,  
       A.COMMENTS  ,
   B.COLUMN_ID ID,
   A.COMMENTS||'  '||DECODE(C.CONSTRAINT_NAME,NULL,'','PK') PNAME,
      DECODE(C.CONSTRAINT_NAME,NULL,'','PK') PK
FROM   ALL_COL_COMMENTS A ,
       ALL_TAB_COLUMNS B ,      
(SELECT t.CONSTRAINT_NAME ,  s.TABLE_NAME , s.COLUMN_NAME
FROM
(SELECT CONSTRAINT_NAME
     FROM   ALL_CONSTRAINTS
     WHERE    CONSTRAINT_TYPE = 'P' ) t ,
(SELECT  CONSTRAINT_NAME ,
         TABLE_NAME,COLUMN_NAME
FROM    ALL_CONS_COLUMNS  ) s
WHERE t.CONSTRAINT_NAME = s.CONSTRAINT_NAME ) C
WHERE  ( A.OWNER = B.OWNER ) AND
       ( A.TABLE_NAME = B.TABLE_NAME ) AND
       ( A.COLUMN_NAME = B.COLUMN_NAME ) AND
   A.TABLE_NAME = C.TABLE_NAME(+)  AND
       A.COLUMN_NAME = C.COLUMN_NAME(+)
ORDER BY A.TABLE_NAME,B.COLUMN_ID
) b

where  a.TABLE_NAME = b.TABLE_NAME

Posted by 나비:D
:

BLOG main image
by 나비:D

공지사항

카테고리

분류 전체보기 (278)
Programming? (0)
---------------------------.. (0)
나비의삽질 (5)
Application (177)
SQL (51)
Oracle (21)
Mysql (9)
MSSQL (16)
Web (27)
etc. (14)
Omnia (0)
---------------------------.. (0)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

달력

«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Total :
Today : Yesterday :