您好,欢迎来到微智科技网。
搜索
您的当前位置:首页oracle更新字段为null,OracleORA-01451:要修改为NULL的列无法修改为NULL

oracle更新字段为null,OracleORA-01451:要修改为NULL的列无法修改为NULL

来源:微智科技网

调试一段程序,遇到如题错误,查资料才发现Oracle中不允许将NULL字段修改为NULL字段。只好在修改之前做判断了。打开PL/SQL,写如

调试一段程序,遇到如题错误,查资料才发现Oracle中不允许将NULL字段修改为NULL字段。只好在修改之前做判断了。

打开PL/SQL,写如下代码

declare

visnull varchar2(4);

begin

select nullable into visnull from user_tab_columns

where table_name = upper('tblStockInspect')

and column_name = upper('FDepartID');

if visnull = 'N' then

alter table tblStockInspect modify FDepartID int null;

end if;

end;

运行,,又出现错误提示如下

---------------------------------------------------------------------------

ORA-06550: 第 8 行, 第 7 列:

PLS-00103: 出现符号 "ALTER"在需要下列之一时:

( begin case declare exit

for goto if loop mod null pragma raise return select update

while with

<<

continue close current delete fetch lock insert open rollback

savepoint set sql execute commit forall merge pipe purge

---------------------------------------------------------------------------------

仔细一看,原来alter不允许在PL/SQL下直接运行,只好更改如下

declare

visnull varchar2(4);

begin

select nullable into visnull from user_tab_columns

where table_name = upper('tblStockInspect')

and column_name = upper('FDepartID');

if visnull = 'N' then

execute immediate 'alter table tblStockInspect modify FDepartID int null‘;

end if;

end;

运行通过

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务