Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

Openrowset का उपयोग करके आयात त्रुटि

समस्या का कारण 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' 
  )

इन लेखों में अन्य विवरण:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Linux से Microsoft SQL सर्वर तक पहुँचने के कुछ तरीके क्या हैं?

  2. SQL सर्वर सबक्वेरी ने 1 से अधिक मान लौटाए। इसकी अनुमति नहीं है जब सबक्वेरी इस प्रकार है =, !=, <, <=,>,>=

  3. SQL सर्वर (C# क्लाइंट) में बहुत अधिक डेटा सम्मिलित करने का सबसे तेज़ तरीका क्या है

  4. SQL सर्वर बनाम NoSQL

  5. टी-एसक्यूएल में तिथियों की तुलना करें, समय भाग को अनदेखा करें