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
운영게시판
최근게시물
PostgreSQL Q&A 3812 게시물 읽기
No. 3812
아래 제 질문에 추가 질문입니다
작성자
김영진
작성일
2001-12-28 11:51
조회수
1,755

제 질문에 소똥님이 comment 달아주셨더군요..

근데..제가 제대로 설명을 못해 질문 이해를 잘 못하신거 같아서

추가로 말씀 드립니다.

 

음.. 조건은 CPU, RAM, VGA, 사용환경 이렇게 4가지구여..

저희가 회원들에게 입력을 받을때 select 태그로 선택하도록 했습니다.

<select name="cpu">

<option>-INTEL</option>

<option value="c1">Pentium-2 233이하</option>

<option value="c2">Pentium-2 233MHz이상~450MH미만</option>

<option value="c3">Pentium-3 450MHz이상~600MHz미만</option>

<option value="c4">Pentium-3 600MHz이상~1GHz이상</option>

<option>Pentium-4</option>

<option value="c5">Celeron 400MHz 미만</option>

<option value="c6">Celeron 400MHz 이상 ~ Celeron 600MHz

미만</option>

<option value="c7">Celeron 600MHz 이상 </option>

<option>-AMD</option>

<option value="c8">K6</option>

<option value="c9">Athlon Classic 750MHz미만</option>

<option value="c10">Athlon Classic 750MHz이상</option>

<option value="c11">Duron 700MHz 미만</option>

<option value="c12">Duron 700MHz 이상</option>

<option value="c13">Thunderbird 800MHz 미만</option>

<option value="c14">Thunderbird 800MHz 이상</option>

<option value="c15">Athlon XP</option>

<option value="c16">- 기타</option>

</select>

이런 식으로요...

그래서

psql에서

\o tester1-1-1-1.txt

\t

\ select name, user_id, psno, tel, email from testers where cpu='c1' and ram='r1' and video='v1' and internet='t1';

\t

\o

이런 방법으로 조건을 빼내고 있습니다.

cpu는 value가 c1~c16까지

ram은 value가 r1~r5까지

video는 value가 v1~v19까지

internet은 value가 1~4까지 입니다.

중간에 필요없는 경우의 수를 뺴서

뽑아야 되는 경우의 수가 1683가지 입니다.

 

경우의 수가 너무 많아 프로그램을 짜서 돌리고 싶습니다.

제가 아는게 하나도 없어서... 상세한 프로그램 소스를 알고 싶습니다.

한가지 더 여쭤봅니다.

ftp로 화일을 다운 받으려 합니다.

근데 화일 이름이 tester1-1-1-1.txt, tester2-1-1-3.txt...

이런 식으로 되어 있습니다.

$ get tester1-1-1-1.txt

$ get tester2-1-1-3.txt

...............

이런 식으로 천개의 화일이 넘는데..

일일이 화일명을 바꾸면서 다운 받고 있는데 넘 힘들어서..

편하게 받는 방법을 찾고 있습니다.

 

도스에서는 이런 경우 tester*.txt 이런 식으로 쓰면

tester가 들어가는 모든 화일을 처리할 수 있자나요..

리눅스 계열에선 이런 방법이 없나요..??

참고로..저희 OS는 FreeBSD입니다.

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

<아래>의 내용을 파일로 만들어 실행퍼미션을 주시고 실행하세요

 

% 따옴표와 띄어쓰기(파이슨을 잘모르신다면 스페이스 갯수까지 똑같이하셔야함)반드시 주의하시고 ,참먼져 파이슨이 깔려있는지 깔려있다면 pg모듈이 올라와 있는지도 확인해야하는데...

 

그리고 ftp문제는

prompt하고

mget tester*.txt

이렇게하시면되는데 문제는 화일수가 너무많아서(정확히는 해당되는 화일이름을 모두더한 길이가 버퍼용량을 초과해버리면 실패할거여요)

 

그냥 tar로 묶어서 받으면 되실거같은데요

 

아래프로그램에선 tar파일도 생성되게 했음니다.

 

 

< 아래 >------------------------------------------

<pre>

#! /usr/bin/env python

 

import pg

 

dbname = 'yourdbname'

tfn = 'tester.tar'

 

d = pg.DB(dbname)

g = d.query('select cpu,ram,video,internet from testers group by cpu,ram,video,internet').getresult()

 

# 정상이라면 g 속에 천육백몃개의 종류가 읽혀졌을거고

# 이제 이종류를 바탕으로 바라는 내용을 쿼리

 

fnlist=[]

 

for i in g:

# fn이름은 님 마음대로(여러개를 규칙있게하려면 숫자로하든지 종류이름대로 하든지)

fn='tester-%s.%s.%s.%s.txt' % ( i[0],i[1],i[2],i[3] )

qry="""select name, user_id, psno, tel, email from testers where cpu='%s' and ram='%s' and video='%s' and internet='%s' """ % (i[0],i[1],i[2],i[3])

co = g.query(qry).getresult()

 

# content도 님 마음대로

content = """이름 : %s\n아이뒤 : %s\nPSNO : %s\n전화 : %s\n이멜 : %s\n""" % (co[0],co[1],co[2],co[3],co[4])

 

f = open(fn,"w")

