oracle先删后建,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文件代码如下:
{call PROC_DROPIFEXISTS (#{tableName,jdbcType=VARCHAR})}
]]>
create table ${tableName} (id integer,name varchar(20))
]]>
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 map) {
importMapper.dropTable((String)map.get("tableName"));// 调用存储过程删除表,有就删除,没有不做操作
importMapper.createTable(map); //动态建表
}
}
oracle先删后建,oracle 建表之前先删除语句相关推荐
- oracle在原值后增加值,Oracle DBA_SaKin(知识点整理)
SaKin DBA 常用知识总汇 1.STARTUP NOMOUNT,该状态只有在创建数据库时或重建控制文件使用.当以该方式启动时,Oracle只启动实例并不打开数据库中的任何文件,即连控制文件都不打 ...
- oracle pivot函数 后求和,Oracle行转列,pivot函数和unpivot函数
pivot函数:行转列函数: 语法:pivot(任一聚合函数 for 需专列的值所在列名 in (需转为列名的值)): unpivot函数:列转行函数: 语法:unpivot(新增值所在列的列名 fo ...
- Oracle怎么查外键建在哪个表上
怎样查外键建在哪个表上 有时候删除某张表记录的时候,会报错外键约束不能删除. 如果不了解表之间的关系,可以通过以下语句查询到外键是建在哪张表上的: select * from dba_constrai ...
- 創建oracle用戶及表空間,window,linux下創建oracle用戶及表空間 對比 易於學習
1.window下創建oracle用戶及表空間 --創建數據表空間 create tablespace oras_data --表空間的名字 logging datafile 'D:\oracle\ ...
- Oracle drop删表后的数据恢复
!!!芭比Q了啊!! 近期做了一次系统迁移,将测试环境的系统由Windows迁移到Centos上面,先迁应用再迁前端(前后端分离的),安装各种应用巴拉巴拉,最后到迁移数据库了,系统用的是Oracle数 ...
- oracle建库建表基础代码,oracle手工代码建库
oracle手工代码建库 说明,此手工代码建库方法,适用于oracle 10g 单机环境. oracle环境变量 more .bash_profile ORACLE_BASE=/u01/app/ora ...
- oracle恢复drop建的表首次,案例:Oracle dul数据挖掘 没有备份情况下非常规恢复drop删除的数据表...
天萃荷净 通过Oracle dul工具在没有备份情况下进行非常规恢复,找出drop删除的Oracle数据表中的数据进行恢复 dul对被drop对象进行恢复,需要提供两个信息 1.被删除表所属表空间(非 ...
- oracle Database 10g后:闪回表
使用 Oracle Database 10g 中的闪回表特性,可以毫不费力地恢复被意外删除的表 以下是一个不该发生却经常发生的情况:用户删除了一个非常重要的表 - 当然是意外地删除 - 并需要尽快地恢 ...
- Oracle安装完成后如何创建表空间及用户
1.select file_Name from dba_data_files;(查询表空间) 2.create tablespace QUAN datafile '/app/ADMINISTRATOR ...
最新文章
- 德鲁克对管理的十大看法
- Spring Boot 学习系列(02)—使用热部署,提升开发效
- 经典排序算法 - 鸽巢排序Pigeonhole sort
- 吴恩达 coursera AI 专项五第三课(上)总结+作业答案
- PIOLINK负载均衡高校应用
- java 方式配置ssm,关于SSM以及Spring boot中对于Spring MVC配置的问题
- Javascript开发的HTML5游戏的知识产权保护
- js java webservice_js调用webservice中的方法实现思路及代码
- Activiti的流程定义文件解析
- WorkFlow入门Step.3—Adding Procedural Elements-For...
- plaintextedit指定一行一行的高亮显示_RDKit | 基于RDKit的指定原子或键高亮
- ubuntu1604 克隆虚拟机后续:修改用户名、主机名和组名
- 24. 二叉搜索树的后续遍历序列(c++版本)
- 全国计算机等级考试二级cpp试题,全国高校计算机等级考试(二级C)模拟试题全套.doc...
- 库存进销存出入库销售mysql表结构_进销存数据库表结构设计.doc
- mysql死锁的例子_GitHub - yxp199249/mysql-deadlocks: 收集一些常见的 MySQL 死锁案例
- 【IoT】 产品设计:结构设计流程
- idea用JAVA连接mysqlAccess denied for user ‘root‘@‘localhost‘ (using password: YES)错误
- Anaconda Navigator Applications 缺少Notebook等应用
- node - opn库