승적이익강 (勝敵而益强)

오라클팁 본문

Database

오라클팁

그녕이 2008. 9. 19. 12:15

/********************************************************/
  오라클 시작과 종료
/********************************************************/
오라클 BIN 디렉토리로 이동
svrmgrl            : 실행
connect internal   : 접속
startup            : 시작
shutdown abort     : 종료


/********************************************************/
  오라클 처음 구축
/********************************************************/
- TABLESPACE 작성
    CREATE TABLESPACE TS_MYDB_DATA01 DATAFILE 'C:\ORACLE\ORADATA\ORADB\TS_MYDB_DATA01.DBF' SIZE 100M
    DEFAULT STORAGE (INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 50);
   
    CREATE TABLESPACE TS_MYDB_IDX01 DATAFILE 'C:\ORACLE\ORADATA\ORADB\TS_MYDB_IDX01.DBF' SIZE 50M
    DEFAULT STORAGE (INITIAL 131072 NEXT 131072 MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0);

 

- TABLESPACE SIZE 변경
    ALTER TABLESPACE TS_MYDB_IDX01 ADD DATAFILE 'C:\ORACLE\ORADATA\ORADB\TS_MYDB_IDX02.DBF' SIZE 100M;
    ALTER DATABASE DATAFILE 'C:\ORACLE\ORADATA\ORADB\TS_MYDB_IDX01.DBF' RESIZE 500M

- TABLE의 TABLESPACE 이동
    ALTER TABLE EMP MOVE TABLESPACE TS_NAME;

   

- SCHEMA 작성
    CREATE USER goodman IDENTIFIED BY jj1004
           DEFAULT TABLESPACE ta_mydb_data01
           TEMPORARY TABLESPACE temp;
   
    User password change : alter user goodman identified by jj1004
   
- 권한부여
    접근권한:GRANT connect,resource TO goodman; connect,resource 라는 Role를 부여한다
/********************************************************/   

@====>> 오라클 JOB에 관한 작업
 SELECT * from user_jobs
 SELECT * from dba_jobs
    select * from sys.v_$parameter where name like '%job%'
   
    재실행
    begin
        dbms_job.run(203);
    end;
   
    delete SYS.DBA_JOBS  where job  = ''
    select * from SYS.DBA_JOBS
   
    variable jobno number;
    begin
        dbms_job.submit(:jobno, 'sp_common_code;', trunc(sysdate) + 1 + 2.5/24, 'trunc(sysdate) + 7 + 2.5/24');
        --              매개변수  plsql명          시작일          day = 02:30    다음 시작일    day 
    end;
    /

@====>> 다른 DB접속시 링크확인
    SELECT * FROM user_DB_LINKS       
    eworks.k_user@eworks21

    CREATE  DATABASE LINK COMMON(db_link)
    CONNECT TO COMMON(username) IDENTIFIED BY COMMON(password)
    USING 'common'(tnsname.ora); 

    drop DATABASE LINK EWORKS21.US.ORACLE.COM
    init.ora : global_names를 true로 하면 dblink의 이름과 접속하는 db의 이름이 동일하도록 요구한다.
   
@====>> SYNONYM 작업
    QE로 접속해서 권한을 준다.
        GRANT  SELECT  ON qez020 TO eworks
    개발 서버에서 시노미를 만든다.
        CREATE SYNONYM qez020  FOR qe.qez020@dbsvr03
       
@====>> Create Table Ex
    CREATE TABLE INS_INFO (
        PJT_SEQ_NO            VARCHAR2(6),
        PO_NO                 VARCHAR2(30),
        VEND_NO               VARCHAR2(10),
        INS_LEVEL             VARCHAR2(3),
        VP_STATUS             CHAR(3),
        CONTACT_PERSON        VARCHAR2(30),
        CON_TEL_NO            VARCHAR2(25),
        CON_FAX_NO            VARCHAR2(25),
        CON_EMAIL             VARCHAR2(50),
        CON_PLACE             VARCHAR2(100),
        INS_STATUS            VARCHAR2(2000),
        NON_STATUS            VARCHAR2(2000),
        APP_MAX_NO            VARCHAR2(3),
        DSGN_DEPT             VARCHAR2(6),
        ORIGIN_EMP_ID         CHAR(5),
        ORIGIN_DATE           CHAR(8),
        WRITED_DATE           CHAR(8),
          CONSTRAINT INS_INFO_PK               // pk 선언
          PRIMARY KEY (PJT_SEQ_NO, PO_NO)
            USING INDEX
             TABLESPACE BUYDBIDX               //인덱스가 저장될 tablespace
    );