f.write(content)

f.close()

 

fnlist.append(fn)

os.system('tar -uf %s %s' % (tfn,fn))

 

print 'total %d files, and tarfile=%s' (len(fnlist),tfn)

for i in fnlist:

print i

 

</pre>

소똥님이 2001-12-28 12:51에 작성한 댓글입니다.

이런 <pre>태그가 안먹네요

 

어떻게해야 띄어쓰기가 되죠?

소똥님이 2001-12-28 12:54에 작성한 댓글입니다.

그냥 pre 태그는 사용할수가 없습니다.

 

[ pre ] ........ [ /pre ]

 

이런식으로 사용합니다. 물론 중간에 있는 빈공간은 없애야 합니다. (지금 미리 없애면 이게 태그로 작용하기 때문에 할수 없군요 :-)

정재익(advance)님이 2001-12-28 15:33에 작성한 댓글입니다.

<아래>의 내용을 파일로 만들어 실행퍼미션을 주시고 실행하세요

 

% 따옴표와 띄어쓰기(파이슨을 잘모르신다면 스페이스 갯수까지 똑같이하셔야함)반드시 주의하시고 ,참먼져 파이슨이 깔려있는지 깔려있다면 pg모듈이 올라와 있는지도 확인해야하는데...

 

그리고 ftp문제는

prompt하고

mget tester*.txt

이렇게하시면되는데 문제는 화일수가 너무많아서(정확히는 해당되는 화일이름을 모두더한 길이가 버퍼용량을 초과해버리면 실패할거여요)

 

그냥 tar로 묶어서 받으면 되실거같은데요

 

아래프로그램에선 tar파일도 생성되게 했음니다.

 

 

< 아래 >------------------------------------------

#! /usr/bin/env python

import pg

dbname = 'yourdbname'
tfn = 'tester.tar'

d = pg.DB(dbname)
g = d.query('select cpu,ram,video,internet from testers group by cpu,ram,video,internet').getresult()

# 정상이라면 g 속에 천육백몃개의 종류가 읽혀졌을거고
# 이제 이종류를 바탕으로 바라는 내용을 쿼리

fnlist=[]

for i in g:
    # fn이름은 님 마음대로(여러개를 규칙있게하려면 숫자로하든지 종류이름대로 하든지)
    fn='tester-%s.%s.%s.%s.txt' % ( i[0],i[1],i[2],i[3] )
    qry="""select name, user_id, psno, tel, email from testers where cpu='%s' and ram='%s' and video='%s' and internet='%s' """ % (i[0],i[1],i[2],i[3])
    co = g.query(qry).getresult()

    # content도 님 마음대로
    content = """이름  : %s\n아이뒤 : %s\nPSNO : %s\n전화 : %s\n이멜 : %s\n""" % (co[0],co[1],co[2],co[3],co[4])

    f = open(fn,"w")
    f.write(content)
    f.close()

    fnlist.append(fn)
    os.system('tar -uf %s %s' % (tfn,fn))

print 'total %d files, and tarfile=%s' (len(fnlist),tfn)
for i in fnlist:
    print i

소똥님이 2001-12-29 07:56에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
3836[질문] 테이블을 만들었는데요.....
이종범
2002-01-03
1363
3837┕>Re: 정상적인 것 같군요.
정재익
2002-01-04 07:47:49
1492
3838 ┕>Re: Re: -_-;; 이해가안가요,,,
이종범
2002-01-04 11:43:39
1492
3839  ┕>Re: Re: Re: -_-;; 이해가안가요,,,
정재익
2002-01-04 13:50:26
1541
3851   ┕>Re: Re: Re: Re: -_-;; 이해가안가요,,,
김대성
2002-01-08 00:27:17
1569
3840  ┕>Re: Re: Re: -_-;; 이해가안가요,,, [3]
김순석
2002-01-04 14:00:07
1783
3830PostgreSQL 최상으로 셋팅 방법?
조성준
2001-12-31
1589
3833┕>Re: PostgreSQL 최상으로 셋팅 방법?
정재익
2002-01-02 10:23:09
1754
3829자바에서 실행시 에러입니다. 좀 봐주세여~
김훈
2001-12-31
1582
3835┕>Re: 자바에서 실행시 에러입니다. 좀 봐주세여~
사이버
2002-01-03 12:11:22
1642
3841 ┕>Re: Re: 답변감사합니다. DB 커넥션문제였네요 ^^ 내용무.
김훈
2002-01-04 20:44:22
1572
3812아래 제 질문에 추가 질문입니다 [4]
김영진
2001-12-28
1755
3802수많은 가지수의 경우로.. [2]
김영진
2001-12-27
1490
3799[급질문]JDBC 드라이버생성위해 ANT 는???
한재권
2001-12-27
1388
3806┕>Re: JDBC &amp; ANT
정재익
2001-12-27 21:54:24
1456
3811┕>Re: [급질문]JDBC 드라이버생성위해 ANT 는???
오도훈
2001-12-28 09:35:38
1597
3796[질문] 이것좀 봐주세여...Help me please..
한재권
2001-12-27
1351
3810┕>Re: [질문] 이것좀 봐주세여...Help me please..
오도훈
2001-12-28 09:24:37
1659
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다