IT

오라클 데이터베이스에서는 선택된 행들에 대하여 배타적인 LOCK을 설정할 수
있는 기능인 FOR UPDATE 구문을 제공하고 있다.

여기서는 FOR UPDATE 구문의 전반적인 개관과 9i 신기능으로 소개된 WAIT로
TIMEOUT을 설정하는 방법을 아래와 같이 살펴본다.

1. FOR UPDATE with no option
2. FOR UPDATE NOWAIT(= WAIT 0)
3. FOR UPDATE WAIT integer (0 ~ 4294967295, second)
4. FOR UPDATE OF

Explanation
-----------
1. FOR UPDATE with no option
- 이 경우 오라클은 LOCK을 획득하기까지 무한정 기다린다.


2. FOR UPDATE NOWAIT[= WAIT 0]
- LOCK을 획득하지 못하면 ORA-00054와 함께 바로 실패한다(Example I).
(FOR UPDATE WAIT 0 도 같이 동작한다)

3. UPDATE WAIT integer(0 ~ 4294967295, second)
- WAIT 다음 주어지는 정수 만큼 동안 LOCK을 획득하기 위해 재시도한다.
그러나 주어진 시간동안 LOCK을 획득하지 못하면 ORA-30006와 함께
해당 SQL문은 실패한다(Example I).
WAIT 다음에 integer 설정하지 않거나 integer의 최대값(4294967295)을
초과하는 값을 설정하면 ORA-30005 에러를 만나게 된다(Example II,III).

4. FOR UPDATE OF
- FOR UPDATE 구문은 FROM 절에 기술된 복수개의 테이블의 해당행에 모두
LOCK을 설정한다(Example I)
이 때 OF 를 기술함으로 하여 특정 TABLE의 행에만 LOCK을 설정할 수 있다

* 주의
- FROM 절에 DUMMY로 열거된 TABLE인 경우(즉 JOIN 조건이 없어서 Cartesian product로 연산되는 경우),
OF 절이 없다면 모든 TABLE, 행에 LOCK이 설정된다

'소프트웨어 > Oracle' 카테고리의 다른 글

오라클 랜덤 함수  (0) 2013.11.28
디비링크  (0) 2013.11.06
DB에서 java Vo 멤버 추출  (0) 2013.10.02
SQL Developer 날짜(date)형식 시,분,초 단위까지 표시하는 방법  (0) 2013.08.28
OVER()함수  (0) 2013.08.27
Posted by sinpk

select DBMS_RANDOM.VALUE(0,  10) from dual --랜덤한 숫자 생성 (0부터 10 사이에서)

 

select ROUND(DBMS_RANDOM.VALUE(1,  10), 0) from dual --ROUND함수를 이용한 소수점 제거

 

select LPAD(ROUND(DBMS_RANDOM.VALUE(0, 1) *10000000000), 10, '0') from dual --소수점을 이용하여 10자리의 숫자 생성

 

select DBMS_RANDOM.STRING('U',  20) from dual --대문자

 

select DBMS_RANDOM.STRING('L',  20) from dual --소문자

 

select DBMS_RANDOM.STRING('A',  20) from dual --Alpanumeric

 

select DBMS_RANDOM.STRING('X',  20) from dual --Alpanumeric(대문자)

 

select DBMS_RANDOM.STRING('P',  20) from dual --출력가능한 문

 

--마지막으로 오라클 인증키 난수 발생

SELECT '1566' || DBMS_RANDOM.STRING('U',4) || DBMS_RANDOM.STRING('X',4) || 'F_' || LPAD(ROUND(DBMS_RANDOM.VALUE(0 ,1) * 10000),4,'0') CERTI_KEY,LEVEL
FROM DUAL
CONNECT BY LEVEL <= 100;

'소프트웨어 > Oracle' 카테고리의 다른 글

SELECT절에서 LOCK 설정 방법  (0) 2014.03.26
디비링크  (0) 2013.11.06
DB에서 java Vo 멤버 추출  (0) 2013.10.02
SQL Developer 날짜(date)형식 시,분,초 단위까지 표시하는 방법  (0) 2013.08.28
OVER()함수  (0) 2013.08.27
Posted by sinpk

디비링크

2013. 11. 6. 09:55 : 소프트웨어/Oracle

-- 제공하는 서버 사용자 생성

 1. 사용자등록

CREATE USER 사용자ID
IDENTIFIED BY 사용자PW
;

 

-- XXXX01 사용자, XXXX01 비번으로 사용자 등록 예
CREATE USER 사용자ID
    IDENTIFIED BY 사용자PW
;

 

2. 사용자 연결권한지정

GRANT CONNECT TO 사용자ID
;

 

-- XXXX01 사용자 연결권한 지정 예

GRANT CONNECT TO 사용자ID
;

 

-- 사용하는 서버 Database Link 생성 방법

-- Create database link 
create public database link Database LInk명
  connect to 사용자ID
  using '(DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.XXX.XX)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = wind)
    )
   )'; 



-- DB LINK 사용법

테이블명@링크명;

SELECT * FROM EMP@DATABASE_LINK;


-- DB LINK 삭제

DROP DATABASE LINK dblink명;

drop database link database_link;




Posted by sinpk

SELECT 'private '

         , CASE WHEN B.DATA_TYPE = 'NUMBER' AND B.DATA_PRECISION > 10 THEN 'String'

                WHEN B.DATA_TYPE = 'NUMBER' AND B.DATA_PRECISION = 10 THEN 'Long'

                WHEN B.DATA_TYPE = 'NUMBER' AND B.DATA_PRECISION < 10 THEN 'Integer'

                WHEN B.DATA_TYPE = 'DATE'   THEN 'Date'         

                ELSE 'String'

           END F_TYPE

         ,LOWER(A.COLUMN_NAME) || ';' AS FIELD_NM

         /*

         ,LOWER(SUBSTR(A.COLUMN_NAME,0,1))||SUBSTR( REPLACE(INITCAP(A.COLUMN_NAME), '_'), 2, LENGTH(REPLACE(INITCAP(A.COLUMN_NAME), '_'))-1) || ';' AS FIELD_NM

         */

         , '/** '||A.COMMENTS || ' **/' AS NM

     FROM USER_COL_COMMENTS A, USER_TAB_COLUMNS B

     WHERE A.TABLE_NAME = B.TABLE_NAME

     AND   A.COLUMN_NAME = B.COLUMN_NAME

     AND   A.COMMENTS IS NOT NULL

     AND   A.TABLE_NAME = '테이블명';

'소프트웨어 > Oracle' 카테고리의 다른 글

오라클 랜덤 함수  (0) 2013.11.28
디비링크  (0) 2013.11.06
SQL Developer 날짜(date)형식 시,분,초 단위까지 표시하는 방법  (0) 2013.08.28
OVER()함수  (0) 2013.08.27
일련번호 채번  (0) 2013.08.07
Posted by sinpk

도구 > 환경설정 > 데이터베이스 > NLS

기본이 RR/MM/DD -> 변경 RR/MM/DD HH24:MI:SS

'소프트웨어 > Oracle' 카테고리의 다른 글

디비링크  (0) 2013.11.06
DB에서 java Vo 멤버 추출  (0) 2013.10.02
OVER()함수  (0) 2013.08.27
일련번호 채번  (0) 2013.08.07
Toad 단축키  (0) 2013.08.05
Posted by sinpk