BLOG NOTICE TAG CLOUD GUESTBOOK
RSS
CATEGORY

0
Comments

0
Trackbacks
// tod유저 ?LOB 타입 조회하기
select owner, table_name, column_name, data_type from dba_tab_columns
where data_type like '%LOB'
and owner = 'TOD'
2009/12/03 14:18 2009/12/03 14:18
0
Comments

0
Trackbacks
총 4가지
WHERE REGEXP_LIKE(first_name, '^Ste(v|ph)en$')
REGEXP_REPLACE(country_name, '(.)', '\1 ')
REGEXP_INSTR(email, '\w+@\w+(\.\w+)+') > 0
REGEXP_SUBSTR('oracle', 'o r a c l e', 1, 1, 'x')


예) MODULE_SSO.getLoginName() 함수에서 파라미터 값이 있는 넘을 찾을때

WITH temp_t AS (
    SELECT 'ts, MODULE_SSO.getLoginName()' AS jscript FROM DUAL
    UNION ALL
    SELECT 'ts, MODULE_SSO.getLoginName(id)' AS jscript FROM DUAL
)
SELECT * FROM temp_t WHERE REGEXP_INSTR(jscript, 'MODULE_SSO\.getLoginName\(.+\)') > 0


http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14251/adfns_regexp.htm#ADFNS1003 (New Window)
2009/10/21 14:27 2009/10/21 14:27
TAG
0
Comments

0
Trackbacks

[oracle] DBMS_LOB

2009/07/21 15:55 -  dev.log/db
INSTR
    DBMS_LOB.INSTR
(A.CONTENT,'찾기') > 0

2009/07/21 15:55 2009/07/21 15:55
0
Comments

0
Trackbacks

오라클 10g에서 테이블을 삭제 후 테이블 목록에 보면 BIN$????? 로 시작하는 테이블들이 생기게 된다.
무언가 했더니 휴지통 개념이라고 함.. ㅎ

테이블 삭제시 휴지통을 만들지 않고 바로 삭제할 때 옵션으로 설정 가능하다.
DROP TABLE 스키마.테이블명 [CASCADE CONSTRAINTS] [PURGE]

관련 명령어
sql> purge recyclebin;      // 휴지통 비우기
sql> show recyclebin;      // 휴지통 보기
sql> flashback table 테이블명 to before drop;      // 삭제된 테이블 살리기

2009/07/16 10:38 2009/07/16 10:38
TAG
0
Comments

0
Trackbacks

-- 데이터베이스 파라미터정보 확인
select * From nls_database_parameters;


-- 테이블스페이스 삭제
-- 테이블스페이스가 오프라인으로 상태에서 명령을 내리길 권장

DROP TABLESPACE unicorn_temp
INCLUDING CONTENTS CASCADE CONSTRAINTS;

-- DATA TABLESPACE 생성
CREATE TABLESPACE unicorn_data
DATAFILE 'D:\oracle\oradata\unicorn_data.TBL' SIZE 100M
AUTOEXTEND ON NEXT 10M MAXSIZE 500M
DEFAULT STORAGE
      (INITIAL     4K
              NEXT        128K
              MINEXTENTS  1
              PCTINCREASE 0);

-- INDEX TABLESPACE 생성
CREATE TABLESPACE unicorn_index
DATAFILE 'D:\oracle\oradata\unicorn_index.TBL' SIZE 100M
AUTOEXTEND ON NEXT 10M MAXSIZE 500M
DEFAULT STORAGE
      (INITIAL     4K
              NEXT        128K
              MINEXTENTS  1
              PCTINCREASE 0);

-- TEMP TALBESPACE 생성
CREATE TEMPORARY TABLESPACE unicorn_temp
TEMPFILE 'D:\oracle\oradata\unicorn_temp.TBL' SIZE 100M
AUTOEXTEND ON NEXT 10M MAXSIZE 500M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;

-- 사용자 생성
CREATE USER unicorn IDENTIFIED BY unicorn
DEFAULT TABLESPACE unicorn_data
TEMPORARY TABLESPACE unicorn_temp;

-- 사용자 비밀번호 변경
ALTER USER unicorn IDENTIFIED BY unicorn;

