使用Perl DBD:ODBC模块从查询响应字符串中删除反斜杠

时间:2013-08-14 18:11:10

标签: perl odbc freetds

我使用DBD:ODBC模块和FreeTDS查询带有Perl的MSSQL数据库。

查询响应成功返回,但反斜杠字符\已从响应中删除。

因此,例如,返回的应该阅读c:\some_dir\some_file的字段之一的文本中的Windows目录正在返回c:some_dirsome_file。在我运行查询的同一个Linux机器上使用iSQL或tSQL时,反斜杠字符按预期存在。

有关如何让它不删除反斜杠或可能导致它的原因的任何想法?

2 个答案:

答案 0 :(得分:0)

使用this作为参考,似乎MSSQL读取\强制换行。我推断当MSSQL尝试返回字符串时,它只是删除任何空格。

答案 1 :(得分:0)

你能告诉我们isql输出,perl脚本并告诉我们包含dir路径的列类型。这对我来说很好用:

$ 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'
          ]
        ];