用php 5.3和oracle 10g在windows xp中更改小数点分隔符

时间:2013-11-28 13:59:41

标签: php oracle oracle10g windows-xp nls

我有两台电脑:

服务器:

  • Centos的。

PC开发者:

  • windows xp

这两种:

  • 阿帕奇
  • php 5.3
  • 与同一个BD的连接。

我的表有一个数字列。当我在php中打印数字列时,输出为:

服务器:

12.244
12.890

Pc Developer

12,244
12,890

我希望pc开发人员将点打印为十进制分隔符,但我不知道该怎么做。

两者在php.ini(datatimezone)中具有相同的配置,在pc开发人员中,小数分隔符的默认配置是点(.)。我希望你帮助我。感谢。

1 个答案:

答案 0 :(得分:0)

nls_numeric_characters初始化参数派生的数字字符(十进制和组分隔符)。它的默认值派生自nls_territory初始化参数,nls_territory初始化参数的默认值是依赖的操作系统 - 源自{/ 1}}环境变量或Linux / Unix或Windows操作系统上的注册表项系统分别。

您可以覆盖NLS_LANG初始化参数的默认值,具体取决于您的需求,实例范围,会话范围或语句范围。这是一个简单的例子:

nls_numeric_characters

会话范围:

/* current value:  , (comma) as decimal separator and 
                   . (period) as group separator and 
 */
SQL> show parameter nls_numeric_characters

NAME                                 TYPE        VALUE 
------------------------------------ ----------- -------------
nls_numeric_characters               string      ,.  


SQL> with t1(col) as(
  2    select 1.23 from dual union all
  3    select 234.43 from dual
  4  )
  5  select col
  6    from t1;

       COL  
----------          
      1,23        
    234,43                 

声明范围内。在这种情况下,我们必须使用/* set . (period) as decimal separator and , (comma) as group separator */ SQL> alter session set nls_numeric_characters='.,'; Session altered. SQL> with t1(col) as( 2 select 1.23 from dual union all 3 select 234.43 from dual 4 ) 5 select col 6 from t1; COL ---------- 1.23 234.43 函数并提供数字格式模型:

to_char()