database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 39146 게시물 읽기
No. 39146
SQL 한가지만 더 문의 드릴께요.
작성자
포대인(sysdbcho)
작성일
2011-12-05 14:57ⓒ
2011-12-05 15:07ⓜ
조회수
4,635

SQL은 참 재미있지만, 집합적인 사고가 쉽지만도 않은 것 같습니다.

DBA_DATA_FILES View에 tablespace_name 과 file_name 컬럼이 있습니다.

 

select  tablespace_name, file_name  from dba_data_files;

 

TABLESPACE_NAME FILE_NAME
USERS E:\ORACLE11\ORADATA\USERS01.DBF
UNDOTBS1 E:\ORACLE11\ORADATA\UNDOTBS01.DBF
SYSAUX E:\ORACLE11\ORADATA\SYSAUX01.DBF
SYSTEM E:\ORACLE11\ORADATA\SYSTEM01.DBF
EXAMPLE E:\ORACLE11\ORADATA\EXAMPLE01.DBF
EP_TSPACE E:\EP_TSPACE_01.DBF
EP_TSPACE E:\EP_TSPACE_02.DBF
EP_TSPACE E:\EP_TSPACE_03.DBF

 

위 View에서  tablespace_name을 이용하여, ts_ tablespace_name_1.dbf  같이 가공하는 것 까지는 아래와 같이 작성을 했습니다. 

 

select 'ts_'|| lower(tablespace_name)||'_'||rnum||'.dbf' as "dd_of"
--   , file_name
from ( select tablespace_name, count(*) cnt  from dba_data_files group by tablespace_name ) a
     , ( select rownum rnum from dba_objects where rownum < 100000 ) b
 where b.rnum between 1 and a.cnt;

 

dd_of
ts_undotbs1_1.dbf
ts_sysaux_1.dbf
ts_ep_tspace_1.dbf
ts_ep_tspace_2.dbf
ts_ep_tspace_3.dbf
ts_users_1.dbf
ts_system_1.dbf
ts_example_1.dbf

 

그런데 위 SQL에서 붉은색으로 Comment 표시된 File_Name 컬럼도 옆에 Result Set으로

나오게 하고 싶습니다. 아래와 같이요.

 

dd_of FILE_NAME
ts_users_1.dbf E:\ORACLE11\ORADATA\USERS01.DBF
ts_undotbs_1.dbf E:\ORACLE11\ORADATA\UNDOTBS01.DBF
ts_sysaux_1.dbf E:\ORACLE11\ORADATA\SYSAUX01.DBF
ts_system_1.dbf E:\ORACLE11\ORADATA\SYSTEM01.DBF
ts_example_1.dbf E:\ORACLE11\ORADATA\EXAMPLE01.DBF
ts_ep_tspace_1.dbf E:\EP_TSPACE_01.DBF
ts_ep_tspace_2.dbf E:\EP_TSPACE_02.DBF
ts_ep_tspace_3.dbf E:\EP_TSPACE_03.DBF

 

group by인지라 file_name에 min이나 max 함수를 씌우면 원하는 결과가 않나오고, 좋은 방법이 없으까요?

이 글에 대한 댓글이 총 2건 있습니다.

SELECT
        'ts_' || LOWER( tablespace_name )|| '_' ||
        ROW_NUMBER() OVER( PARTITION BY tablespace_name ORDER BY file_id ) || '.dbf'
      , file_name
FROM
        dba_data_files

으이구님이 2011-12-05 17:05에 작성한 댓글입니다. Edit

으이구님 너무 감사합니다. ^^*

SQL 구사면에서 저랑은 차원이 다르네요. ㅎㅎ

between Join에 Group By 쓰면서 어찌 해볼려고 했는데,

알려주신 방법을 쓰니, 부하도 거의 없고....

저도 빨리 좀 깨우쳐야 겠습니다.

좋은 하루 되세요.

포대인(sysdbcho)님이 2011-12-05 17:20에 작성한 댓글입니다.
이 댓글은 2011-12-05 17:20에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
39149where 절에 random함수 돌리면 too many value 가 나와요. [5]
최재철
2011-12-06
5528
39148sqlloader infile , INTO TABLE 항목 값을 변수로 받을수 있나요? [1]
일쌍다반사
2011-12-06
5331
39147바인드 변수가 많은 쿼리 실행계획 볼려면.. [2]
궁금이
2011-12-06
4880
39146SQL 한가지만 더 문의 드릴께요. [2]
포대인
2011-12-05
4635
39145alert SID.log에 관한 질문입니다~ [1]
김종인
2011-12-05
4440
39144정규식 쿼리 문의 드립니다. [2]
포대인
2011-12-04
5215
39143n번째 (,)comma 를 ,<br> 로 치환 하는 질문. [3]
정규식질문
2011-12-04
4054
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다