您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Oracle 过程中检查数据表存在与否

2025/5/12 12:50:49发布25次查看
在过程中,尤其是每天执行的任务,通常要检查查询的数据表存在不存在,如果不存在则等待一段时间在进行执行,以下代码实现了这个
在过程中,尤其是每天执行的任务,通常要检查查询的数据表存在不存在,如果不存在则等待一段时间在进行执行,以下代码实现了这个功能,如果表不存在,抛出异常,交给异常处理代码,,确保数据完整性
使用方法:p_checktable('username.tablename')用户名不存在,则在所有表中查找
create or replace procedure p_checktable(p_tablename in varchar2)  as
v_count number;
v_tablename varchar2(200);
v_table varchar2(200);
v_owner varchar2(100);
begin
 v_tablename:=upper(p_tablename);
 v_count:=instr(v_tablename,'.',1,1);
--取owner
 v_owner:=substr(v_tablename,1,v_count-1);
 --dbms_output.put_line(v_owner);
--get table name 
 v_table:=substr(v_tablename,v_count+1,length(v_tablename)-v_count);
 --dbms_output.put_line(v_table);
--if not use other user table ,the owner string is null,then check all tables
 if v_owner is null then
  select count(*) into v_count from all_tables a where a.table_name=v_table;
 else
  select count(*) into v_count from all_tables a where a.table_name=v_table and  owner=v_owner;
 end if;
 if v_count=0 then
  raise_application_error(-20010,p_tablename||' is not exist,please wait..');
 end if;
end p_checktable;
本文永久更新链接地址:
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product