程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle 過程中檢查數據表存在與否,oracle數據

Oracle 過程中檢查數據表存在與否,oracle數據

編輯:Oracle教程

Oracle 過程中檢查數據表存在與否,oracle數據


在過程中,尤其是每天執行的任務,通常要檢查查詢的數據表存在不存在,如果不存在則等待一段時間在進行執行,以下代碼實現了這個功能,如果表不存在,拋出異常,交給異常處理代碼,確保數據完整性

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved