Q&A

  • 기초질문....
늘 이런 초급 질문을 드려서 죄송합니다..

델파이를 공부하면서 너무 띄엄띄엄 공부를 한거 같네요..

이것저것 알것도 같은데 조합이 안되서요...

DB는 오라클을 쓰고 있습니다.

필드

NUM (VARCHAR2(6)) , BIGO (BARCHAR2(1))

000001

000002

000004

000015

000100

001202

012512

005485

.

.

.

이런식으로 해서 데이터가 한 10000 여개가 있습니다.
NUM은 중복되지 않습니다...
이런 10000여개의 데이타중에 유저가 원하는 퍼센트(예 : 30%)만의 데이타만 추출해서 BIGO 필드에 * 을 찍어야 되는건데요...

머리에선 빙빙 도는데...도무지 코딩을 할 수가 없어서요...

쿼리 돌려서 TOTAL COUNT 나온걸 해당(EDIT1.TXT)% 로 나누고(DIV)..

이렇게 하면 되긴 될거 같은데...쩌비...

그다지 어렵지는 않을것 같은데...

이 무지해서 불쌍한넘! 불쌍히 여기시어 방법을 가르쳐 주심 감사하겠습니다.



그리고 여기 계시는 많은 고수님들!

강좌란에 정말 기초적인부분, 당연 책에서 나오는 부분이지만

님들의 설명이 어느책보다 우수하다는 것을 알아주셨으면 합니다.

감사합니다....도와 주실거죠?
3  COMMENTS
  • Profile
    권희수 2002.01.15 19:56

    추출될 30%의 대상이 랜덤해야 한다면 그냥 날코딩해야하구여
    대상에 상관없다면 update 테이블 set bigi='*' where rownum<=건수
    이러케 하시면 됨니다.
  • Profile
    조장선 2002.01.16 01:21
    답변 감사합니다...
    그런데 랜덤이어야 하거든요...그래서 문제가 됩니다...
    조금만 더 도와주세요...
    날코딩이란것이?
  • Profile
    권희수 2002.01.16 04:23

    흠 랜덤한 30%라면 어쩔수 없져...

    질문하신 케이스라면
    데이타는 전부숫자라고 했으니까 int64배열을 만드시구여
    (자릿수가 커서 int로는 부족)
    데이타 전부를 배열에 읽어들이구여
    (키값으로 사용할것)
    별도로 전체 건수는 가지고 계셔야져..

    여기서 난수발생함수를 사용하셔서
    대상 레코드 번호를 결정합니다.

    이 번호에 해당하는 숫자를 배열에서 가져다가
    update 테이블 set bigo='*' where num=배열에서 가져온 숫자

    이렇케 쿼리를 실행시키면 되겠져...
    수행속도를 높이시려면 num필드를 index로 만드셔야하구여