Κοινή χρήση μέσω


Γνωστό πρόβλημα - Η αντιγραφή δραστηριότητας από το Oracle σε lakehouse αποτυγχάνει για τον τύπο δεδομένων "Αριθμός"

Η δραστηριότητα αντιγραφής από την Oracle σε μια λίμνη αποτυγχάνει όταν μία από τις στήλες από την Oracle έχει τύπο δεδομένων Number. Στην Oracle, η κλιμάκωση μπορεί να είναι μεγαλύτερη από την ακρίβεια για τους δεκαδικούς/αριθμητικούς τύπους. Τα αρχεία Parquet στο Lakehouse απαιτούν η κλίμακα να είναι μικρότερη ή ίση με την ακρίβεια, επομένως η δραστηριότητα αντιγραφής αποτυγχάνει.

κατάσταση : Άνοιγμα

Εμπειρία προϊόντος : Data Factory

Συμπτώματα

Όταν προσπαθείτε να αντιγράψετε δεδομένα από την Oracle σε μια λίμνη, λαμβάνετε ένα σφάλμα παρόμοιο με το: ParquetInvalidDecimalPrecisionScale. Invalid Decimal Precision or Scale. Precision: 38 Scale:127.

Λύσεις και λύσεις

Μπορείτε να επιλύσετε αυτό το ζήτημα χρησιμοποιώντας ένα ερώτημα για ρητή μετατροπή της στήλης σε NUMBER(p,s) ή άλλους τύπους, όπως BINARY_DOUBLE. Όταν χρησιμοποιείτε το NUMBER(p,s), βεβαιωθείτε ότι p >= s και s >= 0. Εν τω μεταξύ, το εύρος που ορίζεται από NUMBER(p,s) θα πρέπει να καλύπτει το εύρος των τιμών που είναι αποθηκευμένες στη στήλη. Εάν όχι, λαμβάνετε ένα σφάλμα παρόμοιο με το ORA-01438: value larger than specified precision allowed for this column. Ακολουθεί ένα δείγμα ερωτήματος: SELECT CAST(ColA AS BINARY_DOUBLE) AS ColB FROM TableA

Επόμενα βήματα