본문 바로가기

DataBase25

오라클 사전 정보 조회 쿼리를 통해 오라클 데이터베이스의 정보를 조회할때 사용하세요.구분테이블명설명오브젝트USER_OBJECTS(OBJ) 모든 오브젝트에 대한 정보를 지원 오즈젝트 유형, 작성시간, 오브젝트에 사용된 최종 DDL 명령, alter, grant 및 revoke 등테이블USER_TABLES(TABS) 테이블에 대한 정보열USER_TAB_COLUMNS(COLS) 컬럼에 대한 정보뷰USER_VIEWS뷰에 대한 정보동의어USER_SYNONYMS(SYN)시퀀스USER_SEQUENCES(SEQ)제약조건USER_CONSTARINTS 제약조건열USER_CONS_COLUMNS제약 조건을 가진 열에 대한 정보제약조건의 예외사항EXCEPTIONS제약조건을 활성화시 에러사항에 대한 정보테이블 주석USER_TAB_COMMENTS테이블/.. 2007. 10. 15.
필드값을 레코드값으로 변경해보자. 아래와 같이 T_TEST테이블의 조회되는 데이터가 있다. seq winner ---- ----- 1 Y 1 N 2 Y 2 Y ... 위와 같을 경우 SEQ코드별로 winner의 코드값이 'Y'인 COUNT 값과 'N'인 COUNT 값이 필요할경우 아래와 같이 한 레코드 형식으로 쿼리를 날려보자. SELECT seq, NVL(SUM (DECODE (winner, 'Y', 1)),0) Y, NVL(SUM (DECODE (winner, 'N', 1)),0) N FROM t_test WHERE seq > 0 GROUP BY seq 결과는 아래와 같다. SEQ Y N ----- -- -- 1 1 1 2 2 0 ..... 2007. 10. 13.
중복 데이터 제거(partition by) 데이터 조회시 중복된 데이터를 걸러내기 위한 쿼리중 한가지 방법 중에 partition by 방법이다. T_MEM 테이블과 T_MEM_MORE 테이블에 각각 USERID란 컬럼이 PK, FK로 잡혀있고 T_MEM 테이블 기준으로 중복 제거를 하려면 아래와 같다. SELECT a.userid, row_number() over(partition by b.userid order by b.userid) overlap FROM t_mem a, t_mem_more b WHERE a.userid = b.userid 그러면 데이터는 아래와 같다 USERID OVERLAP test 1 test 2 test_1 1 test_2 1 test_2 2 .... 대충 이런식이다.-_-; 저기에서 overlap =1 로 검출하면 .. 2007. 10. 12.
Oracle 랜덤하게 정보 추출 종종 오라클에서 랜덤하게 정보를 추출할일이 생기는데 사용되는 간단한 쿼리다. select * from (select * from TEST_TABLE order by dbms_random.value) where rownum 2007. 8. 10.