我正在使用 DBD:ODBC 模块和 FreeTDS 使用 Perl 查询 MSSQL DB。
查询响应成功返回,但反斜杠字符\
已从响应中删除。
因此,例如,应该读取的返回字段之一的文本中的 Windows 目录c:\some_dir\some_file
正在返回c:some_dirsome_file
。在我运行查询的同一个 linux 机器上使用 iSQL 或 tSQL 时,反斜杠字符会按预期出现。
关于如何让它不删除反斜杠或可能导致它的任何想法?
以此为参考,似乎 MSSQL 将 读取\
为强制换行符。我会推断,当 MSSQL 尝试返回字符串时,它只是删除了任何空格。
您能否向我们展示 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'
]
];