我有一个脚本,我在其中创建一些测试数据。在脚本的开头,我创建了一些表,我必须在其中插入数据。在创建它们之前,我检查它们是否不存在。
declare
tableExists number;
begin
SELECT COUNT(*)
INTO tableExists
FROM user_tables
WHERE table_name = 'MY_TEST_TABLE';
if tableExists>0 then
execute immediate 'drop table MY_TEST_TABLE';
end if;
SELECT COUNT(*)
INTO tableExists
FROM user_tables
WHERE table_name = 'MY_TEST_TABLE2';
if tableExists>0 then
execute immediate 'drop table MY_TEST_TABLE2';
end if;
--Here I create both tables: MY_TEST_TABLE and MY_TEST_TABLE2
我的问题是:有没有办法避免重复检查表是否存在的代码?有没有一种方法可以将该代码称为将表名作为参数传递的方法?
我相信我可以创建/声明一个函数,然后使用它。但这种功能不是暂时的。我知道这不像 C 或 C++。但我想知道是否有一种方法可以让这个脚本有一种“私有方法”来测试我的表的存在,这样我就不必重复代码,但该方法不会在之后保留我的剧本完成了。
如果有的话,实现我想要的正确方法是什么?
您总是可以在 PL/SQL 中嵌套块
您可以将表放入临时表或 varchar2 表中。前任:
实例化:
..
代码: