2017-09-14 65 views
0

我正在编写一个JDBC代码,通过从源表中选择几条记录将数据插入到表中。将数字点转换为varchar中的逗号,并将其插入到select语句中

源表Oracle中的列被标记为数字[6,2]。但是在目标表中同样被标记为varchar。

正在使用插入...选择一个简单的查询..

我不转换数量的查询字符。

这对少数Windows机器正常工作。如果源表的数据为0.98,则目标表的值也为0.98

但是在少数Windows机器中,如果源的值为0.98,则目标的值为0.98 。 <点被替换为逗号>

OJDBC14 & JDK 1.7正在两台机器中使用。

有什么想法是谁在将点改为逗号。

请帮忙。

+1

我猜想它与PC中的REGION和Language设置有关。许多国家使用','作为小数分隔符和'.'作为千位分隔符。 – Icarus

+0

感谢您的评论。让我检查两台机器的区域设置 –

回答

0

根据数据库环境NLS设置,是否使用逗号(,)或点(。)作为小数分隔符的数字。

在任何情况下,当从列表中选择列号时,可以使用下面的示例。

select to_char(n,'000.000') from t; 
0

由Icarus提供的指引更准确地从源头解决问题。

下面片段将有助于解决,在JAVA覆盖区域设置:

Locale locale = Locale.getDefault(); 
Locale newLocale = new Locale("en", "US"); 
locale.setDefault(newLocale); 

感谢, 瓦森特。

相关问题