초보입니다. 테이블의 속성이 int, smalint, tinyint, varchar으로 구성되어 있는 이 파일을 추출하여 txt 파일로 만들고 싶습니다. 테이블의 데이터가 int, smallint 와 같아도 데이터는 모조리 varchar형태로 변환하여 txt로 저장하고 싶습니다. 어떻게 하면 되나요?
컬럼의 속성이 뭐든지간에, 그것은 해당 DB가 데이터를 다룰 때 사용하는 값일 뿐이고,
그 값들을 텍스트로 저장할 때에는 관계가 없습니다.
간략한 스크립트 언어를 작성하셔서 만드시면 됩니다.
예제나 수도코드가 필요하시면 다시 덧글 달아주세요.
예제 부탁드립니다. 데이터 스키마가 uid int default '0' NOT NULL auto_increment, name varchar(10) NOT NULL default '', regi_date datetime NOT NULL default '0000-00-00' 인 데이터를 txt에 추출하여 저장하여 받고자 하는 데이터는 1 초보자 2000-00-00 이렇게 varchar로 적용하여 txt로 추출했을때 구분자가 없어도 해당 데이터 길이로 데이터를 구분할수 있도록 하려고 합니다.
select cast(name as char) from test_table;
cast 문 써서 강제해도 됩니다.
(1) MySQL만 가지고 하는 방법입니다.
SELECT CONCAT(
RPAD( CAST(`uid` as CHAR), 10, ' ' ),
RPAD( `name`, 10, ' ' ),
DATE_FORMAT( '%Y-$m-$d' ) ) as result
FROM [TABLE]
위와 같이 하면, 하나의 컬럼으로 나옵니다. 물론 기존의 각 컬럼이 고정된 크기를 가지도록 공백이 들어갑니다.
위의 결과를 저장하시면 되겠습니다.
(2) php등의 스크립트로 하는 방법입니다.
$output = "";
$r = mysql_query( "SELECT * FROM [TABLE]" );
while( $d = mysql_fetch_row( $r ) )
{
foreach( $d as $v )
$output .= str_pad( $v, 10 );
$output .= "\n";
}
// $output을 어딘가에 저장 ( 파일 등.. )
감사합니다~~~~