Atliekant mysql duomenų atsarginės kopijos kūrimo ir atkūrimo operaciją, susidūrė su problema: panaudojus sqlyog duomenų atsarginei kopijai, o po to atkūrus duomenis kitame serveryje, skyriklis "'" buvo prarytas dėl varbinarinio lauko vienoje iš lentelių (dėl dvejetainio kodavimo problemos kabučių skyriklis buvo traktuojamas kaip duomenų dalis), todėl duomenų nebuvo galima importuoti įprastai.
Kai kurie teksto įrankiai buvo naudojami apdorojimui, tačiau jie buvo nesėkmingi, kai kuriuos iš jų buvo galima atpažinti, tačiau automatiškai modifikavo dvejetainius užkoduotus duomenis, o kai kurie įterpdavo kitus dvejetainius duomenis, todėl vis dar buvo neįskaitomi.
Taigi apsvarstykite kitus metodus: perskaitykite duomenis ir parašykite SQL sakinį, tada importuokite jį. Konkretūs metodai yra šie:
(1) Naudokite funkciją HEX, kad nuskaitytumėte duomenis eksportuodami ir konvertuotumėte dvejetainius duomenis į šešioliktainę eilutę;
pasirinkite HEX(binField) iš testTable;
(2) Naudokite funkciją UNHEX, kad importavimo metu konvertuotumėte šešioliktainę eilutę į dvejetainių duomenų importo duomenų bazę;
įterpti į testTable binField reikšmes(UNHEX(@hexstr));
Šis kodas parodo HEX ir UNHEX funkcionalumą:
SELECT HEX('tai yra bandymo str') ir užklausos rezultatas yra: 746869732069732061207465737420737472 SELECT UNHEX('746869732069732061207465737420737472'), ir užklausos rezultatas yra: tai yra bandymo str
Taip pat galite tiesiogiai perskaityti šešioliktainį simbolį, prie eilutės pridėdami priešdėlį 0x: SELECT 0x746869732069732061207465737420737472, užklausos rezultatas yra: tai yra bandymo str
Be to, taip pat galite naudoti dvejetainius importavimo ir eksporto metodus, kad sukurtumėte atsargines duomenų kopijas ir atkurtumėte. Čia nėra jokios diskusijos.
|