oracle 無效的數字,Oracle Error:ORA-01465: 無效的十六進制數字【解決辦法】

有一個表名為tb,字段段名為name,數據類型nchar(20)。

1、假設字段數據為空,則不管改為什么字段類型,可以直接執行: alter table tb modify (name

nvarchar2(20));

2、假設字段有數據,則改為nvarchar2(20)可以直接執行: alter table tb modify (name

nvarchar2(20));

3、假設字段有數據,則改為varchar2(40)執行時會彈出:“ORA-01439:要更改數據類型,則要修改的列必須為空”,這時要用下面方法來解決這個問題:

/修改原字段名name為name_tmp/ alter table tb rename column name to name_tmp;

/增加一個和原字段名同名的字段name/ alter table tb add name varchar2(40);

/將原字段name_tmp數據更新到增加的字段name/ update tb set name=trim(name_tmp);

/更新完,刪除原字段name_tmp/ alter table tb drop column name_tmp;

總結: 1、當字段沒有數據或者要修改的新類型和原類型兼容時,可以直接modify修改。

2、當字段有數據並用要修改的新類型和原類型不兼容時,要間接新建字段來轉移。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值