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

WBOY
Lepaskan: 2016-06-07 15:53:26
asal
924 orang telah melayarinya

在过程中,尤其是每天执行的任务,通常要检查查询的数据表存在不存在,如果不存在则等待一段时间在进行执行,以下代码实现了这个

在过程中,尤其是每天执行的任务,通常要检查查询的数据表存在不存在,如果不存在则等待一段时间在进行执行,以下代码实现了这个功能,如果表不存在,抛出异常,交给异常处理代码,,确保数据完整性

使用方法: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;

本文永久更新链接地址

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!