위와 같은 데이터가 있다고 가정하자.






오라클 10g부터 추가된 vm_concat 함수를 사용하여 하나의 row로 합칠 수가 있다.





xmlelement 이용한 방법.


'프로그래밍 > database' 카테고리의 다른 글

오라클 pivot  (2) 2011.12.09
ERWin 에서 테이블 스키마 내보내기  (0) 2011.07.04
랜덤하게 ROW 추출하기(오라클)  (0) 2011.06.15
ERWin 에서 MS-SQL 2005 연결  (0) 2011.05.31
ERwin 데이타타입 디스플레이  (2) 2010.06.18
by antilla 2012. 8. 20. 14:00

KPSCR       GRADE
------         ------
10                  S

9                    A

8                    B

7                    C

6                    D


위와같이 세로로 나오는 데이터를

S       A       B       C       D
--     --      --      --      --
10      9       8        7       6     


가로로 바꿔주기 위해


SELECT MAX(DECODE(GRADE, 'S', KPSCR, NULL)) S,
       MAX(DECODE(GRADE, 'A', KPSCR, NULL)) A,
       MAX(DECODE(GRADE, 'B', KPSCR, NULL)) B,
       MAX(DECODE(GRADE, 'C', KPSCR, NULL)) C,
       MAX(DECODE(GRADE, 'D', KPSCR, NULL)) D
FROM (
      SELECT ROWNUM ITM_CD, GRADE, KPSCR FROM ICMS.OMG_EVAL_GRADE_KPSCR WHERE GRADE = 'S'
   UNION ALL
   SELECT ROWNUM ITM_CD, GRADE, KPSCR FROM ICMS.OMG_EVAL_GRADE_KPSCR WHERE GRADE = 'A'
    UNION ALL
   SELECT ROWNUM ITM_CD, GRADE, KPSCR FROM ICMS.OMG_EVAL_GRADE_KPSCR WHERE GRADE = 'B'
    UNION ALL
   SELECT ROWNUM ITM_CD, GRADE, KPSCR FROM ICMS.OMG_EVAL_GRADE_KPSCR WHERE GRADE = 'C'
    UNION ALL
   SELECT ROWNUM ITM_CD, GRADE, KPSCR FROM ICMS.OMG_EVAL_GRADE_KPSCR WHERE GRADE = 'D'
     )
GROUP BY ITM_CD

검색끝에 여러가지 쿼리가 있었고 결국 이런식으로 해주었다.
클라이언트가 x-platform인 관계로 불가피하게 쿼리에서 해결하였는데,
다행이 값이 변하지 않는 정적인 데이터들이라 가능했음.
 

by antilla 2011. 12. 9. 15:29

tool -> Forward Engineer

'프로그래밍 > database' 카테고리의 다른 글

여러 row를 하나의 row로 합치기  (0) 2012.08.20
오라클 pivot  (2) 2011.12.09
랜덤하게 ROW 추출하기(오라클)  (0) 2011.06.15
ERWin 에서 MS-SQL 2005 연결  (0) 2011.05.31
ERwin 데이타타입 디스플레이  (2) 2010.06.18
by antilla 2011. 7. 4. 15:10



오라클에서 랜덤하게 데이터를 뽑아오기 위해서는 여러가지 방법이 있지만,
DBMS_RANDOM 패키지를 사용하면 간편하게 데이터를 뽑을 수 있다.

예를 들어.. 퀴즈정답자중에 5명을 추첨하여 선물을 준다고 가정
이때 응모자중에서 5명만 랜덤하게 추출해 보자.

퀴즈응모자 테이블명을  TB_QUIZ_ENTRYS 라고 했을때
DBMS_RANDOM 패키지로 소트(Sort) 하여, 필요한 갯수만큼 rownum 으로 추출하면 된다.

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

SELECT S.*

FROM (

             SELECT * 

              FROM TB_QUIZ_ENTRYS 

             WHERE --- 추출전 조건절

             ORDER BY DBMS_RANDOM.VALUE

            ) S

WHERE ROWNUM < 5

---------------------------------------------------------------------
by antilla 2011. 6. 15. 09:39

산출물을 정리하라는데 내가 개발한 것도 아니며, 거기다 ERD까지 없다..
어이가 없다.
ERD를 구성하고 데이터베이스를 구성하는게 아니라 데이터베이스에서 ERD를 가져오는 반대의 경우.

그래도 sqlgate에서 뽑을 수 있다는걸 알고 있어서 다행이었는데,
ERD를 가져와야하는 컴퓨터는 DB를 아이피로 접속을 막고 있어 평소 원격으로 접속하고 작업 했다.
아랑곳하지 않고 평소처럼 원격 접속후
ERWin에서 tool -> Reverse Engineer -> sql server 2005(혹은 2000)선택 -> 디폴트로 next -> DB 접속계정 입력했으나
오류창 메시지
Unable to locate client connectivity software. Check with your database administroator to install the appropriate client software
권한의 문제였음

시작 -> 모든 프로그램 -> Microsoft SQL Server 2005 -> 구성도구 ->
노출영역구성을 선택하고 서비스 및 구성에 대한 노출영역을 재설정 해준다.
보통 대부분은 TCP/IP로 접속을 제한하고 있다.

by antilla 2011. 5. 31. 17:56

상단메뉴 Format -> Table Display -> Column Datatype 클릭하면..




컬럼명 옆에 데이타타입이 표시되어서 수정할 때 한눈에 알아보기 쉽다.
포스팅을 안하면 저거 볼려고 이거저거 마구 눌러대거나 그래도 안되면 매번 네이버,구글에서 검색질이다..;;


by antilla 2010. 6. 18. 16:08

도구창에서 리포트 -> 리포트

테이블 컬럼 정보와 테이블 스크립트에서 추출할 테이블 선택

마지막으로 화면 아래쪽에 있는 파일 내보내기에서 RTF파일 클릭!





'프로그래밍 > database' 카테고리의 다른 글

ERWin 에서 테이블 스키마 내보내기  (0) 2011.07.04
랜덤하게 ROW 추출하기(오라클)  (0) 2011.06.15
ERWin 에서 MS-SQL 2005 연결  (0) 2011.05.31
ERwin 데이타타입 디스플레이  (2) 2010.06.18
MySQL ODBC 설치  (0) 2010.06.18
by antilla 2010. 6. 18. 14:30

먼저 mysql-odbc5.1.6.msi 그냥 디폴트로 설치.
설치가 끝난뒤에 제어판 -> 관리도구 클릭 ->데이터원본(ODBC를 설치 해야만 있음) 실행






위 그림처럼 시스템DNS 클릭 한 후 추가버튼..





밑으로 내려가다보면 MySQL ODBC 드라이버 클릭

 

 
Date Source Name과 Description은 사용자 임의로 지정해 주면 되고
Server 같은 경우는 연결할 데이터베이스의 ip주소(예:219.254.22.***)
User,Passwd 역시 데이터베이스 접속 계정으로 입력
Datebase는 연결할 대상 데이터베이스명을 적어주면 된다. 


마지막으로 확인 누르면 끝

ERwin에서 기존 DBMS에 있는 SQL을 추출하여
테이블을 일일이 만들지 않고 컬럼명,데이터 타입들 역시 하나하나 설정해 주지 않고도
ODBC를 사용할 경우 아주 유용하게 쓰이는데 환경설정은 아래그림 참고


논리적/물리적 클릭한 후에
Target Databse에서 위처럼 ODBC정보로 설정 -> ok클릭
아 이것 때문에 약3~4분 헤맴...ㅜㅜ


User Name은 데이타베이스 사용자 접속 ID
Password는 역시 데이타베이스 비밀번호
Database는 ODBC에서 설정한 Data Source Name

(ERwin7.1버전은 Parameter에 ODBC Data Source라고 되어있으며 Next가 아닌 Connect 클릭 -> Tools에서 ReverseEnginner 클릭 ->다시 ODBC/Generic으로 설정한 후 Next 를 클릭하면 아래와 같은 그림이 뜬다)


Current User로 설정하고 필요한 테이블을 가져오고
Infer에서 역시 필요한 항목을 선택하여 가져온다
Next 클릭!


마지막으로 한번 더 User Name과 Passwd,Database를 입력하고 Connect 하면 끝



 
by antilla 2010. 6. 18. 14:20
| 1 |