当我使用PHP OCI从Oracle数据库执行提取操作时,小于1的数字显示为.XXXXXX,
.249999
。有没有办法将此设置为0.XXXXXX
或任何其他格式,而不修改每个查询以明确使用to_char()
? (?也许通过一些会话参数)PHP OCI,Oracle和默认数字格式
3
A
回答
0
没有办法做你在全球范围内要求修改php/oci-extension源代码的东西。这种行为的原因是因为oracle oci在结果中省略了0,并且php根据列数据类型将所有结果从oci转换为字符串,而不执行任何转换。即使SQL * Plus中的结果默认为0,也必须使用set numformat
调用SQL * Plus格式来自定义列格式并预置0。
当前没有可以设置更改此行为的alter session参数。
解决此问题的最常见方法是在查询周围使用包装并检查数字列与is_numeric
,然后使用number_format
或sprintf
格式化数值列值。希望你的应用程序已经使用了股票php oci函数的包装,所以你可以在一个位置进行更改。
2
使用PHP,你可以轻松地添加0,通过转换为浮动:
$a = '.249999';
echo (float) $a;
这意味着你可以通过
$row['number'] = (float) $row['number'];
转换你的电话号码获取之后来自DB。
相关问题
- 1. oci_bind_by_name和TO_DATE PHP/OCI/Oracle的
- 2. java:默认数字格式
- 3. Symfony2默认数字格式
- 4. Zend Oracle默认日期格式
- 5. ToString的默认数字格式
- 6. double,无数字默认格式
- 7. 使用来自OCI的Oracle Wallet认证
- 8. 正则表达式PHP字母,数字和默认符号
- 9. 默认字数为Php
- 10. Oracle:为数字列设置默认值
- 11. PHP Oracle数据库OCI连接虽然和扩展服务器
- 12. PHP,IIS,Oracle(OCI)不起作用
- 13. Oracle默认值
- 14. Oracle ODBC默认数据库
- 15. oracle中的数字格式
- 16. 数字格式在oracle
- 17. PHPExcel风格得到默认的数字格式
- 18. Resharper默认格式和规则列表
- 19. 使用Oracle调用接口(OCI)检测具有默认值的列
- 20. PHP:解析postgre的默认字符串时间戳格式
- 21. 默认数据格式(本地化)
- 22. 默认构造函数C++格式
- 23. PHP和Oracle之间的等待时间长OCI
- 24. 默认Guid格式化
- 25. matplotlib - 改变默认格式
- 26. 烦人的默认格式
- 27. Matplotlib默认日期格式?
- 28. TimeSpan默认值格式
- 29. 显示默认格式
- 30. 设置默认格式
感谢您的回答,但我正在寻找一种方法在全球范围内进行更改。我们有很多需要更改的查询,这会花费太多精力。 – Dario 2010-11-26 11:11:21