打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
修改oracle字段小数点精度
--REFVALUE长度:由于小数4位改为6位
DECLARE
  VN_COUNT1 NUMBER;
BEGIN
  SELECT COUNT(*) INTO VN_COUNT1  FROM USER_TAB_COLUMNS 
   WHERE TABLE_NAME = 'BIS_FIN_PRODUCT_INFO' AND COLUMN_NAME = 'REFVALUE';
   IF VN_COUNT1 = 1 THEN
    EXECUTE IMMEDIATE 'ALTER TABLE BIS_FIN_PRODUCT_INFO ADD REFVALUE_TEMP NUMBER';
    EXECUTE IMMEDIATE 'UPDATE BIS_FIN_PRODUCT_INFO SET REFVALUE_TEMP=REFVALUE,REFVALUE=NULL';
    EXECUTE IMMEDIATE 'ALTER TABLE BIS_FIN_PRODUCT_INFO MODIFY REFVALUE  NUMBER(15,6)';
    EXECUTE IMMEDIATE 'UPDATE BIS_FIN_PRODUCT_INFO SET REFVALUE=REFVALUE_TEMP';
    EXECUTE IMMEDIATE 'ALTER TABLE BIS_FIN_PRODUCT_INFO DROP COLUMN REFVALUE_TEMP';
  END IF;
END;
/

--如使用下面的脚本,两个COMMIT需要注意必须有。
--建立临时字段REFVALUE_TEMP 
ALTER TABLE BIS_FIN_PRODUCT_INFO ADD REFVALUE_TEMP NUMBER;
--将REFVALUE值保存到临时字段里
UPDATE BIS_FIN_PRODUCT_INFO SET REFVALUE_TEMP=REFVALUE,REFVALUE=NULL;
COMMIT;
--修改精度为6位(原来为4位)
ALTER TABLE BIS_FIN_PRODUCT_INFO MODIFY REFVALUE  NUMBER(15,6);
--将临时字段里值还原回REFVALUE字段里
UPDATE BIS_FIN_PRODUCT_INFO SET REFVALUE=REFVALUE_TEMP;
COMMIT;
--删除临时字段
ALTER TABLE BIS_FIN_PRODUCT_INFO DROP COLUMN REFVALUE_TEMP;
---
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
总结:六种删除数据库重复行的方法
sqlite的系统表sqlite_master
SQL语句效率
sql学习资料
开源ETL工具kettle系列之常见问题
SQL语言的组成一、SQL语言有命令动词、子句、运算符和统计函数构成。这些元素结合起来组成语句,用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服