gpt4 book ai didi

oracle - 如何从 PL/SQL 中的表列表中查找空表?

转载 作者:行者123 更新时间:2023-12-01 14:00:51 25 4
gpt4 key购买 nike

我有一个表格列表,例如 table1、table2、....table35。我需要找到空的。有没有更快的方法来做到这一点?我用谷歌搜索了一些,但所有解决方案都是关于在模式中查找空表的。这次我有一个表名列表,想找空表。有什么建议吗?

最佳答案

从 DBA_OBJECTS 获取所有表并循环:

DECLARE
v_cnt NUMBER;
v_schemaname VARCHAR(20) := 'myschema';
BEGIN
FOR i IN (SELECT DISTINCT OWNER, OBJECT_NAME
FROM DBA_OBJECTS
WHERE OBJECT_TYPE = 'TABLE' AND OWNER = v_schemaname)
LOOP
BEGIN
EXECUTE IMMEDIATE
'select count(*) FROM ' || i.owner || '.' || i.object_name || ' WHERE rownum = 1'
INTO v_cnt;

IF v_cnt = 0
THEN
DBMS_OUTPUT.put_line (
i.owner || '.' || i.object_name || ' IS EMPTY');
END IF;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (
i.owner || '.' || i.object_name || ' ERROR: ' || SQLCODE);
END;
END LOOP;
END;

关于oracle - 如何从 PL/SQL 中的表列表中查找空表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50756841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com