Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

DTS BulkInsert Task error

Îåêßíçóå áðü ôï ìÝëïò girl_freak. Τελευταία δημοσίευση από το μέλος KelMan στις 02-11-2007, 09:01. Υπάρχουν 2 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  01-11-2007, 21:57 36872

    Crying [:'(] DTS BulkInsert Task error

    Καλησπέρα...

    Χρειάζομαι τα φώτα σας για το τι μπορεί να φταίει στο παρακάτω θέμα.

    Έχω φτιάξει ένα dts στο οποίο υπάρχουν κάποια sql tasks και κάποια BulkInsert tasks. Όταν κάνω execute το dts "σκάει" σε ένα συγκεκριμένο bulkinsert task, για το οποίο βγάζει το παρακάτω error:

    Microsoft OLE DB Provider for SQL Server (80040e57): String or binary data would be truncated.

    Ξέρω ότι το παραπάνω σφάλμα συνήθως εμφανίζεται όταν πάς να εισάγεις μια τιμή σε ένα πεδίο, μεγαλύτερου μήκους από το επιτρεπτό. Στην συγκεκριμένη περίπτωση η εισαγωγή γίνεται σε έναν πίνακα που έχει 4 πεδία varchar(50) και ένα varchar(1000). Το αρχείο από το οποίο γίνεται η εισαγωγή είναι .txt και delimited (|)....και σε κανένα πεδίο δεν περιέχει τιμή μεγαλύερου μήκους από το επιτρεπτό (το έχω τσεκάρεί). Φυσικά το task για να τρέξει χρειάζεται και ένα format file το οποίο ορίζει τα πεδία του .txt αρχείου και σε ποιά πεδία του πίνακα εισάγωνται. Το format αρχείο είναι σωστό, δηλαδή περιέχει 4 πεδία varchar(50) και ένα varchar(1000) και η σειρά είναι σωστή.

    Το κακό είναι ότι η βάση βρίσκεται στο εξωτερικό και δεν μπορώ να το τσεκάρω από κοντά....

    Έχετε κάποια ιδέα για το τι μπορεί να φταίει!! Προσωπικά δεν μπορώ να σκεφτώ κατι άλλο!!!

    Σας ευχαριστώ!!


    Hello world....
    Δημοσίευση στην κατηγορία:
  •  02-11-2007, 00:02 36874 σε απάντηση της 36872

    Απ: DTS BulkInsert Task error

    Δυο υποψίες (απλά υποψίες):

    1. Μήπως κάποιο άλλο πεδίο που δεν του έχεις δώσει σημασία είναι αυτο που δημιουργεί το πρόβλημα; (Σε περίπτωση που ο πίνακας περιέχει και άλλα char/varchar πεδία)

    2. Μήπως τα πεδία σου στον πίνακα ΔΕΝ είναι char/varchar αλλά nchar/nvarchar, κάτι που μειώνει τη χωρητικότητά τους στο μισό; (Αν και θα το έβλεπες).

    Τελείως wild quesses, δεν μπορώ να σκεφτώ κάτι καλύτερο ούτε εγώ.

     


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  02-11-2007, 09:01 36879 σε απάντηση της 36874

    Απ: DTS BulkInsert Task error

    Μπορεί επίσης σε κάποιο σημείο το txt αρχείο να είναι corrupted ή να έχει χάσει τον delimiter ή ακόμα-ακόμα ο delimiter να εμφανίζεται μέσα στα data και να προκαλεί ...μπάχαλο.

    Αυτά που μπορείς να κάνεις για εντοπίσεις το πρόβλημα είναι:

    • Μην παίξεις με BulkInsert task, φτιάξε ένα TextFile source, ένα SQL Server destination, όρισε ένα transformation μεταξύ τους και στα properties, πήγαινε στα options και όρισε ένα exception file, αύξησε το "Max error count" ώστε να μην σταματάει το η διαδικασία στο πρώτο λάθος και να μαζέψεις στο exception file τα προβληματικά rows. Δεν θα έχεις την ταχύτητα του bulk insert αλλά τουλάχιστον θα καταλάβεις τι γίνεται.
    • Στα options του BulkInsert task, μπορείς να ρυθμίσεις από ποιά μέχρι ποιά γραμμή να κάνει insert, οπότε περιόρισέ του σταδιακά μέχρι να εντοπίσεις την γραμμή που σκάει.

     


    Vir prudens non contra ventum mingit
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems