`

oracle用存储过程实现mysql的drop if exists

 
阅读更多
以下oralce存储过程作用类似于mysql的 drop if exists功能。
--判断制定表是否存在,如果存在删除该表。
create or replace procedure proc_dropifexists(   
    p_table in varchar2   
) is   
    v_count number(10);   
begin   
   select count(*)   
   into v_count   
   from user_tables   
   where table_name = upper(p_table);   
 
   if v_count > 0 then   
      execute immediate 'drop table ' || p_table ||' purge';   
   end if;   
end proc_dropifexists;

在调用存储过程的时候出了点小问题。在PLSQL中执行以上存储过程,网上很多文章都
用     exec proc_dropifexists('表名');
或者   execute proc_dropifexists('表名');
来执行。但本人在执行以上语句的时候总是报'ora 00900' 无效语句错误,不知为何。

最后用:  call proc_dropifexists('表名'); 执行成功。

不知道以上原理是什么,如果有懂原理的大神看到,请指教。
0
4
分享到:
评论

相关推荐

    oracle数据库学习笔记总结

    MySQL的: drop table if exists 表名; SQL Server的: IF EXISTS (SELECT name FROM sysobjects WHERE name = '表名' AND type = 'U') DROP TABLE 表名; Oracle的: create or replace table 表名 ...; -- 直接写...

    在Mysql数据库里通过存储过程实现树形的遍历

    关于多级别菜单栏或者权限系统中部门上下级的树形遍历,oracle中有connect by来实现,mysql没有这样的便捷途径,所以MySQL遍历数据表是我们经常会遇到的头痛问题,下面通过存储过程来实现。 1,建立测试表和数据: ...

    DROP TABLE在不同数据库中的写法整理

    DROP TABLE IF EXISTS [table_name] 2,Oracle中: BEGIN EXECUTE IMMEDIATE 'DROP TABLE [table_name]'; EXCEPTION WHEN OTHERS THEN NULL; END; 3,在Sql Server中 IF EXISTS ( SELECT TABLE_NAME FROM ...

    MySQL实现树形的遍历

     关于多级别菜单栏或者权限系统中部门上下级的树形遍历,oracle中有connect by来实现,mysql没有这样的便捷途径,所以MySQL遍历数据表是我们经常会遇到的头痛问题,下面通过存储过程来实现。  1,建立测试表和...

    mysql数据库的基本操作语法

    create database [if not exists] dbName; 中括号部分可选的,判断该数据不存在就创建 4、 切换、使用指定数据库 use dbName; 5、 显示当前使用数据库所有的表对象 show tables; 6、 显示表结构describe(desc) ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    其一、就业面广:全球前100强企业99家都在使用ORACLE相关技术,中国政府机构,大中型企事业单位都能有ORACLE技术的工程师岗位。 其二、技术层次深:如果期望进入IT服务或者产品公司(类似毕博、DELL、IBM等),...

    最新全国行政区划编码 sql(3级,2016-08-09 统计局发布)

    DROP TABLE IF EXISTS `sys_area`; CREATE TABLE `sys_area` ( `code` varchar(20) NOT NULL default '' COMMENT '行政区划编码', `parent_code` varchar(20) default NULL COMMENT '父级行政区划编码', `name` ...

    在MySQL中创建实现自增的序列(Sequence)的教程

    项目应用中,曾有以下一个场景: 接口中要求发送一个int类型的流水号,由于多线程模式,如果用时间戳,可能会有重复的情况...DROP TABLE IF EXISTS sequence; CREATE TABLE sequence ( name VARCHAR(50) NOT NULL,

    mysql基础只是总结

    mssql 2000 Access DB2 oracle 【mysql安装】 1、官方下载mysql win32 msi 2、点击安装 3、配置 4、查看是否安装成功 通过cmd 输入netstat -a搜索3306端口是否处于listening状态 【mysql服务的启动与停止】 1...

    从excel模版生成数据库表DDL

    想找个从设计文档直接生成DDL的工具,发现这里太少了,所以找了一个上传。 功能比较强大,支持的数据库有: DB2 MariaDB MySQL Oracle PostgreSQL ...Create Tables IF Not Exists SQL 详见内部说明文档。

    springmybatis

    MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan ...

    2009达内SQL学习笔记

    检索返回数据的顺序没有特殊意义,为了明确地排序用 SELECT 语句检索出的数据,可使用 ORDER BY 子句。 ORDER BY 子句取一个或多个列的名字。 对空值,按无穷大处理(升序中,空值排最后;降序中排最前)。 1、...

    经典全面的SQL语句大全

     使用SQL语句 用...代替过长的字符串显示  语法:  SQL数据库:select case when len(field)>10 then left(field,10)+'...' else field end as news_name,news_id from tablename  Access数据库:SELECT iif(len...

    Java学习笔记-个人整理的

    {1.9.1}\texttt {if\ldots esle\ldots }}{31}{subsection.1.9.1} {1.9.2}\texttt {switch}}{31}{subsection.1.9.2} {1.9.3}\texttt {while}}{32}{subsection.1.9.3} {1.9.4}\texttt {for}}{32}{subsection.1.9.4...

Global site tag (gtag.js) - Google Analytics