posted by 구름너머 2009. 9. 17. 15:52

SQL>

SQL> set pages 0 trimspo on long 10000;
SQL> col name format a300
SQL> set sqlprompt -->

-->

--> SELECT dbms_metadata.get_ddl('INDEX','TX_MNPDB_01') FROM dual;

--> spool aa.sql

--> /

--> spool off

--> set sqlprompt SQL>

SQL> @aa.sql

'ORACLE' 카테고리의 다른 글

프로시져 실행하기.  (0) 2009.10.23
오라클 힌트사용하기-BYPASS_UJVC  (0) 2009.10.23
테이블 스크립트 조회(DDL 조회)  (0) 2009.09.17
그룹별로 순위를 부여 하는 법  (0) 2009.06.23
파티션 테이블 DROP하기  (0) 2009.06.11
posted by 구름너머 2009. 9. 17. 14:43

Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
With the Partitioning option
JServer Release 9.2.0.6.0 - Production

SQL>
SQL>
SQL> set pages 0 trimspo on long 10000
SQL>
SELECT dbms_metadata.get_ddl('INDEX','TX_DB_01') FROM dual;

~~~

SQL>

posted by 구름너머 2009. 6. 23. 19:14
☞ 그룹별로 순위를 부여 하는 법

-- 위 예제는 deptno를 파티션으로 나누어서 부서별로 순위를 부여 합니다.
-- 특정한 그룹별로 순위를 부여하고 싶을때 사용 하면 편합니다.

SQL>SELECT deptno, ename, sal,
RANK() OVER (PARTITION BY deptno ORDER BY sal DESC ) as rk
FROM emp ;

'ORACLE' 카테고리의 다른 글

INDEX를 조회하여 파일로 저장 후 실행하기  (0) 2009.09.17
테이블 스크립트 조회(DDL 조회)  (0) 2009.09.17
파티션 테이블 DROP하기  (0) 2009.06.11
오라클 세션 조회  (0) 2009.06.11
merge이용  (0) 2009.06.01
posted by 구름너머 2009. 6. 11. 18:48

select 'alter table '||segment_name||' drop partition '||partition_name||';'
from user_segments
where segment_name ='TB_????'
and partition_name < 'P200903';

'ORACLE' 카테고리의 다른 글

테이블 스크립트 조회(DDL 조회)  (0) 2009.09.17
그룹별로 순위를 부여 하는 법  (0) 2009.06.23
오라클 세션 조회  (0) 2009.06.11
merge이용  (0) 2009.06.01
계층적 질의(hierarchical query)  (0) 2008.12.08
posted by 구름너머 2009. 6. 11. 18:46
SELECT S.SID, S.SERIAL#, S.USERNAME , S.PROCESS,
P.SPID ,S.STATUS,
DECODE(S.COMMAND,
'0','NO',
'1','Create Tab',
'2','Insert',
'3','Select',
'6','Update',
'7','Delete',
'9','Create Idx',
'10','Drop Idx',
'15','Alter Tbl',
'24','Create Proc',
'32','Create Link',
'33','Drop Link',
'36','Create RBS',
'37','Alter RBS',
'38','Drop RBS',
'40','Alter TBS',
'41','Drop TBS',
'42','Alter Sess',
'45','Rollback',
'62','Anal Table',
'63','Anal Index',
'85','Truncate') COMMAND,
SUBSTR(S.PROGRAM, 1, 35) PRG
FROM V$SESSION S ,V$PROCESS P
WHERE P.ADDR(+) = S.PADDR
--AND S.USERNAME = 'BILL'
ORDER BY S.SID

'ORACLE' 카테고리의 다른 글

그룹별로 순위를 부여 하는 법  (0) 2009.06.23
파티션 테이블 DROP하기  (0) 2009.06.11
merge이용  (0) 2009.06.01
계층적 질의(hierarchical query)  (0) 2008.12.08
grouping sets 사용법  (0) 2008.12.08
posted by 구름너머 2009. 6. 1. 11:28

[SYNTAX]

