Oracle数据库将各个字段的空值改为0

来源:互联网 发布:饶颖为啥不告了知乎 编辑:程序博客网 时间:2024/04/28 21:43

表数据有空值的情况,一般希望把数值类型的字段直接赋值为0而不是空值,这里使用存储过程实现。

  • 首先建立表testnull结构如下:
SQL> describe testnull;Name Type   Nullable Default Comments ---- ------ -------- ------- -------- NUM1 NUMBER Y                         NUM2 NUMBER Y  
  • 循环插入数据:
BEGIN    FOR v_count IN 1..100 LOOP      INSERT INTO testnull(num1) Values(1);    END LOOP;END;

这个时候的num2字段均为空值:
这里写图片描述

  • 之后使用脚本将对应的数值类型的字段空值转为0:
DECLARE  v_sql VARCHAR2(1000);BEGIN   FOR rec IN (SELECT a.* FROM user_tab_columns a                      WHERE a.TABLE_NAME='TESTNULL' AND a.DATA_TYPE='NUMBER' AND a.NULLABLE='Y')  LOOP    v_sql:='update '||rec.table_name||' set '                   ||rec.column_name||'=0 where '||rec.column_name||' is null';    EXECUTE IMMEDIATE v_sql;                END LOOP;END;

查看数据:
这里写图片描述

阅读全文
0 0
原创粉丝点击