`
312350968
  • 浏览: 212557 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

oracle 建表之前先删除语句

阅读更多

首先,Oracle 没有这种语句 create table xxx if exists!

 

所以我们可以另辟蹊径,通过写存储过程,然后用mybatis 调用,在动态建表之前先调用存储过程验证时候有该表,如果有就通过我们写的存储过程删除,存储过程代码如下:

CREATE OR REPLACE 
procedure        "PROC_DROPIFEXISTS"( 
    p_table in varchar2 
) is 
    v_count number(10); 
begin 
   select count(*) 
   into v_count 
   from user_objects 
   where object_name = upper(p_table); 
   if v_count > 0 then 
      execute immediate 'drop table ' || p_table ||' cascade constraints'; 
   end if; 
end; 

 mybatis的xml文件代码如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.mypro.employee.dao.ImportMapper" >

	<select  id="dropTable" parameterType="Map" statementType="CALLABLE">
		<![CDATA[  
    		{call PROC_DROPIFEXISTS (#{tableName,jdbcType=VARCHAR})}  
		]]>  
	</select >
	<update id="createTable" parameterType="Map">
		 <![CDATA[
  			create table ${tableName} (id integer,name varchar(20))
  		]]>
	</update>
</mapper>

 Service里面直接调用就OK

package com.mypro.employee.service.impl;

import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.mypro.employee.dao.ImportMapper;
import com.mypro.employee.service.ImportService;

@Service
@Transactional(rollbackFor=Exception.class)
public class ImportServiceImpl  implements ImportService{

	@Autowired
	private ImportMapper importMapper;
	@Override
	public void createTable(Map<String, Object> map) {
		importMapper.dropTable((String)map.get("tableName"));// 调用存储过程删除表,有就删除,没有不做操作
		importMapper.createTable(map); //动态建表
	}
}

 

分享到:
评论

相关推荐

    Oracle_基本建表语句-操作语句

    在Oracle数据库管理系统中,建表语句是进行数据存储和管理的基础操作。Oracle支持SQL标准的CREATE TABLE语句,用于创建新的数据库表。本篇将深入探讨Oracle中的基本建表语句及其相关操作。 首先,建表语句的基本...

    Oracle_基本建表语句

    本文将详细介绍Oracle的基本建表语句及相关操作。 首先,创建用户是数据库管理的基础。Oracle中创建用户的基本语法如下: ```sql CREATE USER 用户名 IDENTIFIED BY 密码 DEFAULT TABLESPACE 表空间名 TEMPORARY ...

    Oracle经典建表语句

    ### Oracle经典建表语句详解 #### 一、概述 在数据库管理中,创建表是一项基本而重要的操作。本文档将详细介绍两个Oracle经典建表语句案例:`DHC_BY_GOODSBUY`表与`DHC_BY_GOODSBUYTOTAL`表的创建过程,并额外解析...

    Oracle基本建表语句

    ### Oracle基本建表语句知识点总结 #### 一、创建用户 在Oracle数据库中,创建用户是基础操作之一。这通常用于控制不同开发者或应用程序之间的访问权限。 **语法:** ```sql CREATE USER &lt;username&gt; IDENTIFIED BY...

    Java操作Oracle数据库(建表,插数据,删除)

    Java 操作 Oracle 数据库(建表,插数据,删除) Java 是一种广泛使用的编程语言,而 Oracle 数据库是一种功能强大且广泛使用的关系型数据库管理系统。在本文中,我们将探讨如何使用 Java 操作 Oracle 数据库,包括...

    Oracle_基本建表语句.doc

    本文将详细解析Oracle的基本建表语句以及相关的数据库操作。 首先,创建用户是数据库管理的第一步。以下是一个创建用户`han`的示例: ```sql CREATE USER han IDENTIFIED BY han DEFAULT TABLESPACE users ...

    Oracle建表代码及样本数据.rar

    在给定的“Oracle建表代码及样本数据.rar”压缩包中,包含两个主要文件:“Oracle建表.txt”和“Oracle教程样本数据.xls”。这些文件分别提供了创建Oracle数据库表的SQL脚本和一些示例数据,便于理解和学习如何在...

    Oracle 基本建表语句集

    ### Oracle基本建表语句集知识点详解 #### 创建用户 - **语法**: ```sql CREATE USER &lt;用户名&gt; IDENTIFIED BY &lt;密码&gt; DEFAULT TABLESPACE &lt;表空间名&gt; TEMPORARY TABLESPACE &lt;临时表空间名&gt;; GRANT &lt;角色&gt;,&lt;角色...

    oracle建表总结.docx

    本文将深入探讨Oracle建表的一些关键知识点,包括对象命名原则、数据类型、约束条件、表的修改、删除和重命名,以及序列的创建。 首先,我们来看对象命名原则。在Oracle中,创建的表、列、索引等对象的名称有以下...

    oracle建表命令总结

    以下是对Oracle建表命令和相关约束的详细总结: 1. **主键(Primary Key)**: 主键是用来唯一标识表中每一条记录的关键字段,不允许有重复值且不能为空。在Oracle中,可以使用`PRIMARY KEY`关键字来创建主键约束...

    oracle建表总结.pdf

    在Oracle中创建表是构建数据库结构的基础,下面将对"Oracle建表总结"中的关键知识点进行详细说明。 1. **对象命名原则**: - 对象名称必须以字母开头,长度在1到130个字符之间。 - 名称中可以包含AZ, az, 09...

    Oracle新建用户、角色,授权,建表空间的sql语句

    删除用户使用`DROP USER`语句,但通常在删除用户前需要先回收其所有对象权限和角色: ```sql REVOKE ALL PRIVILEGES, GRANT OPTION FROM username; DROP USER username CASCADE; ``` `CASCADE`选项用于删除用户...

    Oracle建表建用户

    ### Oracle建表建用户知识点详解 #### 创建表空间 在Oracle数据库中,表空间是物理存储的逻辑容器,用于组织数据库中的数据。每个数据库至少包含一个表空间,默认为`SYSTEM`表空间。创建表空间的基本语法如下: `...

    oracle建表

    在Oracle数据库系统中,"建表"是数据库管理员或开发人员进行数据管理的...以上是Oracle建表及相关操作的基础知识,实际应用中,建表时还需要考虑性能优化、安全性、并发控制等多个方面,确保数据库设计的高效和稳定。

    oracle 的基本建表语句

    在这个话题中,我们将探讨如何在Oracle中创建用户、管理表以及进行一些基本的表操作,包括添加和删除字段,以及处理主键和外键。 首先,创建用户是数据库管理的基础。在Oracle中,你可以使用`CREATE USER`语句来...

    ORACLE下SCOTT用户中所有表的建表语句和数据

    如果用的是oracleXE可能没有SCOTT用户,可以按照https://www.cnblogs.com/zhuzhixijiang/p/5192354.html 此微博,建立数据文件、表...可以将DROP TABLE语句删除。前面提到的微博中使用的工具是navicat,推荐大家使用。

    Oracle数据库表建立字段唯一性的方法

    - 可以使用`ALTER TABLE`语句删除或修改唯一约束,或者使用`DROP INDEX`删除唯一索引。 - 若要检查表是否有重复值,可以使用`DISTINCT`关键字查询,或使用`GROUP BY`结合`HAVING`来查找。 8. **源码和工具** - ...

    Oracle建表空间、用户操作详解-入门基础.pdf

    在Oracle数据库管理中,表空间(Tablespaces)和用户(Users)是两个核心概念,用于组织和管理数据库的数据存储及权限控制。以下是关于这两个主题的详细介绍: **一、表空间(Tablespaces)** 表空间是Oracle...

Global site tag (gtag.js) - Google Analytics