使用freetds和unixODBC在SQL Server上运行带重音符号(á,é,í,ó,ú)的查询

时间:2016-12-29 15:47:23

标签: sql-server ubuntu-14.04 freetds unixodbc

我正在使用 Ubuntu 14.04 freetds unixODBC 连接到 2008 Microsoft SQL Server 。我测试了与tsqlisql的连接,但它运行正常。使用isql -v时,如果我在查询中包含重音符号(á,é,í,ó,ú),我会收到以下回复:

  

[37000] [unixODBC] [FreeTDS] [SQL Server]'?'附近的语法不正确。

     

[ISQL]错误:无法执行SQLExecute

在安装freetds和unixODBC软件包时,我收到一条警告消息,说除非有额外的软件包,否则不会接受特殊字符,但我不知道它是哪一个。为了尝试解决这个问题,我卸载了freetds和unixODBC,重新安装它们并没有收到任何警告消息,但在查询中包含重音时仍然收到相同的错误消息。

PS:这是我提出的第一个问题,如果它含糊或不完整就很抱歉。

1 个答案:

答案 0 :(得分:2)

经过一段时间的尝试,我发现解决方案非常简单,并与tsqlisql一起使用。在unixODBC的数据源文件中,我需要设置TDS_Version=8.0

之前的文件:

  

[MSSQL]

     

Driver = FreeTDS

     

服务器= XXX.XXX.XXX.XXX

     

Port = XXXX

     

数据库=名称

新文件:

  

[MSSQL]

     

Driver = FreeTDS

     

服务器= XXX.XXX.XXX.XXX

     

Port = XXXX

     

TDS_Version = 8.0

     

数据库=名称