在oracle中进行进行更新操作,为什么会丢失0.
update tablename set field='002500000'+to_char(编号),其中编号是number型,field是字符型。得出来的结果是(假设编号为1)则是:2500001 而不是我想要的0025000001
追问:varchar2或nvarchar2都试过,一样的结果。
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数据库中数据时界面卡死!!求救!!!