2012-07-25 7 views
-1

에 공백이 포함 된 문자열을 업로드 I가 다음과 같이 3 개 필드를 포함 whihc를 CSV :펄 + DBD :: 오라클 : 오라클 DB

value1, value2, value 3 

참고 : "값"사이에 공백이와 "(3) "제 3 분야에서.

이 데이터를 perl DBD :: Oracle 및 DBI를 사용하여 Oracle DB에 행 단위로 업로드합니다. 아래와 같이 업로드 할 faling 불평이다, 그러나

$dbh->do ("INSERT INTO $table VALUES ($col1_value, $col2_value, $col3_value)"); 

: 여기

내가 업로드 사용하고있는 쿼리입니다 그래서

DBD::Oracle::db do failed: ORA-00917: missing comma (DBD ERROR: error possibly near <*> indicator at char 103 in 'INSERT INTO TABLE_NAME VALUES (value1, value2, value <*>3)') 

는 했나 3의 값에 실패 whihc 공백이 있습니다.

오라클에 "공간"이 포함 된 문자열을 업로드하는 방법을 안내해 줄 수 있습니까?

BTW, 나는 신탁 인물이 아니므로, 내가하고있는 일이 잘못되면 나를 가리켜주십시오.

Thnaks.

답변

4

placeholders을 사용하여 SQL에 값을 넣으려는 여러 가지 이유로 (보안, 효율성, 정확성).

my $rows = $dbh->do (
    "INSERT INTO $table VALUES (?, ?, ?)", 
    undef, 
    $col1_value, $col2_value, $col3_value 
); 

이 어떤 구문과 보안을 위해 모두 탈출 할 필요 피할 수 있습니다.

+0

황소의 눈 !!! 번쩍이는 빠른 응답을 주신 Schwern에게 감사드립니다. 너무 감사합니다. – slayedbylucifer