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

 

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

Πρόβλημα με Oracle -> SQL 2000

Îåêßíçóå áðü ôï ìÝëïò Ioannis P. Τελευταία δημοσίευση από το μέλος KelMan στις 13-12-2005, 00:54. Υπάρχουν 8 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  10-12-2005, 11:41 7795

    Πρόβλημα με Oracle -> SQL 2000

    Γεια σε όλους,

    Έχω μια Oracle και θέλω να αντιγράψω μερικούς πίνακες σε ένα SQL 2000. Όμως τα δεδομένα στην Oracle είναι σε ANSI ενώ στον SQL 2000 Unicode. Υπάρχει τρόπος ενώ κάνω το select από Oracle insert σε SQL 2000 να γίνεται μέσα στο ερώτημα μετρατροπή από ANSI σε Unicode ή πρέπει μέσα από την vb.net να κάνω την μετατροπή;

    Παρακαλώ τα φώτα σας.

  •  10-12-2005, 12:13 7798 σε απάντηση της 7795

    Απ: Πρόβλημα με Oracle -> SQL 2000

    Έχω την εντύπωση ότι αυτό μπορείς να το κάνεις μέσα από τα DTS services του SQL 2000. Θα πρέπει να συνδεθείς στην Oracle και μετά να κάνεις μεταφορά των δεδομένων σου, μέσα από τον Enterprise Manager του SQL 2000, χωρίς την βοήθεια κάποιας προγραμματιστικής γλώσσας.

     

    George J.

     


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  10-12-2005, 14:06 7802 σε απάντηση της 7795

    Απ: Πρόβλημα με Oracle -> SQL 2000

    Αυτό που λες ισχύει, όμως επειδή τα δεδομένα στην Oracle αλλάζουν θέλω να κάνω αυτή την διαδικασία αρκετά συχνά. Πάντως ακόμη και μέσα από το DTS δεν κατάφερα να μεταφέρω σωστά τα ANSI Ελληνικά της Oracle στον SQL 2000 με Collation SQL_Latin1_General_CP1_CI_AS και στήλες nvarchar. Έχει μια επιλογή για διαφορετικό Collation και μια για Unicode αλλά δεν κατάφερα να μεταφέρω τα δεδομένα στον SQL και να μην εμφανίζονται κουτάκια ή ? στη θέση των Ελληνικών χαρακτήρων.

    Ευχαριστώ.
  •  10-12-2005, 16:51 7803 σε απάντηση της 7802

    Απ: Πρόβλημα με Oracle -> SQL 2000

    Αν πρόκειται να γίνεται συχνά η μεταφορά των δεδομένων, τότε αλλαγή τους είναι ένα θέμα που με όποιον τρόπο κι αν επιλέξεις να υλοποιήσεις την μεταφορά, θα πρέπει να το λύσεις. Υπάρχουν διάφορα κόλπα όπως timestamp πεδία, extra στήλες στους πίνακες, βοηθητικοί πίνακες, κλπ. Εξάλλου, πάντοτε όταν σχεδιάζουμε τέτοιες διαδικασίες, τις σχεδιάζουμε "reentrant" δηλαδή να μπορούν να συνεχίσουν απο εκεί που έμμειναν αν σταματήσουν αλλά και αν τρέξουν δύο φορές να μην φραφτούν διπλά δεδομένα στον προορισμό.

    Αν θα υλοποιηθεί η μεταφορά με DTS δεν μειώνεται η ευελιξία, μπορείς να κάνεις όλα όσα είπα, μάλιστα μπορείς να εκμεταλλευτείς διάφορα features του SQL Server για να αναθέσεις σε αυτόν τμήματα που με την custom προγραμματιστική λύση θα έπρεπε να φτιάξεις εσύ, δηλαδή το scheduling και την εκτέλλεση της διαδικασίας, το τι θα γίνεται σε περιπτώσεις λάθους, κλπ, κλπ.

    Ως προς το πρόβλημα με τα Ελληνικά, θα μπορούσες να εξηγήσεις λίγο παραπάνω; Στον SQL Server επιτρέπεται να ορίσεις Ελληνικό collation; Οι επιλογές που αναφέρεις που εμφανίζονται;


    Vir prudens non contra ventum mingit
  •  10-12-2005, 21:47 7808 σε απάντηση της 7795

    Απ: Πρόβλημα με Oracle -> SQL 2000

    Ας τα πάρω λίγο από την αρχή.

    1) Έχω μια Oracle και ένα SQL 2000.
    2) Μια εφαρμογή ενημερώνει τον SQL 2000 με τις αλλαγές που έχουν γίνει σε κάποιους πίνακες της Oracle. Αν σταματήσει η εκτέλεση της και την τρέξουμε πάλι μεταφέρει μόνο τα υπόλοιπα δεδομένα.
    3) Οι στήλες που έχουν κείμενο στον SQL 2000 είναι τύπου nvarchar.

    Το πρόβλημα μου είναι οτι τα Windows CE που θα βλέπουν τον SQL 2000 μέσω του sqlclient ΔΕΝ μπορούν να δούν Ελληνικά ANSI παρά μόνο Unicode. Επίσης για να συνδεθεί στη βάση ένα Windows CE πρέπει το Collation της να είναι SQL_Latin1_General_CP1_CI_AS. Πρέπει λοιπόν με κάποιο τρόπο τα δεδομένα καθώς μεταφέρονται στον SQL να μετατρέπονται σε Unicode. Δοκίμασα να κάνω μετατροπή των ANSI σε Unicode αλλά δεν τα κατάφερα, εμφνίζονται κουτάκια ή ερωτηματικά.

    Επίσης δοκίμασα να μεταφέρω τα δεδομένα με την χρήση του DTS (εκεί βρήκα μια επιλογή για διαφορετικό Collation και μια για μετατροπή σε Unicode αλλά δεν μου δούλεψαν τα Ελληνικά).

    Αυτό που ρωτάω είναι πως μπορώ να τροποποιήσω το select query που κάνω στην Oracle για να κάνει μετατροπή από ANSI σε Unicode ή το insert/update που κάνω στον SQL για να αποθηκεύονται τα δεδομένα με μορφή Unicode;
  •  10-12-2005, 22:02 7809 σε απάντηση της 7808

    Απ: Πρόβλημα με Oracle -> SQL 2000

    Ρίξε μια ματιά σε αυτό, μήπως σου δουλέψει:

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sqlce/htm/_lce_ansi_to_unicode_conversions.asp

     


    Vir prudens non contra ventum mingit
  •  13-12-2005, 00:34 7871 σε απάντηση της 7795

    Big Smile [:D] Απ: Πρόβλημα με Oracle -> SQL 2000

    Δεν ταιριάζει με την περίπτωση μου, ευχαριστώ για το χρόνο σου πάντως.

    Το πρόβλημα για το οποίο σας γέμισα με μηνύματα το έλυσα σήμερα με την βοήθεια ενός φίλου. Εγώ διάβαζα από την Oracle και έκανα Insert ή Update στον SQL με τον κλασικό για μένα τρόπο, π.χ. insert into table1 (myvar1, myvar2) values ('Ελληνικά', 4) και φυσικά τα Ελληνικά δεν αποθηκεύονταν σωστά. Όταν όμως αντί για το παραπάνω ερώτημα έγραψα insert into table1 (myvar1, myvar2) values (N'Ελληνικά', 4) όλα έπαιξαν τέλεια.
  •  13-12-2005, 00:43 7873 σε απάντηση της 7871

    Απ: Πρόβλημα με Oracle -> SQL 2000

    Λογικό, καθώς αν ορίσεις ένα string με απλά εισαγωγικά ('Ελληνικά') θεωρείται varchar ενώ αν γράψεις N'Ελληνικά' είναι nvarchar
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  13-12-2005, 00:54 7875 σε απάντηση της 7873

    Απ: Πρόβλημα με Oracle -> SQL 2000

    Γμτ! Big Smile [:D] Έχω συνηθίσει να το γράφω το N πάντοτε και δεν μου πέρασε από το μυαλό ότι το παρέλειπες!


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