显示 all_tab_columns 中所有列少于 4 列的所有表,其中 owner ='GYS' 并以 'COL' 开头,而不使用 group by 函数。
尝试使用 count/max 函数时出现错误。任何想法,将不胜感激!
显示 all_tab_columns 中所有列少于 4 列的所有表,其中 owner ='GYS' 并以 'COL' 开头,而不使用 group by 函数。
尝试使用 count/max 函数时出现错误。任何想法,将不胜感激!
此查询将为您提供数据库中列数少于 4 的所有表的名称
SELECT TABLE_NAME, COUNT(Column_Name) NumOfCols
FROM INFORMATION_SCHEMA.COLUMNS
GROUP BY TABLE_NAME
HAVING COUNT(Column_Name) < 4
declare
cursor c1
is
select t.table_name, t.column_name, t.owner,
(select count('table_name.column_name')
from all_tab_columns ct where ct.table_name = t.table_name )
as namecounter
from all_tab_columns t where t.owner ='GYS' and t.table_name like 'COL%';
b1 c1%rowtype;
tab_count number(10);
temp_column varchar2(100);
begin
open c1;
loop
fetch c1 into b1;
temp_column := b1.namecounter;
while temp_column <4
loop
dbms_output.put_line(b1.table_name||b1.column_name||b1.namecounter);
tab_count:=c1%rowcount;
dbms_output.put_line(tab_count);
end loop;
end loop;
close c1;
end;
/
我终于解决了上述问题,但是就执行速度而言,它的运行速度非常慢,任何提高性能的想法都将不胜感激!