Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 14199|Απάντηση: 0

[Πηγή] Οι συναρτήσεις HEX και UNHEX χρησιμοποιούνται για το χειρισμό της εισαγωγής και εξαγωγής δυαδικών δεδομένων στη mysql

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 13/6/2016 10:27:47 μ.μ. | | |

Σε μια λειτουργία δημιουργίας αντιγράφων ασφαλείας και ανάκτησης δεδομένων mysql, παρουσιάστηκε ένα πρόβλημα: μετά τη χρήση του sqlyog για δημιουργία αντιγράφων ασφαλείας δεδομένων και, στη συνέχεια, την ανάκτηση των δεδομένων σε άλλο διακομιστή, το διαχωριστικό "'" καταβροχθίστηκε λόγω του μεταβλητού πεδίου σε έναν από τους πίνακες (λόγω του προβλήματος της δυαδικής κωδικοποίησης, το διαχωριστικό εισαγωγικών αντιμετωπίστηκε ως μέρος των δεδομένων), έτσι ώστε τα δεδομένα να μην μπορούν να εισαχθούν κανονικά.

Ορισμένα εργαλεία κειμένου χρησιμοποιήθηκαν για επεξεργασία, αλλά ήταν ανεπιτυχή, μερικά από τα οποία μπορούσαν να αναγνωριστούν, αλλά τροποποιούσαν αυτόματα τα δυαδικά κωδικοποιημένα δεδομένα και μερικά εισήγαγαν άλλα δυαδικά δεδομένα, με αποτέλεσμα να μην είναι ακόμα αναγνώσιμα.

Εξετάστε λοιπόν άλλες μεθόδους: διαβάστε τα δεδομένα και γράψτε τη δήλωση SQL και, στη συνέχεια, εισαγάγετέ την. Οι συγκεκριμένες μέθοδοι είναι:

(1) Χρησιμοποιήστε τη συνάρτηση HEX για να διαβάσετε τα δεδομένα κατά την εξαγωγή και να μετατρέψετε τα δυαδικά δεδομένα σε δεκαεξαδική συμβολοσειρά.

επιλέξτε HEX(binField) από το testTable.

(2) Χρησιμοποιήστε τη συνάρτηση UNHEX για να μετατρέψετε τη δεκαεξαδική συμβολοσειρά στη βάση δεδομένων εισαγωγής δυαδικών δεδομένων κατά την εισαγωγή.

εισαγωγή στον πίνακα δοκιμήςΤιμές binField(UNHEX(@hexstr));



Ο ακόλουθος κώδικας δείχνει τη λειτουργικότητα των HEX και UNHEX:

SELECT HEX('this is a test str') και το αποτέλεσμα του ερωτήματος είναι: 746869732069732061207465737420737472
SELECT UNHEX('746869732069732061207465737420737472'), και το αποτέλεσμα του ερωτήματος είναι: αυτό είναι ένα test str

Μπορείτε επίσης να διαβάσετε απευθείας τον δεκαεξαδικό χαρακτήρα, προσθέτοντας ένα πρόθεμα 0x στη συμβολοσειρά:
SELECT 0x746869732069732061207465737420737472, το αποτέλεσμα του ερωτήματος είναι: αυτό είναι ένα test str



Επιπλέον, μπορείτε επίσης να χρησιμοποιήσετε δυαδικές μεθόδους εισαγωγής και εξαγωγής για τη δημιουργία αντιγράφων ασφαλείας και την επαναφορά δεδομένων. Δεν υπάρχει συζήτηση εδώ.




Προηγούμενος:Η Discuz δεν βρήκε ότι λείπουν τα δεδομένα της ανάρτησης pre_forum_post πίνακα
Επόμενος:Οδηγός έναρξης SQL XML
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com