当我使用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. Symfony2默认数字格式
- 2. Zend Oracle默认日期格式
- 3. double,无数字默认格式
- 4. 正则表达式PHP字母,数字和默认符号
- 5. 默认字数为Php
- 6. PHP,IIS,Oracle(OCI)不起作用
- 7. Oracle默认值
- 8. Oracle ODBC默认数据库
- 9. 数字格式在oracle
- 10. Resharper默认格式和规则列表
- 11. 使用Oracle调用接口(OCI)检测具有默认值的列
- 12. 默认数据格式(本地化)
- 13. 默认构造函数C++格式
- 14. Matplotlib默认日期格式?
- 15. 日期的默认格式
- 16. matplotlib - 改变默认格式
- 17. 显示默认格式
- 18. Jsp默认日期格式
- 19. PHP和Oracle之间的等待时间长OCI
- 20. Oracle APEX - 使用默认值设置表格形式
- 21. 与默认字符串连接(Procedure Oracle)
- 22. PHP数字格式
- 23. 如何从OCI调用ORACLE函数?
- 24. 力情况与OCI在PHP(oracle数据库)
- 25. Oracle - OCI查询超时
- 26. 在awk中设置默认数字格式
- 27. 如何更改Excel中的默认数字格式?
- 28. 在R中更改默认数字格式
- 29. 如何在Clojure中设置默认数字格式?
- 30. 将Oracle设置表字段默认值的公式推
感谢您的回答,但我正在寻找一种方法在全球范围内进行更改。我们有很多需要更改的查询,这会花费太多精力。 – Dario 2010-11-26 11:11:21