oracle检查表是否存在 然后删除_存储过程和自定义函数的区别

oracle检查表是否存在 然后删除_存储过程和自定义函数的区别oracle删除表,如果表不存在,就报错,在跑大型脚本(脚本长且耗时的时候)比较麻烦,一般希望的是点开始然后脚本运行到结束,不可能一直盯着屏幕等弹出提示手工点掉,mysql就很好有drop table

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) IS
    v_num_tbl_count NUMBER(4);
    v_vc2_sql_stmt  VARCHAR2(1000);
  BEGIN
    -- Check if table already exists
    p_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 dropped
      v_vc2_sql_stmt := "DROP TABLE " || CASE
                          WHEN p_vc2_tbl_owner IS NOT NULL THEN
                           p_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
                                ) IS
    v_vc2_tbl_name all_tables.table_name%TYPE := UPPER(p_vc2_tbl_name);
  BEGIN

    IF p_vc2_tbl_owner IS NOT NULL THEN
      SELECT COUNT(1)
        INTO p_num_tbl_count
        FROM all_tables
       WHERE table_name = v_vc2_tbl_name
         AND owner = UPPER(p_vc2_tbl_owner);
    ELSE
      SELECT COUNT(1)
        INTO p_num_tbl_count
        FROM user_tables
       WHERE table_name = v_vc2_tbl_name;
    END IF;
  END p_chk_table_exist;

代码100分

have fun

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/11044.html

(0)
上一篇 2022-12-17
下一篇 2022-12-17

相关推荐

  • Python Tkinter Labels: 创建GUI中的文本标签

    Python Tkinter Labels: 创建GUI中的文本标签a href=”https://beian.miit.gov.cn/”苏ICP备2023018380号-1/a Copyright www.python100.com .Some Rights Reserved.

    2024-01-15
    97
  • 单表查询DQL

    单表查询DQL基本数据检索:单表 复杂数据检索:多表:连接查询、子查询(嵌套查询)、集合运算 基本select语句: select <检索字段> from <表> where <检索条

    2023-03-04
    151
  • 虚拟机里怎么安装sql数据库_windows sql server

    虚拟机里怎么安装sql数据库_windows sql server配置 Internal Load Balancer 创建load balancer 我的三台VM都位于sqldemoVNET/linuxsubnet子网,AG Listener之前在SQL中配置是17

    2023-02-22
    147
  • Python int用法详解

    Python int用法详解在Python中,int指代整数,包括正整数、负整数和0。int是Python中的基本数据类型之一。在Python中使用int时默认使用十进制。 除了十进制,Python还支持二进制、八进制和十六进制。

    2024-09-03
    20
  • 使用Python的print函数

    使用Python的print函数Python是一种强大的编程语言,它拥有众多的内置函数和模块,其中print函数是最常用的函数之一。使用print函数可以将想要输出的信息在控制台或者文件中打印出来。本文将介绍使用Python的print函数的几个方面。

    2024-04-13
    81
  • MySQL总结(十一)子查询-详解[亲测有效]

    MySQL总结(十一)子查询-详解[亲测有效]子查询 1. 什么是子查询 — 需求:查询开发部中有哪些员工 select * from emp; — 通过两条语句查询 select id from dept where name=&apos…

    2023-03-11
    139
  • Hadoop(四)C#操作Hbase「建议收藏」

    Hadoop(四)C#操作Hbase「建议收藏」Hbase Hbase是一种NoSql模式的数据库,采用了列式存储。而采用了列存储天然具备以下优势: 可只查涉及的列,且列可作为索引,相对高效 针对某一列的聚合及其方便 同一列的数据类型一致,方便压缩

    2023-05-14
    148
  • 如何使用pip在Python中安装pandas库

    如何使用pip在Python中安装pandas库
    Pandas 是一个高性能数据分析库,是基于 NumPy 的一种工具,该库是Python必备的数据处理/分析库之一,因为它可以方便地处理包含不同数据类型(如整数,浮点数和文本)的数据集。要使用 Pandas,必须先安装它。在本文中,我们将了解如何使用 pip 安装 Pandas。

    2024-04-22
    63

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注