Ошибка при вставке столбца даты в базу данных Oracle с использованием пакета odbc в R

мы используем соединение odbc для подключения целевой базы данных (базы данных oracle), и нам нужно вставить фрейм данных в целевую базу данных. Мы используем dbBind () для вставки фрейма данных в базу данных. Пожалуйста, найдите образцы данных и код, упомянутые ниже.

Dataframe: Inputdata
  column1    column2    column3      date_column  column4
  <chr>      <chr>      <chr>        <chr>         <chr>
1 1111       6          fff          2015-11-01    MCA
2 2222       1          aaa          2006-12-02    NA
3 3333       2          bbb          2007-10-03    NA
4 4444       3          ccc          2008-01-04    NA
5 555        4          ddd          2007-11-05    NA
6 6666       5          eee          2010-11-06    BCH


R script :
Target1Conn<-dbConnect(odbc::odbc(), dsn = "TARGETDB", uid = "username", pwd = "password")
insert <- dbSendQuery(Target1Conn, paste0('insert into ', outputTableName, '(column1,column2,column3,date_column,column4) values(?,?,?,?,?)'))
dbBind(insert, list(InputData$column1,InputData$column2,InputData$column3,InputData$date_column,InputData$column4))"

Error:
Error in result_bind(res@ptr, as.list(params), batch_rows) :
  nanodbc/nanodbc.cpp:1617: 00000: [Oracle][ODBC][Ora]ORA-01861: literal does not match format string

Мой DataFrame имеет 1,3 миллиона записей, и при вышеупомянутом подходе после вставки 1024 записей скрипт выдает ошибку, упомянутую выше.

если мы проигнорируем столбец даты и вставим данные, мы сможем вставить данные в базу данных без каких-либо проблем. Сообщите нам, если есть другое решение.


person santhosh.challa    schedule 17.02.2020    source источник


Ответы (1)


Пытаться

library(tidyverse)
library(lubridate)

df <- df %>%
    mutate(date_column = ymd(date_column))

а затем снова запустите свой код.

person Georgery    schedule 17.02.2020
comment
Привет, Джорджи, спасибо за ответ. после выполнения этой команды df ‹- df%›% mutate (date_column = ymd (date_column)) мы получаем указанную ниже ошибку. Ошибка в result_bind (res @ ptr, as.list (params), batch_rows): nanodbc / nanodbc.cpp: 1617: 00000: [Oracle] [ODBC] Числовое значение вне допустимого диапазона. [Oracle] [ODBC] Общая ошибка. ут диапазона. - person santhosh.challa; 17.02.2020