我使用DBD:ODBC模块和FreeTDS查询带有Perl的MSSQL数据库。
查询响应成功返回,但反斜杠字符\
已从响应中删除。
因此,例如,返回的应该阅读c:\some_dir\some_file
的字段之一的文本中的Windows目录正在返回c:some_dirsome_file
。在我运行查询的同一个Linux机器上使用iSQL或tSQL时,反斜杠字符按预期存在。
有关如何让它不删除反斜杠或可能导致它的原因的任何想法?
答案 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'
]
];