У меня есть код соответствия шаблону в Java, который получает шаблон из базы данных. Когда я делал JUnit с базой данных mysql, все было довольно круто
Original Pattern in database
[a-zA-Z]{1}[0-9]{2}[a-zA-Z]{3}[0-9]{5}_[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}\\.csv
Mysql is retruning as expected and as it stored.
Oracle is returning with extra backslashes
[a-zA-Z]{1}[0-9]{2}[a-zA-Z]{3}[0-9]{5}_[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}\\\\.csv
Почему это происходит по-другому. Между мной используется спящий режим для извлечения данных.
В MySQL \
является символом escape для строк, но это не так в Oracle. Это означает, что эта вставка будет работать по-разному для каждого из них:
INSERT INTO PATTERNS (ID, VALUE) VALUES (1, '\\\\');
Это будет вставлять \\
в MySQL, но \\\\
в Oracle. Если вы хотите вставлять только \\
в Oracle, вам нужно изменить вставку на это:
INSERT INTO PATTERNS (ID, VALUE) VALUES (1, '\\');