네이버 우클릭 풀기 2탄 - 네이버 카페용

Posted 2008/09/30 02:32 by 착한악마
javascript:function r(d){d.oncontextmenu=null;d.onselectstart=null;d.ondragstart=null;d.onkeydown=null;d.onmousedown=null;d.body.oncontextmenu=null;d.body.onselectstart=null;d.body.ondragstart=null;d.body.onkeydown=null;d.body.onmousedown=null;}r(cafe_main.document);

즐겨 찾기에 지정해 놓으면 편하겠죠? ^^
이올린에 북마크하기(0) 이올린에 추천하기(0)
크리에이티브 커먼즈 라이선스
Creative Commons License

Write your message and submit

MS-SQL 에서 테이블 구조 정보 빼오기

Posted 2007/10/11 22:08 by 착한악마
MS-SQL에서 테이블 구조 살펴보다가 귀찮아서 한번 만들어 보았습니다....

단순하게 만들었는데.. 쓸만한지 모르겠네요.. ㅎㅎ

테이블명, 컬럼명(속성), PK정보, FK정보 등을 보여 줍니다.


select (select count(*)
    from sysobjects
         where xtype = 'U'
           and name != 'dtproperties'
           and name <= a.name)  테이블번호,
    a.name 테이블명,
    b.colid 컬럼번호,
    b.name 컬럼명, c.name 컬럼속성,
       case when b.xtype = 108 then CAST(b.xprec as varchar(100)) + ',' + CAST(b.xscale as varchar(100)) else CAST(b.length as varchar(100)) end 속성값,
       case when b.isnullable = 1 then 'Y' else '' end null여부,
    ISNULL((select CAST(keyno as varchar(2)) from dbo.sysindexkeys where id = d.id and indid = d.indid and colid = b.colid), '') PK순서,
       ISNULL((select name from dbo.sysobjects where id = f.rkeyid), '') 참조테이블,
       ISNULL((select name from dbo.syscolumns where id = f.rkeyid and colid = f.rkey), '') 참조컬럼,
       ISNULL(CAST(f.keyno as varchar(2)), '') 참조컬럼순서
  from dbo.sysobjects a,
       dbo.syscolumns b,
    dbo.systypes c,
    dbo.sysindexes d,
    dbo.sysforeignkeys f
 where a.id = b.id
   and a.xtype = 'U'
   and b.xtype = c.xtype
   and b.id *= d.id
   and d.name like 'PK%'
   and b.id *= f.fkeyid
   and b.colid *= f.fkey
   and a.name != 'dtproperties'
   and ((c.xtype = '231' and c.status = '2') or c.xtype != '231')
order by a.name, b.colorder
크리에이티브 커먼즈 라이선스
Creative Commons License

Write your message and submit

B-Boy Show

Posted 2007/07/09 14:43 by 착한악마
사용자 삽입 이미지
이올린에 북마크하기(0) 이올린에 추천하기(0)
크리에이티브 커먼즈 라이선스
Creative Commons License

  1. BlogIcon 살벌한뇬

    | 2007/10/11 23:47 | PERMALINK | EDIT | REPLY |

    어머나...

Write your message and submit

비오는 날

Posted 2007/06/04 19:22 by 착한악마
사용자 삽입 이미지
이올린에 북마크하기(0) 이올린에 추천하기(0)
크리에이티브 커먼즈 라이선스
Creative Commons License

  1. 달의여신

    | 2007/11/14 20:19 | PERMALINK | EDIT | REPLY |

    앗! 어디서 많이 본 사람이 여기 있네 ㅋㅋㅋ

Write your message and submit

초대장 필요하신분~

Posted 2007/05/28 16:57 by 착한악마
Tistory에 블러그 개설하고 싶으신분

댓글 달아 주십시요~

초대장 보내드리겠습니다.. ^^

선착순 10명~

ps. 이메일 주소가 필요하니 정보보호를 위해 비밀 댓글로 부탁 드릴께요..^^
이올린에 북마크하기(0) 이올린에 추천하기(0)
크리에이티브 커먼즈 라이선스
Creative Commons License

Tag : 초대장

  1. BlogIcon 얼사마

    | 2007/05/28 19:05 | PERMALINK | EDIT | REPLY |

    안녕하세요. 초대장 받고 싶어서 댓글 남깁니다. ^^;;;
    dwf@hanmail.net
    부탁드려요~

  2. | 2007/05/28 23:58 | PERMALINK | EDIT | REPLY |

    비밀댓글 입니다

  3. | 2007/05/30 05:14 | PERMALINK | EDIT | REPLY |

    비밀댓글 입니다

  4. | 2007/05/31 11:40 | PERMALINK | EDIT | REPLY |

    비밀댓글 입니다

  5. | 2007/05/31 22:07 | PERMALINK | EDIT | REPLY |

    비밀댓글 입니다

  6. | 2007/06/01 14:24 | PERMALINK | EDIT | REPLY |

    비밀댓글 입니다

    • BlogIcon 착한악마

      | 2007/06/04 09:20 | PERMALINK | EDIT |

      제가 좀 늦게 보내 이미 다른 분께 받으셨네요.
      죄송합니다. ^^;;

Write your message and submit

Portable 프로그램 이란..

Posted 2007/05/28 16:38 by 착한악마
웹 서핑 도중 Portable화 된 프로그램이란 단어를 발견했습니다.
보통 Portable 프로그램이란 PDA라든지, 핸드폰과 같은 장비의 프로그램, 즉 모바일 프로그램이라 생각하고 있었습니다.
헌데 요즘은 좀 다른 의미로 쓰이나 보군요.

플래쉬메모리의 가격하락으로 USB 저장장치가 많이 싸졌습니다.
그래서 여러 파일을 플래쉬메모리에 넣어 다니는 분들이 많아졌는데, 해당 파일이 특별한 프로그램을 요구하는 경우, 파일을 열어보기 위해 그 프로그램을 설치해야 하는 문제가 있습니다.

해서 설치 없이 사용하는 프로그램을 메모리에 넣고 다니는 분들도 계시죠.
이런 무설치 프로그램을 Portable 프로그램이라고 하는 군요.
하지만 이 경우, 자신이 원하는 프로그램이 설치가 반듯이 필요한 프로그램이라면 말짱도루묵..ㅎㅎ

이럴 경우 쓸수 있는 방법이 있네요.

설치 프로그램을 설치 없이 사용할 수 있도록 해주는 Portable화라는 방법이 있군요.
물론 저작권 문제가 있으나 자신이 portable화 한 프로그램을 배포하지 않는 다면 상당히 유용한 방법이 군요.

정확한 내용은 링크를 참고하세요

http://portableapps.com/forums 해당 내용을 담고 있는 포럼입니다만.. 영문입니다.. ㅡㅡ+

2bwithu분의 블로그에 소개가 되어 있으니 읽어 보시면 도움이 될 것 같습니다
http://2bwithu.tistory.com/156

ps. 좀더 자세한 내용은 해당 방법에 대하여 좀 더 조사하여 업데이트 하겠습니다.

이올린에 북마크하기(0) 이올린에 추천하기(0)
크리에이티브 커먼즈 라이선스
Creative Commons License

Tag : Portable화, 무설치 프로그램

Write your message and submit

모니터 클리너!! ^^

Posted 2007/05/15 09:49 by 착한악마
출처는 모르겠습니다.
메신저에서 날라 와서...^^

워너브라더스 마크가 있는데.. 거기서 만들었나??
이올린에 북마크하기(0) 이올린에 추천하기(0)
크리에이티브 커먼즈 라이선스
Creative Commons License

Write your message and submit
GBN VAL
A 001
A 002
A 003
A 004
A 005
A 011
B 007
B 004
B 005
B 010
C 011
C 001
C 002
C 003

이런 내용이 있을때 gbn으로 그룹핑을 하고 val의 내용을 하나의 컬럼으로 받고 싶다고 해보자
예를 들어

GBN VAL
A 001,002,003,004,005,011
B 004,005,007,010
C 001,002,003,011
이런식으로..^^

대부분의 경우 역시 프로그램에서 해결하거나, decode 구분에 rownum이나 rank등을 사용하여 처리 했을 것이다.

하지만 프로그램에서 처리 할 경우는 디비에서 보다 느려지게되고,
decode 구분으로 처리 할 겨우는 deocde로 지정되어 있는 갯수만큼만 나열되게 된다.

