如何在Oracle中检查对象是否存在
如何在Oracle中检查对象是否存在
这个问题在这里已有答案:
我们可以使用以下查询在T-SQL中检查对象是否存在。
IF OBJECT_ID('TBL_COMP_ASSESSMENT') IS NOT NULL DROP TABLE TBL_COMP_ASSESSMENT
在Oracle中有没有实现这个的方法?
admin 更改状态以发布 2023年5月24日
你可以使用ALL_OBJECTS表。像这样的代码应该可以:
SELECT * FROM ALL_OBJECTS WHERE OBJECT_NAME = ''
你可以根据你的要求添加更多的条件:
AND OWNER='' AND OBJECT_TYPE=' '
完整的详情在这里:http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_2005.htm
在运行时动态
无论如何,如果你真的想这样做,那么你需要利用
例如:
SQL> DECLARE 2 cnt NUMBER; 3 BEGIN 4 SELECT Count(*) 5 INTO cnt 6 FROM user_tables 7 WHERE table_name = 'TBL_COMP_ASSESSMENT'; 8 9 IF cnt = 1 THEN 10 BEGIN 11 EXECUTE IMMEDIATE 'DROP TABLE TBL_COMP_ASSESSMENT'; 12 EXCEPTION 13 WHEN OTHERS THEN 14 IF SQLCODE != -942 THEN 15 RAISE; 16 END IF; 17 END; 18 END IF; 19 END; 20 21 / PL/SQL procedure successfully completed. SQL>