小编i_l*_*ate的帖子

使用 dbSendQuery 在数据库上创建表时避免警告消息“有一个结果对象仍在使用中”

背景:

我使用dbplyrdplyr从数据库中提取数据,然后我使用该命令dbSendQuery()来构建我的表。


问题:

建立表后,如果我运行另一个命令,我会收到以下警告:

Warning messages: 1. In new_result(connection@ptr, statement): Cancelling previous query 2. In connection_release(conn@ptr) :? There is a result object still in use. The connection will be automatically released when it is closed.


题:

因为我没有要获取的结果(我正在发送构建表的命令),所以我不确定如何避免此警告。目前,我在构建表后断开连接,错误消失了。我能做些什么来避免这个警告?

目前一切正常,我只有这个警告。我只是想避免它,因为我认为我应该在建立我的桌子后清理一些东西


代码示例

# establish connection con = DBI::dbConnect(<connection stuff here>)

# connect to table and database transactions = tbl(con,in_schema(“DATABASE_NAME”,”TABLE_NAME”))

# build query string query_string = “SELECT * FROM some_table”

# drop current version of table …

database r teradata dplyr dbplyr

8
推荐指数
1
解决办法
3148
查看次数

如何转换存储为两列(开始、结束)的日期范围以创建新行索引并填充值

我想将存储为两列(开始、结束)+值的日期范围转换为仅包含日期和值的两个新列。

\n\n

我的数据:

\n\n
    id     end          start        value\n1   4421   2014-01-01   2014-01-03   10\n2   4421   2014-01-04   2014-01-04   500\n3   4421   2014-01-05   2014-01-07   20\n4   5560   2014-01-02   2014-01-03   100\n5   5560   2014-01-04   2014-01-04   600\n
Run Code Online (Sandbox Code Playgroud)\n\n

我想要的是:

\n\n
    Date         id     value\n0   2014-01-01   4421   10\n1   2014-01-02   4421   10\n2   2014-01-03   4421   10\n3   2014-01-04   4421   500\n4   2014-01-05   4421   20\n5   2014-01-06   4421   20\n6   2014-01-07   4421   20\n7   2014-01-01   5560   NA\n8   2014-01-02   5560   100\n9   2014-01-03   5560   100\n10  2014-01-04   5560   600\n
Run Code Online (Sandbox Code Playgroud)\n\n

I\xe2\x80\x99m 使用 dplyr,所以我可以与 mutate 和管道等一起使用的东西会很有用。

\n\n

样本数据:

\n\n
id <- c(4421, 4421, …
Run Code Online (Sandbox Code Playgroud)

time r time-series dplyr

5
推荐指数
1
解决办法
954
查看次数

此警告的含义;“警告消息:在 get(object,envir = currentEnv, inherits = TRUE) 中:重新开始中断的承诺评估”

我在 R 中编写了一个函数,它从数据库中提取数据并构建一个新表。

我的新表格标有摘录日期 ( build_date_0)。

当我调试我的函数时,当我查看我的日期字符串时,我收到以下警告:

Browse[2]> build_date_0
[1] "2019-05-01"
Warning message:
In get(object, envir = currentEnv, inherits = TRUE) :
  restarting interrupted promise evaluation
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 这个警告是什么意思/发生了什么(分步/基本)?
  2. 我应该关心吗?
  3. 一般来说,我如何才能找到有关此错误的更多信息?

这是我的代码:

build_account_db = function(conn = connection_object
                            ,various_inputs = 24){
browser()

# create connection objects
tabs_1 = dplyr::tbl(conn,in_schema("DB_1","VIEW_W") # some table

# create date string
  build_date_0 = lubridate::today() %>% as.character()
  build_date = str_replace_all(build_date_0,"-+","_")
  db_name_1 = paste0('DATABASE.tab_1_',build_date)
  db_name_2 = paste0('DATABASE.tab_2_',build_date)

# build query
query_text_1 = tabs_1 %>% select(COL_1) # some query …
Run Code Online (Sandbox Code Playgroud)

error-handling warnings r

5
推荐指数
1
解决办法
2186
查看次数

标签 统计

r ×3

dplyr ×2

database ×1

dbplyr ×1

error-handling ×1

teradata ×1

time ×1

time-series ×1

warnings ×1