问题描述
我想从 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
sqlSave(myconn,mydf,tablename = 'some_schema.my_table',append = F,rownames = F,verbose=TRUE)