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

एसएसआईएस में कॉलम संरचना कैसे जांचें?

समाधान

आपकी टिप्पणी के आधार पर, आप फ्लैट फाइलों से निपट रहे हैं। इस समस्या को हल करने के लिए, आपको सभी स्तंभों को एक स्तंभ के रूप में पढ़ना होगा और चलते-फिरते संरचना को पुनः प्राप्त करना होगा।

विवरण

  1. पहले एक फ़्लैट फ़ाइल कनेक्शन प्रबंधक जोड़ें।
  2. फ्लैट फ़ाइल कनेक्शन प्रबंधक में, उन्नत टैब पर जाएं, सभी कॉलम हटाएं और केवल एक कॉलम रखें (Column0)
  3. स्तंभ प्रकार को DT_WSTR और लंबाई को 4000 में बदलें।
  4. एक Dataflow task
  5. Dataflow task के अंदर एक फ़्लैट फ़ाइल स्रोत, एक स्क्रिप्ट घटक और एक OLEDB गंतव्य जोड़ें।
  6. स्क्रिप्ट घटक खोलें, इनपुट/आउटपुट टैब पर जाएं और 8 आउटपुट कॉलम जोड़ें (Distributer_Code,Cust_code, cust_name, cust_add,zip,tel,dl_number,gstin)
  7. स्क्रिप्ट की भाषा को विजुअल बेसिक में बदलें।
  8. स्क्रिप्ट के अंदर निम्नलिखित कोड लिखें।

    Dim Distributer_Code as integer = -1
    Dim Cust_code as integer = -1
    Dim cust_name as integer = -1
    Dim cust_add as integer = -1
    Dim zip as integer = -1
    Dim tel as integer = -1
    Dim dl_number as integer = -1
    Dim gstin as integer = -1
    Dim intRowIndex as integer = 0
    
    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
    
        If intRowIndex = 0 then
    
            Dim strfields() as string = Row.Column0.split(CChar("|"))
            Dim idx as integer = 0
    
            For idx = 0 To strFields.length - 1
    
                Select case str
    
                Case "Distributer_Code"
                    Distributer_Code = idx  
                Case "Cust_code"
                    Cust_code = idx 
                Case "cust_name"
                    cust_name = idx 
                Case "cust_add"
                    cust_add = idx  
                Case "zip"
                    zip = idx   
                Case "tel"
                    tel = idx   
                Case "dl_number"
                    dl_number = idx 
                Case "gstin"
                    gstin = idx 
    
                End Select
    
            Next
    
        Else
    
            Dim strfields() as string = Row.Column0.split(CChar("|"))
    
            If Distributer_Code > -1 Then Row.DistributerCode = strfields(Distributer_Code)
            If Cust_code > -1 Then Row.Custcode = strfields(Cust_code)
            If cust_name > -1 Then Row.custname = strfields(cust_name)
            If cust_add > -1 Then Row.custadd = strfields(cust_add)
            If zip > -1 Then Row.zip = strfields(zip)
            If tel > -1 Then Row.tel = strfields(tel)
            If dl_number > -1 Then Row.dlnumber = strfields(dl_number)
            If gstin > -1 Then Row.gstin = strfields(gstin)
    
        End If
    
    
        intRowIndex += 1
    
    End Sub
    
  9. आउटपुट कॉलम को OLEDB डेस्टिनेशन पर मैप करें




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर 2014 के लिए एक प्रोसेसर का चयन करना - भाग 2

  2. SQL सर्वर में फ्लोट से वर्चर तक कास्टिंग क्यों किया जा रहा है?

  3. वेब ऐप से क्वेरी टाइम आउट लेकिन प्रबंधन स्टूडियो से ठीक चलता है

  4. अपनी SQL Server 2005 पुस्तक और SQL Server 2008 पुस्तक में इट्ज़िक बेन-गण के लॉजिकल क्वेरी प्रोसेसिंग ऑर्डर के बारे में उलझन में

  5. SQL सर्वर 2016 में नया मेटाडेटा-केवल कॉलम परिवर्तन