当前位置:数据库 > Oracle >>

在oracle中进行进行更新操作,为什么会丢失0.

update tablename set field='002500000'+to_char(编号),其中编号是number型,field是字符型。得出来的结果是(假设编号为1)则是:2500001 而不是我想要的0025000001
追问:varchar2或nvarchar2都试过,一样的结果。
答案:Oracle 里面, 字符串连接是用  ||
而不是 +

update tablename set field='002500000'+to_char(编号)
Oracle 看到了 +
那么首先把 '002500000'  与  to_char(编号)  转换为数值类型
然后计算。
最后又转换为 字符类型。

你可以修改为
update tablename set field='002500000'   ||  to_char(编号),
其他:弱弱的问一句你那个table中field是什么类型 update tablename set field=to_char(to_number('002500000') + 编号) undate tablename set field = '2500000' + to_char(编号);
这样就行了 update tablename set field='002500000'   ||  to_char(编号),  连接符错了 

上一个:oracle 中类似tb_bil_acct_%ld查询语句里带%ld的是什么用法 求指点!
下一个:c# 删除oracle数据库中数据时界面卡死!!求救!!!

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,