DB/Oracle 11

ORA-00054

ORA-00054: 자원이 사용중이고, NOWAIT가 지정되어 있습니다 이런 경우는 table에 락이 걸려있어서 일어나는 에러이다. 사용중 이런 에러가 나타날 경우 기본적으로 DB를 리스타트 해주면 되지만 이것마져 맘대로 되지 않을경우 하는 방법이 있다. -- TEST_TABLE -> 테이블이름 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='TEST_TABLE'; SID SERIAL# --- ------- 152 46636 이런결과가 나왔다면ALTER SYSTEM KILL SESSION '152, 46..

DB/Oracle 2010.06.15

날짜 차이 구하는 쿼리문

기한내에 사용가능한지를 판별하는 쿼리문을 짜보았다. 시작일의 사용 유무는 현재시 - 시작일 마지막일의 사용 유무는 마지막일 - 현재일 SIGN을 이용하여 가능하면 1로 출력된다. DECODE을 이용하여 사용가능한 1은 Y 불가능인 -1은 N 으로 표기 기한이없는것도 N으로 표기 SELECT decode( SIGN(sysdate - to_date('2010-06-01', 'yyyy-MM-dd')), 1, 'Y' , -1, 'N', 'N') AS reSt , decode( SIGN(to_date( '2010-06-30' , 'yyyy-MM-dd') - sysdate ), 1, 'Y' , -1, 'N', 'N') AS reEn FROM dual

DB/Oracle 2010.06.12

오라클 DECODE

- 특정 칼럼의 값을 기준으로 IF문을 사용하는 것과 같은 효과를 내는 함수 - 구문 DECODE({column | expression}, search1, result1 [, search2, result2, ...] [, default]) - 사용 예 SELECT dname, job, DECODE (job, 'analyst', '분석가', 'clerk', '점원', 'manager', '관리자', 사원 ) AS new_job FROM emp; => job 칼럼의 값이 'analyst'이면 '분석가'를, 'clerk'이면 '점원'을, 'manager'이면 '관리자'를 출력한다. 해당되는 값이 없다면 '사원'을 출력한다.

DB/Oracle 2008.09.25