0

DBD:ODBC モジュールと FreeTDS を使用して、Perl で MSSQL DB にクエリを実行しています。

クエリの応答は正常に返されますが、バックスラッシュ文字\が応答から削除されます。

たとえば、返されたフィールドの 1 つのテキスト内の Windows ディレクトリは、c:\some_dir\some_fileを返しc:some_dirsome_fileます。クエリを実行している同じ Linux ボックスで iSQL または tSQL を使用すると、期待どおりにバックスラッシュ文字が表示されます。

バックスラッシュを削除しないようにする方法、または何が原因であるかについてのアイデアはありますか?

4

2 に答える 2

0

これを参考にすると、MSSQL は\を改行を強制するものとして読み取るように見えます。MSSQL が文字列を返そうとすると、単純に空白が削除されると推測します。

于 2013-08-14T20:26:00.690 に答える
0

isql の出力と perl スクリプトを見せて、ディレクトリ パスを含む列の種類を教えてください。ここで私にとってはうまくいきます:

$ perl -MDBI -le '$h = DBI->connect("dbi:ODBC:baugi","xx","yy");eval {$h->do(q/drop table mje/)};$h->do(q/create table mje (a varchar(255))/);$h->do(q|insert into mje values(?)|, undef, q|c:\some_dir\some_file|); my $r = $h->selectall_arrayref(q/select * from mje/);use Data::Dumper;print Dumper($r);'
$VAR1 = [
          [
            'c:\\some_dir\\some_file'
          ]
        ];
于 2013-08-15T07:54:01.727 に答える