समस्या का कारण Oledb प्रदाता है
मिश्रित डेटा प्रकार कॉलम के साथ सीएसवी फ़ाइल या एक्सेल फ़ाइलों को आयात करते समय यह गैर-प्रमुख प्रकारों को null
से बदल देगा . (Oledb या Ace.Oledb का उपयोग करना )
समाधान
आप पहली पंक्ति जोड़कर कुछ समाधान कर सकते हैं जिसमें स्ट्रिंग मान होते हैं और फिर इम्प्रिंग समाप्त होने के बाद इसे हटा देना
ID,A,B,C
0,a,a,a
1,12,hh,i
2,ab12,tt,b
3,2,aa,o
4,bc12,ee,l
और IMEX=1
. का उपयोग करने पर यह समस्या ठीक कर देगा
यह कॉलम को स्ट्रिंग और आईडी कॉलम को संख्या के रूप में पढ़ेगा। (0 का उपयोग किया जाता है)
या HDR=NO
add जोड़ें कनेक्शन स्ट्रिंग के लिए गुण इसलिए शीर्षलेख आयात की गई पहली पंक्ति है (इसके सभी मान स्ट्रिंग हैं)
इसमें मिश्रित डेटा प्रकारों के बारे में और पढ़ें लेख
अन्य तरीके
या एसीओल्डब प्रदाता के बिना इसे प्राप्त करने का प्रयास करें, बस सीएसवी फ़ाइल को अन्य तरीकों से आयात करें:
माइक्रोसॉफ्ट टेक्स्ट ड्राइवर का उपयोग करना
SELECT * FROM OPENROWSET('MSDASQL',
'Driver={Microsoft Text Driver (*.txt; *.csv)};
DefaultDir=C:\;',
'SELECT * FROM abc.csv')
बल्क इंसर्ट का उपयोग करना
CREATE TABLE dbo.MyTable
(ID INTEGER,
A VARCHAR(50),
B VARCHAR(50),
C VARCHAR(50)
)
BULK INSERT dbo.MyTable
FROM 'C:\abc.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
इन लेखों में अन्य विवरण:
- OPENROWSET के साथ csv फ़ाइल कैसे आयात करें?
- टी-एसक्यूएल - ओपनरोसेट का उपयोग करके सीएसवी फाइलें पढ़ें (एक विस्तृत ट्यूटोरियल)