База данных Oracle возвращает строку, отличную от MySql

0

У меня есть код соответствия шаблону в 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

Почему это происходит по-другому. Между мной используется спящий режим для извлечения данных.

  • 1
    Можем ли мы увидеть, как вы вставляете этот шаблон в базу данных?
  • 0
    Это загружается с использованием обычных запросов INSERT. Мы не изменяем / не обновляем данные. Мы просто читаем данные из базы данных
Теги:
string

1 ответ

1
Лучший ответ

В MySQL \ является символом escape для строк, но это не так в Oracle. Это означает, что эта вставка будет работать по-разному для каждого из них:

INSERT INTO PATTERNS (ID, VALUE) VALUES (1, '\\\\');

Это будет вставлять \\ в MySQL, но \\\\ в Oracle. Если вы хотите вставлять только \\ в Oracle, вам нужно изменить вставку на это:

INSERT INTO PATTERNS (ID, VALUE) VALUES (1, '\\');
  • 0
    Я не ищу вставки. При чтении я хочу читать, так как он находится в базе данных без каких-либо побегов или каких-либо изменений в данных
  • 0
    @NitinGurram Я говорю вам, что я думаю, что ваши вставки могут быть неправильными, и поэтому шаблоны, сохраненные в oracle и mysql, на самом деле разные.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню