DBI :: dbWriteTable не добавляется после определенного числа строк и выдает исключение на nvarchar (max) - PullRequest
0 голосов
/ 06 сентября 2018
  • В настоящее время работает с профессиональными драйверами Rstudio
  • Я также установил для всех varchar значение max в таблице Sqlserver, но это не помогло.

    diag_test <- diag[1:1025]
    system.time({
    DBI::dbWriteTable(con, "urban_prodbi_diag", diag_test, append = TRUE)
    })
    
    Error in result_insert_dataframe(rs@ptr, values) : 
    nanodbc/nanodbc.cpp:1587: HY000: The incoming tabular data stream (TDS) 
    remote procedure call (RPC) protocol stream is incorrect. Parameter 5 
    (""): The supplied length is not valid for data type nvarchar(max). 
    Check the source data for invalid lengths. An example of an invalid 
    length is data of nchar type with an odd length in bytes., Timing 
    stopped at: 0.049 0.002 0.135
    
  • Хотя работает с меньшим количеством строк.

  • Несколько примеров подмножеств:

    diag_test <- diagcopy[1:1024]
    system.time({
    DBI::dbWriteTable(con, "urban_prodbi_diag", diag_test, append = TRUE)
    })
    user  system elapsed 
    0.042   0.000   0.109 
    
    
    diag_test <- diagcopy[1000:1025]
    system.time({
    odbc::dbWriteTable(con, "urban_prodbi_diag", diag_test, append = TRUE)
     })
    user  system elapsed 
    0.014   0.000   0.074 
    
  • Вставка не выдает никакой ошибки через пакет RODBC в той же схеме таблицы и в фрейме данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...