मेरे डेटाबेस तालिका इस तरह लगभग दिखता है:RODBC: SQLUpdate() को नहीं पहचानता सूचकांक स्तंभ
+-----+-------+--------------------+-----------+----------+
| ID1 | ID2 | FilePath1 | FilePath2 | Status |
+-----+-------+--------------------+-----------+----------+
| 1 | Test1 | MyFolder\R\Folder1 | NULL | Open |
| 2 | Test2 | MyFolder\R\Folder2 | NULL | Open |
| 3 | Test3 | MyFolder\R\Folder3 | NULL | Finished |
| 4 | Test4 | MyFolder\R\Folder4 | NULL | Finished |
+-----+-------+--------------------+-----------+----------+
पहले कॉलम (ID1) पी के रूप में परिभाषित किया गया है। हालांकि, आईडी 2 भी अद्वितीय है।
अब मैं आर RODBC
पैकेज से sqlUpdate()
उपयोग करने के साथ FilePath2
और Status
को बदलने में सक्षम होना चाहते हैं। तो मैं निम्न प्रयास करें:
db.df <- data.frame(ID1=1, ID2='Test1',
FilePath2='MyFolder\R\Folder5', Status='Finished',
stringsAsFactors=FALSE)
sqlUpdate(myconn, db.df, tablename='mytable', index='ID2', verbose=TRUE)
जिसमें db.df
है डेटाबेस तालिका (हालांकि, मैं इस मामले FilePath1
में स्तंभों में से कुछ बाहर छोड़ देते हैं, और मैं के भीतर उन के लिए इसी एक पंक्ति और स्तंभ नाम के साथ एक डेटा फ्रेम ID1
को भी छोड़ना पसंद करते हैं, यदि संभव हो तो भी)।
+-----+-------+--------------------+--------------------+----------+
| ID1 | ID2 | FilePath1 | FilePath2 | Status |
+-----+-------+--------------------+--------------------+----------+
| 1 | Test1 | MyFolder\R\Folder1 | MyFolder\R\Folder5 | Finished |
| 2 | Test2 | MyFolder\R\Folder2 | NULL | Open |
| 3 | Test3 | MyFolder\R\Folder3 | NULL | Finished |
| 4 | Test4 | MyFolder\R\Folder4 | NULL | Finished |
+-----+-------+--------------------+--------------------+----------+
मैं folllowing त्रुटि मिलती है:
Error in sqlUpdate(myconn, db.df, tablename = 'mytable', index = 'ID2', :
index column(s) ID2 not in database table
क्या इस समस्या का कारण हो सकता है मेरा उद्देश्य निम्नलिखित प्राप्त करने के लिए है?
संपादित करें: मैं एक सीधा एसक्यूएल क्वेरी भेजकर समस्या को नजरअंदाज कर दिया है:
out.path <- 'MyFolder\\\\R\\\\Folder5'
update.query <- paste("UPDATE mytable ",
"SET FilePath2='", out.path, "', Status='Finished' ",
"WHERE ID2='Test1'", sep="")
dummy <- sqlQuery(myconn, update.query)
यद्यपि यह एक साफ रास्ता नहीं हो सकता है, यह इसके क्या करना चाहिए है। हालांकि, मुझे अभी भी समझ में नहीं आता कि sqlUpdate
के साथ क्या मामला है, इसलिए मुझे उम्मीद है कि कोई इस पर प्रकाश डाल सकता है।