r - RSQLite 得到错误:没有这样的表,但显然有表
问题描述
这是一个可重现的示例:
在本地创建数据库
conn_test <- DBI::dbConnect(drv = RSQLite::SQLite(), "C:/Users/xxx/Documents/DB_test")
创建表
DBI::dbWriteTable(conn = conn_test, name = "[Tbl_test]", value = mtcars) DBI::dbListTables(conn = conn_test)
得到一张有一些调整的桌子
DBI::dbGetQuery(conn = conn_test, statement = " SELECT *, CASE WHEN [cyl] = 6 THEN 1 ELSE 0 END AS TEST_RESULT FROM [Tbl_test] ;")
错误信息:
Error: no such table: Tbl_test
如何解决这个问题?
解决方案
从 table-write 中删除带引号的标识符括号:
conn_test <- DBI::dbConnect(drv = RSQLite::SQLite(), "~/StackOverflow/DB_test")
DBI::dbWriteTable(conn = conn_test, name = "Tbl_test", value = mtcars)
DBI::dbGetQuery(conn = conn_test,
statement = "
SELECT *,
CASE
WHEN [cyl] = 6 THEN 1
ELSE 0
END AS TEST_RESULT
FROM [Tbl_test]
;")
# mpg cyl disp hp drat wt qsec vs am gear carb TEST_RESULT
# 1 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4 1
# 2 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4 1
# 3 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1 0
# ...snip...
推荐阅读
- cas - CAS根据不同服务切换主题
- android - 是 Kotlin 中任何其他类的 Nothing 子类吗?
- kubernetes - Kustomize - “未能找到补丁的唯一目标......”
- java - 如何在应用程序的生命周期中保持绑定服务运行?
- c - 在c中读取时解析文件
- python-3.x - 如何在使用 pyaudio 时不获取 OSError: [Errno -9993] I/O 设备的非法组合
- javascript - What query do I use to return unique rows in
.find() - c++ - char数组返回main时printf printig不一致的垃圾
- tensorflow - 针对特定类对 Pascal_Voc 进行微调
- r - 将数据框导入 R 时标记 .xlsx 文件中的特定数据