RODBC를 사용하여 데이터 프레임을 데이터베이스에 삽입하는 데 어려움이 있습니다. 다음은 내가 사용하는 코드입니다 :RODBC sqlSave 문제
data <- data.frame(analysedDataID=c(1,2,3), plateWell=c("a","b","c"), screenPlateOrder=c(1,2,3), wellData=c("A","B","C"))
con <- odbcConnect(DSN, uid="user_id", pwd="some_password")
query <- sqlSave(con, data, tablename = 'wellAnalysedDataTable', rownames=FALSE, append=TRUE)
내가 이것을 실행하려고 나는 다음과 같은 오류 메시지가 얻을 : 여기
Error in odbcUpdate(channel, query, mydata, coldata[m, ], test = test, :
missing columns in 'data'
내가 데이터를 삽입하기 위해 노력하고있어 특정 테이블입니다 입력 :
+------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| analysedDataID | int(10) | YES | | NULL | |
| plateWell | varchar(10) | YES | | NULL | |
| screenPlateOrder | int(10) | YES | | NULL | |
| wellData | varchar(30) | YES | | NULL | |
+------------------+-------------+------+-----+---------+-------+
나는이 설명서를 여러 번 읽고 계속 읽었으므로이 점에서 혼란스러워하지만이 기능은 작동하지 않습니다. 어떤 도움이라도 대단히 감사하겠습니다!
건배!
고마워요! 귀하가 제안한 변경 사항을 추가했으며 더 이상 사례에 문제가없는 것으로 보입니다. 나는 다음과 같은 오류 메시지가 계속하지만 :
'index column(s) analysedDataID plateWell screenPlateOrder wellData not in data frame'
내가 실행하고있어 문이이이 생성 열이 이미으로
sqlUpdate(con, data, tablename="wellAnalysedDataTable", index=c("analysedDataID", "plateWell", "screenPlateOrder", "wellData"))
이 나에게 어떤 이해가되지 않습니다 동일한 colnames를 가진 데이터 프레임
안녕 GSK3 도움이되기를 바랍니다. 답장을 보내 주셔서 감사합니다. 제안 된 변경 사항으로 시도했지만 여전히 작동하지 못했습니다. "계속 테이블에 추가 할 수 없습니다."라는 오류 메시지가 계속 나타납니다. tablename 변수가 입력 문자를 모두 소문자로 변환하는 것으로 보입니다. 즉, 데이터 프레임을 삽입하려는 테이블과 일치하지 않습니다. 대소 문자를 어떻게 구분할 수 있는지 알고 있습니까? RODBC의 설명서를 보았지만 언급하지 않았습니다. – hberven1
'odbcUpdate'를 입력하면 전체 함수 정의를 얻을 수 있습니다. 여기에서 채널에 '대소 문자'라는 속성이 있는지 확인할 수 있습니다.이 속성은 위 또는 아래로 설정됩니다. 왜 "보존"옵션이 없는지 잘 모르겠지만 odbcUpdate를 자신의 기능 버전으로 덮어 쓸 가능성이 있습니다. 관련 라인은'cnames <- 스위치 (attr (채널, "대문자"), nochange = cnames, toupper = toupper (cnames), tolower = tolower (cnames))' –