将 R 数据框插入 SQL (RODBC) - 未找到错误表

问题描述

我想从 R 中删除我的整个数据帧,最好使用带有 import time import pyautogui from pynput.keyboard import Key,Controller keyboard = Controller() pyautogui.keyDown('w') time.sleep(3) pyautogui.keyUp('w') time.sleep(5) keyboard.press('w') time.sleep(3) keyboard.release('w') 语句(不是 sqlSave)的 RODBC。这是我的示例代码。

sqlQuery

执行后,我收到错误消息:

sqlColumns(channel,tablename) 中的错误: ‘my_table’:在频道上找不到表格

当我检查 SQL Server 时,存在一个空表。

如果我再次运行相同的代码,我会收到错误消息:

sqlSave 出错(myconn,mydf,tablename = "[some_db].[some_schema].[my_table]",: 42S01 2714 [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]数据库中已经有一个名为“my_table”的对象。 [RODBC] 错误:无法 SQLExecDirect 'CREATE TABLE [some_db].[some_schema].[my_table] ("col_1" float,"col_2" float)'

有什么关于如何排除故障的建议吗?

更新

在 SSMS 中我可以成功运行以下命令:

library(RODBC)
myconn <- odbcDriverConnect("some connection string")
mydf <- data.frame(col_1 = c(1,2,3),col_2 = c(2,3,4))
sqlSave(myconn,tablename = '[some_db].[some_schema].[my_table]',append = F,rownames = F,verbose=TRUE)
odbcClose(myconn)

以下是连接字符串的详细信息:

CREATE TABLE [some_db].[some_schema].[my_table] (
    test int
);
drop table [some_db].[some_schema].[my_table]

解决方法

为避免错误,您可以specify the database in the connection string

Driver=ODBC Driver 17 for SQL Server; Server = someserveraddress; database = some_db; Uid = user_login; Pwd = some_password

avoid using brackets

sqlSave(myconn,mydf,tablename = 'some_schema.my_table',append = F,rownames = F,verbose=TRUE)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...