SMALL

is not null 과 

is  null 사용법입니다


is not null

select * from

test1 

where dd is not null

dd컬럼이 널이 아닌것만 출력됩니다

is null

select * from

test1 

where dd is null

dd컬럼이 널인것만 출력됩니다


LIST
블로그 이미지

SeoHW

,
SMALL

UPDATE 시 셀렉트 업데이트하기


exam)

update bo_furnish_tbl a1

SET a1.email = (select e_mail FROM co_loan_user_tbl b WHERE a1.user_no = b.user_no)

WHERE a1.email = 'gg@naver.com'



이런식으로


where절에는 필요조건을 넣고


set 에서 서브 쿼리 ㅣ이용시 셀렉트 업데이트가 가능합니다


다수건업데이트시 유용합니다!!

LIST
블로그 이미지

SeoHW

,
SMALL
SELECT 
REGEXP_REPLACE('태그를<font color=red> 제거할끄얌~', '<[^>]*>', '') AS REPL 
FROM DUAL;


위 쿼리를 실행하면 출력되는 값 : 태그를 제거할끄얌~

오라클 10g 이상에서 작동함. 


추가 : 아래처럼 하는게 더 확실히 될듯???

SELECT REGEXP_REPLACE(column, '<[^>]*>|\&([^;])*;', '')  FROM dual

ibatis사용시 : REGEXP_REPLACE(cont, <![CDATA['<[^>]*>|\&([^;])*;']]> 



출처: http://rainny.tistory.com/67 [긍정적 사고방식^^]

LIST
블로그 이미지

SeoHW

,
SMALL

오라클 10g


컬럼 추가.

ALTER TABLE  테이블이름  ADD

새로 추가된 컬럼은 테이블 맨 마지막에 추가되며 NULL 값으로 입력됩니다.

 


ALTER TABLE EMP

ADD (email VARCHAR2(10));


 



컬럼 속성 변경.

ALTER TABLE  테이블이름  MODIFY

컬럼에 대해서 데이터 타입이나 크기, 기본값들을 변경할 수 있습니다.

 


ALTER TABLE EMP

MODIFY (email VARCHAR2(40));


 



컬럼 이름 변경.

ALTER TABLE  테이블이름  RENAME COLUMN 변경전이름 TO 변경후이름

 


ALTER TABLE EMP

RENAME COLUMN email to navermail;

  


  



컬럼 삭제.

ALTER TABLE  테이블이름  DROP


 


ALTER TABLE EMP

DROP COLUMN email;



[출처] http://k_builder.blog.me/40188303955



LIST
블로그 이미지

SeoHW

,
SMALL

오라클

select 후 update 하기



update AA a  

LEFT JOIN 

(SELECT *  FROM BB AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '120' MINUTE)) b

ON a.fn_seq = b.fn_seq

set a.fn_gender = b.fn_gender

where 1=1




-------------------------------


됩니다


SELECT *  FROM BB AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '120' MINUTE)

2시간전 데이터를 셀렉트 해오는것입니다.


(120분)

LIST
블로그 이미지

SeoHW

,
SMALL

오라클을 사용할때 

어느 순간 데이터가 삭제가 않되는 상태가 발생했다. 

일명 테이블에 락이 걸린것이다.

테이블에 락이 걸리는 이유 사용중 비정상적이 종료로 인해서 발생한다.


락을 제거하기 위해서는 SYSTEM 계정(관리자)으로 접근해서 작업을 진행해야 한다.

일반 계정으로는 불가능하다.

 

1 .락이 걸린 테이블이 유무 확인

select *
from v$locked_object
where oracle_username = 'oracle user name'
; 


2 .락이 걸려있는 테이블 갯수 확인

SELECT count(*)
FROM v$locked_object vo , dba_objects do 
WHERE vo.object_id = do.object_id

 3. 락 걸린 섹션 확인 

select a.sid, a.serial#

from v$session a, v$lock b, dba_objects c

where a.sid=b.sid and

b.id1=c.object_id and b.type='TM'


 4.락이 걸린 테이블명을 알고 있은 경우.

SELECT A.SID, A.SERIAL# 

FROM V$SESSION A, V$LOCK B, DBA_OBJECTS C 

WHERE A.SID=B.SID AND B.ID1=C.OBJECT_ID AND B.TYPE='TM' AND C.OBJECT_NAME='테이블명'

결과  값

SESSION_ID/SERIAL_NO/OS_USER_NAME/ORACLE_USERNAME/STATUS
24                1102            Administrator       ABCDWRK                  INACTIVE
92                4665            OPS$ABCD         OPS$ABCDUSR           INACTIVE
92.               4665            OPS$ABCD         OPS$ABCDUSR           INACTIVE


 

형식 

alter system kill session 'sid, serial#'

sid : session_id

serial# : serial_no 을 의미한다.


alter system kill session '24, 1102'; 

commit ;



출처: http://twinstarbox.tistory.com/entry/오라클-테이블-락-주회-해제-방법 [쌍둥이별의 보물상자]

LIST
블로그 이미지

SeoHW

,
SMALL

오라클 날짜 기간 검색 2가지방법

방법1
예제1)

SELECT  reg_date
  FROM  JBOARD_BD_MEETBOARD;

--2017년 01-01 ~ 2017-12-01
SELECT reg_date
  FROM JBOARD_BD_MEETBOARD
 WHERE reg_date >= TO_DATE('2017-01-01','YYYY-MM-DD')
   AND  reg_date <  TO_DATE('2017-12-01','YYYY-MM-DD')+1;


예제2) start date end date로 날자검색하기

SELECT fn_sdate,fn_edate

  FROM JBOARD_BD_MEETBOARD
 WHERE fn_sdate >= TO_DATE('2017-01-01','YYYY-MM-DD')
   AND  fn_edate<  TO_DATE('2017-12-01','YYYY-MM-DD')+1;


방법2


#변수

예제1) date 컬럼 하나로 날자검색

SELECT * FROM
DUAL
WHERE 1=1

AND TO_DATE(FN_REGDATE,'YYYY-MM-DD') 

BETWEEN TO_DATE(#{fn_date},'YYYY-MM-DD') AND TO_DATE(#{fn_date2},'YYYY-MM-DD') 






LIST
블로그 이미지

SeoHW

,