达梦看数据库表行数

-- 创建临时表存储结果
CREATE GLOBAL TEMPORARY TABLE TEMP_ROW_COUNTS (
    TABLE_NAME VARCHAR(128),
    ESTIMATED_ROWS NUMBER,
    ACTUAL_ROWS NUMBER
) ON COMMIT PRESERVE ROWS;

-- 创建并执行动态SQL的存储过程
CREATE OR REPLACE PROCEDURE GET_ALL_TABLE_ROWS AS
  V_SQL VARCHAR(4000);
BEGIN
  FOR T IN (SELECT TABLE_NAME FROM USER_TABLES) LOOP
    V_SQL := 'INSERT INTO TEMP_ROW_COUNTS SELECT ''' || T.TABLE_NAME || ''', 
             (SELECT NUM_ROWS FROM USER_TABLES WHERE TABLE_NAME = ''' || T.TABLE_NAME || '''),
             (SELECT COUNT(*) FROM "' || T.TABLE_NAME || '")';
    EXECUTE IMMEDIATE V_SQL;
  END LOOP;
END;
/

-- 执行存储过程
CALL GET_ALL_TABLE_ROWS();

-- 查看结果
SELECT * FROM TEMP_ROW_COUNTS;

-- 清理
DROP PROCEDURE GET_ALL_TABLE_ROWS;
DROP TABLE TEMP_ROW_COUNTS;

 

posted on 2025-05-30 08:47  RookieBoy666  阅读(88)  评论(0)    收藏  举报