zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    获取平台所有接口的IP和MAC地址
    共享内存
    消息队列
    shell常见语法
    保存结构体到文件
    Bookmarks
    js打开新窗口
    要买的书
    批量下载辅助工具
    解决word没有菜单栏和工具栏
  • 原文地址:https://www.cnblogs.com/iHqq/p/4619173.html
Copyright © 2011-2022 走看看