MERGE INTO 테이블 A -- update 또는 insert할 테이블

USING (테이블명 | SUBQUERY | 뷰) B -- 비교 대상

ON(A와 B의 조인식)-- 대상테이블과 비교테이블의 조인식

WHEN MATCHED THEN-- on절에서 일치하는 로우가 있다면

UPDATE SET = , , .... -- 업데이트하고,

WHEN NOT MATCHED THEN-- 일치하는 로우가 없다면

INSERT INTO(컬럼명) -- insert를

VALUES(값, 값, ...) -- 이 값으로 넣어라.

'ORACLE' 카테고리의 다른 글

파티션 테이블 DROP하기  (0) 2009.06.11
오라클 세션 조회  (0) 2009.06.11
계층적 질의(hierarchical query)  (0) 2008.12.08
grouping sets 사용법  (0) 2008.12.08
파티션 테이블 삭제하기.  (0) 2008.11.13
posted by 구름너머 2008. 12. 8. 22:51

http://radiocom.kunsan.ac.kr/lecture/oracle/statement_select/hierarchical_query.html

계층적 질의(hierarchical query)

http://radiocom.kunsan.ac.kr
관계형 데이터베이스는 2차원 테이블 구조에 의해 모든 데이터를 저장한다.
하지만, 실무에서는 기업의 조직도, 집안의 족보처럼 계층적인 데이터 구조를 많이 사용하고 있다.
따라서 평면적인 구조를 가지는 테이블에서도 계층적인 데이터를 저장하여 조회할 수 있는 방법이 필요하다.

테이블에서 기업의 조직도와 같은 계층적인 데이터 자체를 저장하기는 어렵다. 하지만, 관계형 데이터베이스에서도 데이터간의 부모-자식 관계를 표현할 수 있는 컬럼을 지정하여 계층적인 관계를 표현할 수 있다.
하나의 테이블에서 계층적인 구조를 표현하는 관계를 순환관계(recursive relationship)라고 한다.
예를 들어, 부서 테이블에서 학과, 학부, 단과대학간의 계층적인 관계를 저장하는 컬럼을 지정하여 부서 번호간의 계층적인 관계를 표현할 수 있다.
즉, 이 컬럼에는 학과의 부모는 학부, 학부의 부모는 단과대학 번호를 저장하여 계층적인 관계를 표현할 수 있다.

오라클에서는 계층적인 데이터를 저장한 컬럼으로부터 데이터를 검색하여 계층적으로 출력할 수 있는 기능을 제공한다.
SELECT 문에서 START WITH와 CONNECT BY 절을 이용하여 데이터를 계층적인 형태로 출력할 수 있다.
계층적 질의문에서는 계층적인 출력 형식과 시작 위치를 제어할 수 있다. 계층적인 출력 형식은 top-down 또는 bottom-up 형식이 가능하다.
하지만 계층적 질의문은 조인문이나 뷰에서는 사용할 수 없으며, CONNECT BY 절에서는 서브쿼리 절을 포함할 수 없다.

 【형식】 	SELECT 	[LEVEL] {*,컬럼명 [alias],...}	FROM	테이블명	WHERE	조건	START WITH 조건	CONNECT BY [PRIOR 컬럼1명  비교연산자  컬럼2명]		또는 		   [컬럼1명 비교연산자 PRIOR 컬럼2명]
【계층구조의 출력형태】
1) top-down 출력형식 : 루트 로드부터 먼저 출력	CONNECT BY PRIOR column1 = column2		column1 = 자식 키		column2 = 부모 키   예) CONNECT BY PRIOR deptno = college
2) bottom-up 출력형식 : 단말 로드부터 먼저 출력	CONNECT BY PRIOR column1 = column2		column1 = 부모 키		column2 = 자식 키   예) CONNECT BY PRIOR college = deptno

