Java Oracle数据库正在以不同的格式返回字符串到MySql

Java Oracle数据库正在以不同的格式返回字符串到MySql,java,mysql,string,oracle,Java,Mysql,String,Oracle,我有一个Java模式匹配代码,它从数据库中获取模式 当我用mysql数据库做JUnit时,一切都很酷 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's stored. Oracle is returning with extra backsl

我有一个Java模式匹配代码,它从数据库中获取模式 当我用mysql数据库做JUnit时,一切都很酷

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's 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

为什么它以不同的方式回归。我使用hibernate获取数据。

在MySQL中,
\
是字符串的转义字符,但在Oracle中不是这样。这意味着此插入将对每种插入方式起不同的作用:

INSERT INTO PATTERNS (ID, VALUE) VALUES (1, '\\\\');
这将在MySQL中插入
\\
,但在Oracle中插入
\\\\
。如果只想在Oracle中插入
\\
,则必须将插入更改为:

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

我们可以看到您是如何在数据库中插入该模式的吗?这是使用普通的插入查询加载的。我们不修改/更新数据。我们只是从数据库中读取数据,我不想插入。当阅读时,我想阅读数据库中的内容,而不进行任何转义或更改data@NitinGurram我要告诉你的是,我认为你的插入可能是错误的,因此oracle和mysql中保存的模式实际上是不同的。但当我看到Toad中的数据时,它们在列中显示相同的数据:(我为这两个执行了相同的插入脚本tables@NitinGurram正如我在回答中所解释的,相同的插入脚本在Mysql和Oracle中不应该产生相同的结果,但是如果您在Toad中看到这两个脚本的相同数据(Oracle没有\\\\),那么我认为我错了,这不是问题所在。