मैंsqlSave अपडेट कर रहा है Oracle DB टेबल दिनांक फ़ील्ड के लिए काम -Not
> head(resultsclassifiedfinal_MC_TC_P1)
FEEDBACK_NUMBER Biz_Div_Num ACCURACY Category_Num CLASSIFIED_BY ACTIVE_IND CRT_BY_USR_NUM
1 20140211-1173 556 99.48% 2303 CMC 1 SYSTEM
2 20140211-1886 556 99.6% 2232 CMC 1 SYSTEM
3 20140209-0115 556 66.09% 2232 CMC 1 SYSTEM
4 20140202-0337 556 93.7% 2232 CMC 1 SYSTEM
5 20140203-0418 552 50% 2232 CMC 1 SYSTEM
6 20140303-1339 552 54.45% 2232 CMC 1 SYSTEM
नीचे के रूप में एक डेटासेट है और मैं Oracle DB में
> library(RODBC)
> channel <- odbcConnect("R", uid="xxx", pwd="[email protected]")
> sqlSave(channel,resultsclassifiedfinal_MC_TC_P1, tablename="table1", rownames=FALSE, append=TRUE,fast = FALSE,nastring = NULL)
> odbcClose(channel)
पहले से मौजूद किसी तालिका में इन रिकॉर्ड को सम्मिलित करने में सक्षम हूँ ओरेकल डीबी में table1
तक - मैं एक और कॉलम CRT_DTTM
जोड़ता हूं। मेरे तालिका संरचना
tmp <- sqlColumns(channel, "table1")
> varspec <- tmp$TYPE_NAME
> varspec
[1] "VARCHAR2" "VARCHAR2" "VARCHAR2" "VARCHAR2" "VARCHAR2" "DECIMAL" "VARCHAR2" "DATE"
नीचे और आर Dataframe में है - मैं एक स्तंभ (Oracle में एक नया स्तंभ को coreesponding)
resultsclassifiedfinal_MC_TC_P1$CRT_DTTM <- Sys.Date()
FEEDBACK_NUMBER Biz_Div_Num ACCURACY Category_Num CLASSIFIED_BY ACTIVE_IND CRT_BY_USR_NUM CRT_DTTM
1 20140211-1173 556 99.48% 2303 CMC 1 SYSTEM 2014-07-25
2 20140211-1886 556 99.6% 2232 CMC 1 SYSTEM 2014-07-25
3 20140209-0115 556 66.09% 2232 CMC 1 SYSTEM 2014-07-25
4 20140202-0337 556 93.7% 2232 CMC 1 SYSTEM 2014-07-25
5 20140203-0418 552 50% 2232 CMC 1 SYSTEM 2014-07-25
6 20140303-1339 552 54.45% 2232 CMC 1 SYSTEM 2014-07-25
जोड़ते हैं मैं table1 में डालने के लिए प्रयास करते हैं, मैं नीचे मिल त्रुटि
> library(RODBC)
> channel <- odbcConnect("R", uid="wl_XXX", pwd="[email protected]")
> sqlSave(channel,resultsclassifiedfinal_MC_TC_P1, tablename="table1", rownames=FALSE, append=TRUE,fast = FALSE,nastring = NULL)
Error in sqlSave(channel, resultsclassifiedfinal_MC_TC_P1, tablename = "table1", :
unable to append to table ‘table1’
> odbcClose(channel)
समस्या नए जोड़े के साथ है CRT_DTTM
> sapply(resultsclassifiedfinal_MC_TC_P1,class)
FEEDBACK_NUMBER CLASS_DIV_CD ACCURACY CLASS_CATG_CD CLASSIFIED_BY ACTIVE_IND
"factor" "matrix" "factor" "matrix" "factor" "numeric"
CRT_BY_USR_NUM CRT_DTTM
"character" "Date"
> sapply(resultsclassifiedfinal_MC_TC_P1,mode)
FEEDBACK_NUMBER CLASS_DIV_CD ACCURACY CLASS_CATG_CD CLASSIFIED_BY ACTIVE_IND
"numeric" "numeric" "numeric" "numeric" "numeric" "numeric"
CRT_BY_USR_NUM CRT_DTTM
"character" "numeric"
उस कॉलम के लिए आर और ओरेकल में डेटाटाइप Date
है - लेकिन यह काम नहीं कर रहा है। मुझे त्रुटि मिलती है। क्या कोई इस पर मदद कर सकता है।
अद्यतन:
प्रश्न सरल बनाने के लिए, Pls। आर
FN CRT_DTTM
1 20140526-0006 2014-07-30
2 20140528-0005 2014-07-30
3 20140613-0065 2014-07-30
4 20140528-0002 2014-07-30
5 20140522-0004 2014-07-30
str(table1)
'data.frame': 5 obs. of 2 variables:
$ FN : Factor w/ 5 levels
$ CRT_DTTM: Date, format: "2014-07-30" "2014-07-30" "2014-07-30" ...
में 'table1' नीचे खोजने के लिए मैं Oracle DB में इस कॉलम नहीं डाल सकते। (मैं varchar2 और प्रकार के रूप में की तारीख के साथ ही 2 क्षेत्रों के साथ Oracle में तालिका है)। यदि मैं अपने CRT_DTTM
कॉलम को आर में वर्ण में परिवर्तित करता हूं और फिर ओरेकल (विकास) में दिनांक प्रकार को वर्कर 2 में बदलता हूं - यह सम्मिलित है। हालांकि, मैं ओरेकल (उत्पादन में) में अपना डेटाटाइप नहीं बदल सकता
साथ डेटाबेस अद्यतन तुम सिर्फ एक स्ट्रिंग के रूप में आयात कर सकता है और उसके बाद के बाद ओरेकल DB के TO_DATE के समारोह का उपयोग करने में सक्षम हूँ? –
मैं सीधे आर से ऑर्केल डीबी में अपडेट करता हूं, मैं अपना डेटा प्रकार या तो नहीं बदल सकता। तो मैं – RUser
करने के लिए नहीं कर सकता, क्या कोई इस पर मदद कर सकता है, कुछ बुनियादी बातों से चूक रहा है, यह सुनिश्चित नहीं है कि यह कैसे करें, आर – RUser