oracle删除表,如果表不存在,就报错,在跑大型脚本(脚本长且耗时的时候)比较麻烦,一般希望的是点开始然后脚本运行到结束,不可能一直盯着屏幕等弹出提示手工点掉,mysql就很好有drop table if not exist功能

CREATE OR REPLACE PROCEDURE p_drop_table_if_exist(p_vc2_tbl_name  IN all_tables.table_name%TYPE,p_vc2_tbl_owner IN all_tables.owner%TYPE DEFAULT USER) ISv_num_tbl_count NUMBER(4);v_vc2_sql_stmt  VARCHAR2(1000);BEGIN-- Check if table already existsp_chk_table_exist(p_vc2_tbl_name, p_vc2_tbl_owner, v_num_tbl_count);IF (v_num_tbl_count != 0) THEN-- Table already exists and must be droppedv_vc2_sql_stmt := 'DROP TABLE ' || CASEWHEN p_vc2_tbl_owner IS NOT NULL THENp_vc2_tbl_owner || '.'END || p_vc2_tbl_name || ' purge';--dbms_output.put_line(v_vc2_sql_stmt);EXECUTE IMMEDIATE v_vc2_sql_stmt;END IF;END;CREATE OR REPLACE PROCEDURE p_chk_table_exist(p_vc2_tbl_name  IN all_tables.table_name%TYPE,p_vc2_tbl_owner IN all_tables.owner%TYPE DEFAULT USER,p_num_tbl_count OUT NUMBER -- 1 if table exists, 0 if it doesn't) ISv_vc2_tbl_name all_tables.table_name%TYPE := UPPER(p_vc2_tbl_name);BEGINIF p_vc2_tbl_owner IS NOT NULL THENSELECT COUNT(1)INTO p_num_tbl_countFROM all_tablesWHERE table_name = v_vc2_tbl_nameAND owner = UPPER(p_vc2_tbl_owner);ELSESELECT COUNT(1)INTO p_num_tbl_countFROM user_tablesWHERE table_name = v_vc2_tbl_name;END IF;END p_chk_table_exist;

have fun

oracle自定义存储过程:删除表(无论表是否存在)和检测表是否存在相关推荐

  1. oracle存储过程和视图不存在,Oracle 创建存储过程 提示权限不足或者提示表和视图不存在问题...

    grant create view to hospital; --授予查询权限 grant select any table to hospital; --授予权限 grant select any ...

  2. oracle复制另一个字段,【学习笔记】Oracle存储过程 表中列不同时动态复制表中数据到另一个表中...

    天萃荷净 分享一篇关于Oracle存储过程实现表之间数据复制功能.两表中列不同,动态的将一表中的数据复制到另一个表中案例 因为要用到回收站功能,删除一条记录,要先放到一个delete表中,以便以后恢复 ...

  3. Oracle Database 10g:删除表

    使用 Oracle Database 10g 中的闪回表特性,可以毫不费力地恢复被意外删除的表 以下是一个不该发生却经常发生的情况:用户删除了一个非常重要的表 - 当然是意外地删除 - 并需要尽快地恢 ...

  4. spool命令、创建一个表,创建并且copy表,查看别的用户下的表,rowid行地址 索引的时候使用,表的增删改查,删除表,oracle的回收站

      1.spool 命令 spool "D:\test.txt" spool off SQL> host cls 2.创建一个表 SQL> --条件(1):有创 ...

  5. oracle删除库里的所有表,清空mysql指定库里全部表数据-自动删除所有表,有外键约束的表优先删除...

    清空mysql指定库里所有表数据-自动删除所有表,有外键约束的表优先删除 由于要清空数据库数据 ,手动非常麻烦.网上找了一下,有一个Oracle的,参照它,在其上修改一下用于Mysql,把代码奉献如下 ...

  6. mysql存储过程删除_MySQL 存储过程删除大表

    1.权限问题 alter routine 编辑或删除存储过程 create routine 建立存储过程 execute 创建存储过程 2.存储过程相关的一些命令 show procedure sta ...

  7. spool命令、创建一个表,创建而且copy表,查看别的用户下的表,rowid行地址 索引的时候使用,表的增删改查,删除表,oracle的回收站...

      1.spool命令 spool "D:\test.txt" spool off SQL> host cls 2.创建一个表 SQL> --条件(1):有创建 ...

  8. oracle创建和删除表空间,oracle 表空间创建和删除

    oracle数据库:数据库对象以及表数据都存储在表空间中,创建用户时可以指定对应的表空间.这样用户可以在各自的表空间中操作数据,互不干扰. 1. 表空间创建 若不清楚表空间对应文件的路径,可以登录系统 ...

  9. Oracle怎么新增删除表分区

    目录 一.Oracle分区简介 二.Oracle分区优缺点 三.oracle删除分区数据 方法1:通过删除分区的方式 方法2:清数据 四.分区表的种类及创建分区 1.RANGE 范围分区 2.LIST ...

最新文章

  1. lvs+keepalived简单配置
  2. python -- IO多路复用
  3. linux 32库路径,linux – 共享库如何在64位/ 32位混合系统中工作?
  4. bash之流程控制for循环及bash命令退出和退出状态码
  5. 十分经典的批处理教程
  6. java基本语句回文数实验_实验二 java基本数据类型与把持语句.doc
  7. 职业教育计算机课教学反思,职高课后的教学反思(精选5篇)
  8. 神操作!员工索要工资遭遇“假转账”:转了生气又撤销
  9. IE6不支持hover赋予css样式的解决方法 如div:hover li:hover支持
  10. memcached 内存管理 分析(转)
  11. Vim 可视化模式入门
  12. PyTorch 学习笔记(六):PyTorch的十八个损失函数
  13. 检查数组中的子字符串– Java,Python和Swift
  14. ELF文件和BIN文件 uboot.elf uboot.bin
  15. 测试音频质量的软件,音频测试工具V5.5
  16. 毕设项目 - 基于SSM的教师工作考核绩效管理系统(含源码+论文)
  17. 小米9android q测试版,MIUI Android Q Beta优先体验版已推送:小米9可尝鲜
  18. iOS6和iPhone5使用第三方静态库在真机无法运行的处理
  19. 当GUSD遇上STO,全球投资格局与资金流向生变? | 链塔智库
  20. 从架构到策划一个人两个晚上通宵搞定

热门文章

  1. Python实例讲解 -- wxpython 基本的控件 (按钮)
  2. Python 3 教程一:入门
  3. 【v8】一些关于内存泄漏的踏坑
  4. How to Create Your Own CentOS Vagrant Box
  5. iptables二之防火墙SNAT源地址转换,MASQUERADE地址伪装之DNAT目标地址转换讲解和实验演示
  6. 改变 Gnome 应用程序 图标 大小
  7. 【ICLR2019】Oral 论文汇总
  8. CSS3 选择器总结(表格版)
  9. 草稿 断开式连接 1204
  10. vs2012安装过程 1006