-- 권한 설정
-- 생성한 사용자에게 자신의 schema에서 테이블등을 만들 권한과 자원을 사용할 권한을 준다.
-- GRANT RESOURCE, CONNECT TO MIDAN;
-- DBA 권한을 준다.
GRANT DBA TO unicorn;

-- datafile 추가
ALTER TABLESPACE unicorn_data
ADD DATAFILE 'D:\oracle\oradata\unicorn\unicorn_dat02.dbf' SIZE 2048M;
/*
alter tablespace unicorn_data
  add datafile 'D:\oracle\oradata\unicorn\unicorn_dat02.dbf' size 50M
  autoextend on next 20M maxsize 100M

추후에 datafile에 자동증가만 추가하려면
alter database datafile 'D:\oracle\oradata\unicorn\unicorn_dat02.dbf' autoextend on next 20M maxsize 100M
계속 증가하도록 하려면 100M 대신 unlimited 사용 (32G이상 확장되지 않음)
*/

-- datafile 확인
select * from DBA_DATA_FILES;

-- 등록되어 있는 사용자보기
SELECT * FROM ALL_USERS;

-- 사용자 삭제
-- ※ CASCADE를 사용하게 되면 사용자 이름과 관련된 모든 데이터베이스 스키마가 데이터 사전으로부터
--    삭제되며 모든 스키마 객체들 또한 물리적으로 삭제 됩니다.

DROP USER scott CASCADE;

--IMPORT, EXPORT 권한을 준다.
GRANT EXP_FULL_DATABASE, IMP_FULL_DATABASE TO unicorn;

/*
--시스템 권한 부여
GRANT CREATE USER, ALTER USER, DROP USER TO scott WITH ADMIN OPTION.
--*설명 : scott 사용자에게 사용자를 생성, 수정, 삭제 할 수 있는 권한을 부여하고,
--         scott 사용자도 다른 사용자에게 그 권한을 부여 할 수 있습니다.

--시스템 권한 박탈
REVOKE CREATE USER, ALTER USER, DROP USER FROM scott
--*설명 : scott 사용자에게 부여한 생성, 수정, 삭제 권한을 회수합니다,
*/

--사용자조회
SELECT username, default_tablespace, temporary_tablespace FROM DBA_USERS;
SELECT * FROM ALL_USERS;

-- 테이블스페이스조회
SELECT * FROM DBA_TABLESPACES;


% 그외 TIP

more..


 

출처 : http://ilus.tistory.com/93
2009/05/07 10:08 2009/05/07 10:08
0
Comments

0
Trackbacks

Insert

2009/05/03 14:20 -  dev.log/db
INSERT INTO backup_table_name SELECT * FROM table_name;
: 테이블 스키마 정보가 같을때


CREATE TABLE table_name SELECT * FROM table_name;
: 테이블 생성 복사(?)
2009/05/03 14:20 2009/05/03 14:20
TAG ,
0
Comments

0
Trackbacks

INDEX 정보 조회 하기

SELECT indexes.TABLE_NAME, indexes.INDEX_NAME, indexes.INDEX_TYPE,
             columns.COLUMN_POSITION, columns.COLUMN_NAME, columns.DESCEND
FROM USER_INDEXES indexes, USER_IND_COLUMNS columns
WHERE indexes.INDEX_NAME = columns.INDEX_NAME
    AND indexes.TABLE_NAME like '테이블명'
ORDER BY TABLE_NAME, INDEX_NAME, COLUMN_POSITION

테이블의 정보를 얻어온다.

SELECT tbl.TABLE_NAME, comments.COMMENTS, tbl.TABLESPACE_NAME
FROM USER_TABLES tbl, USER_TAB_COMMENTS comments
WHERE tbl.TABLE_NAME = comments.TABLE_NAME
ORDER BY tbl.TABLE_NAME

컬럼 정보를 얻어온다.