@====>> Table 생성과 동시에 데이터 복사
    create table 테이불명 as select * from 테이불명

@====>> Table 수정
    alter table ins_ncr_main add app_rev_no varchar2(3)
    alter table ins_ncr_main modify app_rev_no char(3)
   
@====>> P_K (제약조건)수정
  alter table ins_ncr_main drop constraint INS_NCR_MAIN_PK    //삭제

  alter table ins_ncr_main add CONSTRAINT INS_INFO_PK             // 추가
                               PRIMARY KEY (PJT_SEQ_NO, PO_NO)
                               USING INDEX
                               TABLESPACE BUYDBIDX

@====>> Create Index
    create index K_OBJECT_IDX01 on K_OBJECT (S_ROOT_ID)
        tablespace EWORKS_IDX
        pctfree 10
        initrans 2
        maxtrans 255
        storage
        (
            initial 1M
            next 1M
            minextents 1
            maxextents unlimited
            pctincrease 0
        );

@====>> DB LOCK 확인
    select *
    from   sys.v_$locked_object a,
           dba_objects          b
    where  b.object_id          = a.object_id
   
@====>> 오라클 속성 정의를 본다.
    SELECT * FROM dict
    SELECT * FROM sys.v_$parameter

@====>> 제약조건 검색
    select * from user_constraints where table_name = 'EPMD013' 

@====>> 소스보기
    SELECT * FROM USER_SOURCE WHERE NAME = 'SF_IPS_PASS_DECODE'

@====>> User Object List
    select * from user_objects where object_type = 'FUNCTION'
    SELECT * FROM user_objects WHERE status = 'INVALID'

@====>> HINT 사용
    SELECT /*+ INDEX_DESC(b CO_SAMPLE_FILE_PK) USE_NL(a b) */  
   
@====>> Oracle Connection String
    connStr = "Provider=MSDAORA.1;Persist Security Info=False;User ID=eworks;Password=eworks;Data Source=eworks;"


/********************************************************/
                 PL / SQL
/********************************************************/

@====>> EXCEPTION  처리
    EXCEPTION
        WHEN NO_DATA_FOUND THEN    --// NO DATA일 경우 ''처리
         vMaxNcr_date := '';

    EXCEPTION
        WHEN  OTHERS  THEN   --에러가 있다면...     
            t_SqlErrm   :=  '-1';  --//임의의 숫자를 반환하는 경우
            t_SqlErrm   :=  SQLCODE || SQLERRM;  --//ERR CODE와 ERR DESCRIPTION를 반환하고자 할때 사용
            RAISE  Exit_Process;

@====>> OUTPUT변수 선언 및 PROCEDURE 호출
    variable aa varchar2(20)
    execute SP_INSP_INDEX_SEL('09006','11','11',:aa,:bb,:cc);
    begin SP_INSP_INDEX_SEL('09006','11', '11',:AA,:BB,:CC); end;

@====>> PROCEDURE내에서 변수값 확인해 보기
    dbms_output.put_line(변수);      --> 프로시져내서...
    set serveroutput on              --> dbms_output package을 사용하기 전에..먼저 실행

@====>> Returning Value
    인서트후 값을 받는다.

@====>> EXECUTE IMMEDIATE v_SQL;
    스트링변수의 쿼리문을 직접실행한다.


'Database' 카테고리의 다른 글

열을 행으로 변환  (0) 2008.09.19
25가지 SQL작성법  (0) 2008.09.19
순위 - RANK, DENSE_RANK  (0) 2008.09.19
누적곱  (0) 2008.09.19
누적 평균값  (0) 2008.09.19
Comments