z

BLOG ARTICLE oracle | 9 ARTICLE FOUND

  1. 2011.09.16 Oracle View Source(Script) 확인
  2. 2009.09.08 oracle connect by
  3. 2009.05.14 Oracle Sample Scheme 설치
  4. 2009.05.13 iBatis DDL 사용
  5. 2009.05.12 Oracle DML


1.프로시저 생성 소스 확인

select TEXT from USER_SOURCE 

 
2. 뷰 생성 소스 확인

2.1 임시테이블 생성

create table tmp (name varchar2(30), text clob); 

2.2 Insert

insert into tmp (name, text) select name, to_lob(text) from user_views;

2.3 확인

select * from tmp; 

3. 테이블 목록 및 컬럼 목록 조회

select * from tab;

select COLUMN_NAME, DATA_TYPE, DATA_LENGTH, NULLABLE
  from USER_TAB_COLUMNS
where TABLE_NAME = 'table name'

4. 테이블의 컬럼에 걸린 제약 확인 및 제약 걸린 테이블 조회.

select TABLE_NAME, COLUMN_NAME,  CONSTRAINT_NAME
  from USER_CONS_COLUMNS 
where TABLE_NAME = UPPER('table name') 
    and COLUMN_NAME = UPPER('column name'); 

select TABLE_NAME, COLUMN_NAME,  CONSTRAINT_NAME
  from ALL_CONS_COLUMNS 
 where CONSTRAINT_NAME = UPPER('constraint name');

5. 컬럼명으로  테이블 및 설정확인

select TNAME, COLNO, CNAME, COLTYPE, WIDTH, NULLS, DEFAULTVAL 
  from COL 
 where CNAME = UPPER('column name')

6. 테이블 사이즈 확인

select greatest(4, ceil(NUM_ROWS/ ((ROUND(((1958-(INI_TRANS*23))* 
          ((100-PCT_FREE)/100))/AVG_ROW_LEN)))) * 2048)  AS KB
  from USER_TABLES 
where TABLE_NAME = UPPER('table name'); 

7. 유저 오브젝트 확인

select OBJECT_NAME, OBJECT_TYPE, STATUS
   from USER_OBJECTS
 
AND

oracle connect by

2009. 9. 8. 19:24

PROTECTED ARTICLE. TYPE THE PASSWORD.

* Sample Scheme Install

> sqlplus /nolog
sql>conn sys/패스워드@SERVICENAME OR SID [as sysdba]

1) scott 유저의 생성 및 권한부여

SQL> create user scott identified by tiger
2 default tablespace users
3 temporary tablespace temp;

SQL > grant connect , resource to scott;

2) Sample Table Install ($ORACL_HOME/sqlplus/demo 설치 스크립트 저장소)

> sqlplus scott/tiger

SQL>@?/sqlplus/demo/demobld

3) 설치확인
> sqlplus scott/tiger

SQL> select * from tab;

AND

iBatis DDL 사용

개발/DB 2009. 5. 13. 16:54


* com.ibatis.dao.client.template.SqlMapDaoTemplate.queryForObject("service.createSeqTable");  // Query실행 시.

* Object가 이미 존재할 경우 ORA-00955

* Dynamic Query를 이용해 좀더 활용 가능할 듯.

* 아래는 일자별 시퀀스 테이블 생성과, 시퀀스 조회 함수 생성 예

* Server App 초기화 시 사용해 볼 수 있을듯.

<statement id="createSeqTable">
 CREATE TABLE NET_DAILYSEQ ( FDTSEQ CHAR(8), FSEQ NUMBER)
</statement>

<statement id="createSeqFunction">

 CREATE OR REPLACE FUNCTION GET_DAILYSEQ RETURN NUMBER IS
 PRAGMA AUTONOMOUS_TRANSACTION;
 vFseq NUMBER;
 BEGIN

    vFseq := -1;

     SELECT  
      NVL(MAX(FSEQ),0)+1 AS FSEQ into vFseq
     FROM NET_DAILYSEQ
     WHERE
  FDTSEQ = TO_CHAR(SYSDATE,'YYYYMMDD');
   
    
       MERGE INTO NET_DAILYSEQ A
       USING
  (
      SELECT NVL(MAX(FDTSEQ),TO_CHAR(SYSDATE,'YYYYMMDD')) FDTSEQ, vFSEQ as FSEQ
      FROM NET_DAILYSEQ
      WHERE FDTSEQ = TO_CHAR(SYSDATE,'YYYYMMDD')
     
  ) B
    ON (A.FDTSEQ = B.FDTSEQ)
       WHEN MATCHED THEN
     UPDATE SET A.FSEQ = B.FSEQ
       WHEN NOT MATCHED THEN
     INSERT VALUES (B.FDTSEQ, B.FSEQ);
   
    COMMIT;       

    RETURN vFseq;
   
    EXCEPTION
      WHEN NO_DATA_FOUND THEN
        NULL;
      WHEN OTHERS THEN
        RAISE;
 END GET_DAILYSEQ;

</statement>

AND

Oracle DML

2009. 5. 12. 17:28

PROTECTED ARTICLE. TYPE THE PASSWORD.