SELECT tab_columns.TABLE_NAME,
    tab_columns.COLUMN_ID,
    tab_columns.COLUMN_NAME,
    (case
      when DATA_TYPE like '%CHAR%' then DATA_TYPE || '(' || DATA_LENGTH || ')'
      when DATA_TYPE = 'NUMBER' and DATA_PRECISION > 0 and DATA_SCALE > 0 then DATA_TYPE || '(' || DATA_PRECISION || ',' || DATA_SCALE || ')'
      when DATA_TYPE = 'NUMBER' and DATA_PRECISION > 0 then DATA_TYPE || '(' || DATA_PRECISION || ')'
      when DATA_TYPE = 'NUMBER' then DATA_TYPE
      else DATA_TYPE
    end) DATA_TYPE,
    decode(NULLABLE, 'N', 'Not Null', 'Null') NULLABLE,
    DATA_DEFAULT,
    (
      SELECT decode(
        sum((
          SELECT decode(CONSTRAINT_TYPE, 'P', 1, 'R', 2, 0)
          FROM USER_CONSTRAINTS
          WHERE CONSTRAINT_NAME = cons_columns.CONSTRAINT_NAME
        ))
        , 1, 'PK', 2, 'FK', 3, 'PK, FK', '')
      FROM USER_CONS_COLUMNS cons_columns
      WHERE TABLE_NAME = tab_columns.TABLE_NAME AND COLUMN_NAME = tab_columns.COLUMN_NAME
    ) CONSTRAINTS,
    comments.COMMENTS
FROM USER_TAB_COLUMNS tab_columns, USER_COL_COMMENTS comments
WHERE tab_columns.TABLE_NAME = comments.TABLE_NAME(+) AND tab_columns.COLUMN_NAME = comments.COLUMN_NAME(+)
  AND tab_columns.TABLE_NAME = '테이블명'
ORDER BY COLUMN_ID
출처 : http://cafe.naver.com/litave/415
2009/03/27 17:30 2009/03/27 17:30
0
Comments

0
Trackbacks

[oracle] clob replace

2009/03/17 14:55 -  dev.log/db

-- 1) clob src - the CLOB source to be replaced.
-- 2) replace str - the string to be replaced.
-- 3) replace with - the replacement string.

FUNCTION replaceClob (
srcClob IN CLOB,
replaceStr IN VARCHAR2,
replaceWith IN VARCHAR2)
RETURN CLOB IS

vBuffer    VARCHAR2 (32767);
l_amount   BINARY_INTEGER := 32767;
l_pos      PLS_INTEGER := 1;
l_clob_len PLS_INTEGER;
newClob    CLOB := EMPTY_CLOB;
   
BEGIN
  -- initalize the new clob
  dbms_lob.createtemporary(newClob,TRUE);
   
  l_clob_len := dbms_lob.getlength(srcClob);

  WHILE l_pos < l_clob_len
  LOOP
    dbms_lob.read(srcClob, l_amount, l_pos, vBuffer);

    IF vBuffer IS NOT NULL THEN
      -- replace the text
      vBuffer := replace(vBuffer, replaceStr, replaceWith);
      -- write it to the new clob
      dbms_lob.writeappend(newClob, LENGTH(vBuffer), vBuffer);
    END IF;
    l_pos := l_pos + l_amount; 
  END LOOP;
   
  RETURN newClob;
EXCEPTION
  WHEN OTHERS THEN
    RAISE;
END;
/

출처 : http://blog.naver.com/ozdamby/17898816 (New Window)
 

2009/03/17 14:55 2009/03/17 14:55
0
Comments

0
Trackbacks

[Oracle] Merge문

2009/02/02 14:56 -  dev.log/db

MERGE INTO meber_t T1
USING DUAL ON (T1.user_id='alseom')
WHEN MATCHED THEN
    UPDATE
       SET email='alseom@alseom.co.kr', mobile='016-xxx-xxxx'
WHEN NOT MATCHED THEN
    INSERT (email, mobile)
    VALUES ('alseom@alseom.co.kr', '016-xxx-xxxx')

if(user_id=='alseom')
    update email, mobile
else
    insert email, mobile

2009/02/02 14:56 2009/02/02 14:56
TAG ,
0
Comments

0
Trackbacks

[oracle] 시퀀스

2009/01/29 16:04 -  dev.log/db
시퀀스 만들기
create sequence SEQ_TBL
     increment by 1   --  증가값
     start with 1        --  초기값
     nomaxvalue       -- 최대값 제한 없음
     nocycle            
     nocache;
시퀀스 사용
select
    SEQ_TBL.CURRVAL,   -- 현재 시퀀스 값
    SEQ_TBL.NEXTVAL    -- 다음 시퀀스 값
from dual;


시퀀스 삭제
drop sequence SEQ_TBL;
2009/01/29 16:04 2009/01/29 16:04
TAG