oracle数据库判断表(由存储过程创建)的存在

2025-01-02 12:56:53
推荐回答(2个)
回答1:

你不是已经drop table又重新创建了,有什么问题吗?
你的思路是对的,要创建前应该先判断,如果存在就删掉重建,不存在的话就直接创建。
只是,可以稍微简化一下代码,比如那两个select,不需要用execute immediate的方式。对于dml语句,可以直接执行,比如select count(*) into vCount from user_tables where table_name =vTname,而创建语句直接放到if判断里面,这样显得结构上更紧凑和逻辑性。

回答2:

user_tables 中的 table_name作为字符处理,必须是大写的才能匹配,所以最好你应该加上upper函数
vSql :='select count(*) from user_tables where table_name = '''||upper(vTname)||''' ' ;