Oracle中取出一个表内所有空值的个数

来源:百度知道 编辑:UC知道 时间:2024/09/25 19:23:36
Oracle中取出一个表内所有空值的个数

我要将一个表中所有的空值的个数取出来 比如

name age sex
-----------------
aaa 15
bbb 女
ddd 男
eee 16 男

这里面就是一共有三个空值 怎么样才能取出来这个值呢
我是在Oracle中使用
这个 我只是举了个例子 我的表最少的也有43个字段 多的有174个 我不想一个一个的做判断 有没有什么简单的办法

弄个存储过程:

create or replace procedure select_null_count(
return_cnt out number,
table_name varchar2
)as
cnt_tmp number :=0;
sql_str varchar(32767);
cursor cur(tname varchar2) is
select column_name from user_tab_columns where table_name = tname;
begin
return_cnt := 0;
for rec in cur(table_name) loop
sql_str := ' ';
sql_str := 'select count(*) from '||upper(table_name)||' where '||rec.column_name||' is null';
execute immediate sql_str into cnt_tmp;
return_cnt := return_cnt + cnt_tmp;
end loop;
end;
/

调用方法如下:

SQL>select * from test1;

部门 岗位 工资
---------- ---------- ----------
部门1 职位1 10
部门1 职位1 20
部门1 职位1 30
部门1 职位2 40
部门1 职位2 50