我被給了一個MySQL數據庫的轉儲,並且希望在MySQL模式下將它加載到H2中。它運作良好,到目前爲止除了「用戶」表,這已經哈希密碼中,並給出了這個錯誤:插入/替換散列值:「十六進制字符串包含非十六進制字符」
'Hexadecimal string contains non-hex character: "UQ�m������l�a_x";
SQL statement:INSERT INTO `users` VALUES (2,16,'him','UQ�m������l�a_x', ...);
由於它們沒有用在這種情況下,我可以與任何其他替代這些十六進制字符串文本值。例如,我可以用sed來做到這一點嗎?
我試過這個:sed -e "s/'[\d128-\d255]'//g
但它取代了我文件的95%。
我已經看到了準備JDBC語句的答案,但我沒有辦法(這些是Play框架的自動應用「演變」)。
使用TR版本,它給現在的「十六進制字符串奇數個字符:‘UQmla_x’」 :(但它的工作原理,你回答了這個問題。 – JulienD
儘管它在我的用例中起作用,但我相信在「:punct:」:'[[:alnum:]] | [[:space:]] | [[:punct:]]'附近缺少一個括號。 – JulienD
@JulienD感謝您指出錯誤。 –