START WITH 절 계층적인 출력 형식을 표현하기 위한 최상위 행
CONNECT BY 절 계층관계의 데이터를 지정하는 컬럼
PRIOR 연산자 CONNECT BY는 PRIOR 연산자와 함께 사용하여 부모 행을 확인할 수 있다. PIOR 연산자의 위치에 따라 top-down 방식인지 bottom up 방식인지를 결정한다. PRIOR 연산자가 붙은 쪽의 컬럼이 부모 행이 된다.
WHERE 절 where 절이 JOIN을 포함하고 있을 경우 CONNECT BY 절을 처리하기 전에 JOIN 조건부를 적용하여 처리하고, JOIN을 포함하고 있지 않을 경우 CONNECT BY 절을 처리한 후에 WHERE 절의 조건을 처리한다.
LEVEL 계층적 질의문에서 검색된 결과에 대해 계층별로 레벨 번호 표시, 루트 노드는 1, 하위 레벨로 갈 수록 1씩 증가

 

'ORACLE' 카테고리의 다른 글

오라클 세션 조회  (0) 2009.06.11
merge이용  (0) 2009.06.01
grouping sets 사용법  (0) 2008.12.08
파티션 테이블 삭제하기.  (0) 2008.11.13
plan_table  (0) 2008.11.06
posted by 구름너머 2008. 12. 8. 22:49

http://radiocom.kunsan.ac.kr/lecture/oracle/function/GROUPING_SETS.html

grouping sets 함수는 GROUP BY 절에서 그룹 조건을 여러 개 지정할 수 있는 함수이다. GROUPING SETS 함수의 결과는 각 그룹 조건에 대해 별도로 GROUP BY한 결과를 UNION ALL한 결과와 동일하다. GROUPING SETS 함수는 하나의 SQL문에 의해 여러 개의 그룹 조건을 한꺼번에 지정하여 복잡한 그룹 처리 과정을 단순하게 구성할 수 있다.

Grouping sets 함수는 Group by의 확장된 형태로 하나의 쿼리문에서 원하는 그룹핑 조건을 여러 개 기술할 수 있으며, grouping sets 함수 사용이 불가능한 이전 버전에서 복잡한 union all 연산자를 사용하여 기술하던 것을 간단하게 한 문장 안에서 해결할 수 있어 검색시 효율성이 증대 된다.
다시 말해서, grouping sets 함수를 사용하면, group by ... union all을 사용한 것보다 SQL 문이 간단해지고 또한 실행시 성능이 빨라진다.

【형식】SELECT 		컬럼명,그룹함수(컬럼명), GROUPING(컬럼명)FROM		테이블명WHERE		조건GROUP BY	[ROLLUP | CUBE] 그룹핑하고자하는 컬럼명, ...		[GROUPING SETS (컬럼명,컬럼명, ...), ...]HAVING		그룹조건ORDER BY	컬럼명 또는 위치번호

composite columns란 rollup, cube, grouping sets 절과 같은 기능을 사용하면
표현되는 각 컬럼이 하나가 아닌 복수 개의 컬럼으로 정의되는 경우이며
다음 표를 보고 이해하자.

composite column 문의 경우 group by 문의 경우
group by grouping sets(a,b,c) group by a union all
group by b union all
group by c
group by grouping sets(a,b,(b,c)) group by a union all
group by b union all
group by b,c
group by grouping sets((a,b,c)) group by a,b,c
group by grouping sets(a,(b),()) group by a union all
group by b union all
group by ()
group by grouping sets(a,rollup(b,c)) group by a union all
group by rollup(b,c)
group by rollup(a,b,c) group by (a,b,c) union all
group by (a,b) union all
group by (a) union all
group by ()
group by cube(a,b,c) group by (a,b,c) union all
group by (a,b) union all
group by (a,c) union all
group by (b,c) union all
group by (a) union all
group by (b) union all
group by (c) union all
group by ()


'ORACLE' 카테고리의 다른 글

merge이용  (0) 2009.06.01
계층적 질의(hierarchical query)  (0) 2008.12.08
파티션 테이블 삭제하기.  (0) 2008.11.13
plan_table  (0) 2008.11.06
FREE LEC  (0) 2008.10.15