안녕하세요!
제가 요즘 며칠동안 아파치+Oracle8i와 DBI+DBD를 Perl로 연동하는
프로그램을 만들고 있는데 공백문자 때문에 고생하고 있습니다.-_-;
단지 공백문자 문제라면 할 수 있는데, 이게 터미널창에서
Perl 프로그램을 실행하면 공백문자 없이 내용이 잘 들어갑니다.
그런데, 웹상에선 이게 문제가 생기더라구요.
다시 자세히 설명하자면, 먼저 테이블을 아래처럼 구성했습니다.
create table class {
DAYS VARCHAR2(10) not null,
NAME VARCHAR2(30),
CID NUMBER(2),
MIME_TYPE VARCHAR2(10),
KIND VARCHAR2(5),
};
그런후, Perl 프로그램에서 아래처럼 작성했습니다.
local $query = qq{insert into class(days,name,cid,mime_type,kind) values( ?, ?, ?, ?, ?)};
local $cursor=$dbh->prepare($query);
foreach $list(@contents) {
eval {
$cursor->bind_param(1,$days,$DBD::SQL_VARCHAR2);
$cursor->bind_param(2,$list,$DBD::SQL_CHAR);
$cursor->bind_param(3,$subject,$DBD::SQL_NUMBER);
$cursor->bind_param(4,$mime,$DBD::SQL_VARCHAR2);
$cursor->bind_param(5,$kind,$DBD::SQL_VARCHAR2);
$cursor->execute();
};
if( $@ ) {
print "DataBase Error: $DBI::errstr<br>\n";
print "Query: $query<br>\n";
$dbh->rollback();
$dbh->disconnect();
exit;
}
}
$dbh->commit();
$cursor->finish();
이렇게 했는데, 이게 터미날상에서 실행하고 sqlplus에서 확인해 보면
SQL>select * from class;
DAYS NAME CID MIME_TYPE KIND D
---------- ------------------------------ ---------- ---------- ----- -
20000110 dual_Xwin.htm 1 text/html file 3
20000110 dual_Xwin2.htm 1 text/html file
이렇게 NAME 컬럼이 제대로 들어갑니다.
그런데 웹상에서 실행하면 이게 아래처럼 들어갑니다.
SQL>select * from class;
DAYS NAME CID MIME_TYPE KIND D
---------- ------------------------------ ---------- ---------- ----- -
20000110 dual_Xwin.htm 1 text/html file 3
20000110 dual_Xwin2.htm 1 text/html file
이렇게 처음의 NAME 컬럼은 제대로 들어가는데 그다음부터는 항상 공백이
한칸 들어가더군요. ㅠ.ㅠ
도대체 어디를 손봐야 하나요??
며칠동안 이것 저것 해봐도 결과가 똑같습니다.
제발 아시는분은 한수 가르침 부탁드립니다.
|