首页 > 解决方案 > 使用 dbWriteTable 将数据从 Linux 服务器写入 SQL Server 时出错

问题描述

dbWriteTable我正在尝试使用from odbcpackage将数据写入 SQL Server 中的表。并且,得到这个错误:

dbWriteTable(con1, 'mtcars', mtcars[1:5, ])

错误:'CREATE TABLE "mtcars" ("row_names" varchar(255), "mpg" FLOAT, "cyl" "disp" FLOAT, "hp" FLOAT, "drat" FLOAT, "wt" FLOAT, "qsec" FLOAT, "vs" FLOAT、"am" FLOAT、"gear" FLOAT、"carb" FLOAT)' nanodbc/nanodbc.cpp:1587: 42000: [FreeTDS] [SQL Server]'mtcars' 附近的语法不正确。

它在 Windows 机器上运行良好。任何帮助,将不胜感激..

标签: rsql-serverlinuxodbc

解决方案


该会话的QUOTED_IDENTIFIER选项为 OFF。可能是因为 FreeTDS 驱动程序。

SQL Server Native Client ODBC 驱动程序和用于 SQL Server 的 SQL Server Native Client OLE DB Provider 在连接时自动将 QUOTED_IDENTIFIER 设置为 ON。这可以在 ODBC 数据源、ODBC 连接属性或 OLE DB 连接属性中进行配置。对于来自 DB-Library 应用程序的连接,SET QUOTED_IDENTIFIER 的默认值为 OFF。

您可以尝试将 QUOTED_IDENTIFER 设置为 ON,或切换到Microsoft ODBC Driver for Linux


推荐阅读