R - dbGetQuery 并保留注释

R - dbGetQuery and preserve comments

提问人:yake84 提问时间:5/24/2023 更新时间:5/24/2023 访问量:56

问:

似乎当我向它传递评论时,它不会将评论发送到我们的数据库。有没有办法保留评论? 我正在尝试跟踪 Posit Connect 上的哪些应用程序正在发送哪些查询并尝试执行以下操作:dbGetQuery()

library(odbc)
library(glue)

glue_guid <- function(x) {
  glue(
    "/*platform: rsc, id: {guid}*/ {x}",
    guid = Sys.getenv('CONNECT_CONTENT_GUID') # exists on RStudio/Posit Connect
  )
}

conn <- dbConnect(...)
sql <- glue_guid("select * from my_table")
# /*platform: rsc, id: */ select * from my_table

dbGetQuery(conn, sql)

所以问题是:

  • 有没有更好的方法来跟踪从连接到我们的数据库到应用程序的 SQL 查询?
  • 如果不是,这种方法^^^是否可行?
  • 如果没有,我可以/应该提出问题,如果是这样,哪个包? 或?我认为是在这里做的DBIodbcDBI
rodbc r-dbi

评论

0赞 Ralf Stubner 6/5/2023
您使用的是哪个数据库服务器?您是否希望数据库服务器收到完整的查询“/*platform: rsc, id: */ select * from my_table”?你如何确定情况并非如此?
0赞 yake84 6/6/2023
谢谢。我们正在使用 Netezza,当我通过 发送查询历史记录数据库 () 时,我在查询历史记录数据库 () 中看不到注释。但是,如果我从 DBeaver 运行它,我确实会看到评论。我希望 Netezza 能够收到完整的查询,或者以更好的方式将 SQL 语句与生成查询的 Connect 上的内容相匹配。histdbdbGetQuery()
0赞 Ralf Stubner 6/7/2023
好的,您能否在 Connect 服务器上设置 DSN 并测试使用时注释是否进入数据库?这样,我们就可以确定是 ODBC 驱动程序还是任何 R 包删除了注释。isql DSN
0赞 yake84 6/20/2023
终于要测试它了,评论被剥离了:(
0赞 Ralf Stubner 6/23/2023
这很糟糕:-(如果驱动程序已经删除了注释,则最好的办法是使用客户端日志记录。

答: 暂无答案