ORACLE:在知道行数的数据库中查找表

时间:2016-01-20 13:52:37

标签: database oracle

我有一个要求我需要你的帮助。

表格中的行数:130

这是我拥有的唯一数据。基于此,是否可以从Oracle数据库中找到包含130行的表名。

由于 萨姆

3 个答案:

答案 0 :(得分:1)

select c,lpad(to_hex(ascii(c)),4,'0') from (
  select regexp_split_to_table(column_name::text,'')  as c
    from  information_schema.columns
    where table_schema='public'
    and table_name='two'
  ) as g;

 c | lpad 
---+------
 f | 0066
 i | 0069
 r | 0072
 s | 0073
 t | 0074
  +| 000a
   | 
 s | 0073
 e | 0065
 c | 0063
 o | 006f
 n | 006e
 d | 0064

答案 1 :(得分:0)

您可以尝试使用一些动态SQL:

declare
  n number;
begin
    for t in ( 
               select owner || '.' || table_name as tab
               from dba_tables
               where owner = 'YOUR_SCHEMA'  /* IF YOU KNOW THE SCHEMA */
              )
    loop
        execute immediate 'select count(1) from ' || t.tab into n;
        if n = 130 then
            dbms_output.put_line('Table ' || t.tab );
        end if;
    end loop;
end; 

请注意,根据数据库中的表/记录数量,这可能需要很长时间才能运行。

答案 2 :(得分:0)

我希望此查询可以为您提供帮助:

查询1: SELECT CONCAT('SELECT COUNT(*)as cnt FROM',table_name,'union all')FROM information_schema.tables WHERE table_schema ='aes';

查询2:选择max(考勤)从(粘贴从上述查询中获得的结果并删除最后一个联合所有)作为tmptable;

<强>参考: Find Table with maximum number of rows in a database in mysql