使用php5.3和oracle10g更改windowsxp中的小数分隔符


Change decimal separator in windows xp with php 5.3 and oracle 10g

我有两台电脑:

服务器:

  • Centos

PC开发人员:

  • windowsxp

两者:

  • apache
  • php 5.3
  • 与同一BD的连接

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

服务器:

12.244
12.890

Pc显影剂

12,244
12,890

我想让电脑开发人员打印点作为十进制分隔符,但我不知道怎么做。

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

nls_numeric_characters初始化参数派生的数字字符(十进制和组分隔符)。其默认值来源于nls_territory初始化参数,nls_territory初始化参数的默认值取决于操作系统——分别来源于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()功能并提供数字格式模型:

SQL> with t1(col) as(
  2    select 1.23 from dual union all
  3    select 234.43 from dual
  4  )
  5  select to_char(col, '990d00', q'[nls_numeric_characters='.,']') as res
  6       , col
  7    from t1;

RES            COL   
------- ---------- 
   1.23       1,23 
 234.43     234,43