RSQLite получает ошибку: такой таблицы нет, но таблица явно есть - PullRequest
0 голосов
/ 17 марта 2020

Вот воспроизводимый пример:

  1. Создание базы данных локально

    conn_test <- DBI::dbConnect(drv = RSQLite::SQLite(), "C:/Users/xxx/Documents/DB_test")
    
  2. Создание таблицы

    DBI::dbWriteTable(conn = conn_test, name = "[Tbl_test]", value = mtcars)
    DBI::dbListTables(conn = conn_test)
    
  3. Получить таблицу с некоторыми корректировками

    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

Как решить эту проблему?

1 Ответ

1 голос
/ 17 марта 2020

Убрать заключенные в скобки идентификаторы из таблицы: напишите:

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...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...