이때 쓸 수 있는 좋은 방법이 xmlagg와 xmlelement 함수다

xmlelement는 주어진 태그로 값을 감싸 하나의 xml 엘리먼트를 만들어 주고
xmlagg는 xml 문서를 만들어주는 함수이다.


select  gbn,
          xmlelement(a,val) val
  from test

의 결과는
GBN VAL
A <A>001</A>
A <A>002</A>
A <A>003</A>
A <A>004</A>
A <A>005</A>
A <A>011</A>
B <A>007</A>
B <A>004</A>
B <A>005</A>
B <A>010</A>
C <A>011</A>
C <A>001</A>
C <A>002</A>
C <A>003</A>

이렇게 나오게 된다.
xmlelement(a,val) --> 첫번째 항은 태그명이 되며 두번째 항은 태그내의 값이 된다.
                                첫번째 항을 소문자로 적어도 대문자로 태그가 만들어진다
                                따로 문자열 표시를 하지 않기 때문에 예약어의 경우 에러가 난다.
                                그때는 "로 감싸주면 된다.

이것을

select  gbn,
           xmlagg(xmlelement(a,val)) val
  from test
group by gbn

이렇게 xmlagg로 한번 감싸 준다. xmlagg는 그룹함수로 해당 내용을 xml 문서로 만들어 준다
결과는
GBN VAL
A <A>001</A><A>002</A><A>003</A><A>005</A><A>011</A><A>004</A>
B <A>007</A><A>004</A><A>010</A><A>005</A>
C <A>011</A><A>003</A><A>001</A><A>002</A>
요렇게 된다.

여기서 xml함수를 하나 더써서 태그 빼고 값만 가져온다
더불어 xmlagg 내의 내용을 val 로 order by  해준다

select  gbn,
          xmlagg(xmlelement(a,val) order by val).extract('//text()') val
  from test
group by gbn 

GBN VAL
A 001002003004005011
B 004005007010
C 001002003011

val 값을 서로 구분하기 위해 값을 가져올때 미리 ','를 붙여 보자

select  gbn,
           xmlagg(xmlelement(a,',' || val) order by val).extract('//text()') val
  from test
group by gbn

GBN VAL
A ,001,002,003,004,005,011
B ,004,005,007,010
C ,001,002,003,011

마지막으로 맨 앞의 콤마 하나를 제거해준다

select  gbn,
          substr(xmlagg(xmlelement(a,',' || val) order by val).extract('//text()'), 2) val
  from test
group by gbn 

GBN VAL
A 001,002,003,004,005,011
B 004,005,007,010
C 001,002,003,011

완성~~~ ^^


ps. xmlagg나 xmlelement를 사용하여 나온 결과는 xml형을 가지게 됩니다. 이걸 substr을 쓰면 문자열형식으로 바뀌는데, substr을 사용하지 않고 문자열 형식으로 받고 싶을 때는
xmlagg(xmlelement(a,',' || val) order by val).extract('//text()')
뒤에 가볍게
.getStringVal()
요거 하나 붙여주세요~
xmlagg(xmlelement(a,',' || val) order by val).extract('//text()').etStringVal()
 
이올린에 북마크하기(0) 이올린에 추천하기(0)
크리에이티브 커먼즈 라이선스
Creative Commons License

  1. BlogIcon Qhtlr

    | 2007/05/02 14:18 | PERMALINK | EDIT | REPLY |

    잘 읽었습니다..9i부터 제공되는군요.

  2. WON

    | 2008/09/09 10:08 | PERMALINK | EDIT | REPLY |

    님좀 짱인듯!

  3. BlogIcon 착한악마

    | 2008/09/30 02:30 | PERMALINK | EDIT | REPLY |

    감사합니다. ^^ 헌데 이 쿼리의 원안은 제 회사 선배님이 십니다.. ㅎㅎ

Write your message and submit

[오라클] 불규칙한 데이터 항목의 그룹핑 팁

Posted 2007/04/30 16:05 by 착한악마
MONTH GBN
2007-01 A
2007-02 A
2007-03 B
2007-04 B
2007-05 A
2007-06 A
2007-07 B
2007-08 C
2007-09 A
2007-10 C
2007-11 C

위와 같은 데이터로