博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle 建表之前先删除语句
阅读量:6927 次
发布时间:2019-06-27

本文共 1378 字,大约阅读时间需要 4 分钟。

hot3.png

首先,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文件代码如下:

 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); //动态建表 }}

 

转载于:https://my.oschina.net/HuifengWang/blog/232980

你可能感兴趣的文章
斯坦福大学科研软件
查看>>
不开辟用于交换数据的临时空间,如何完成字符串的逆序
查看>>
分析网站配色的Firefox插件[前端工具]
查看>>
解决来QQ消息后歌曲音量降低问题
查看>>
C++类和对象
查看>>
editplus清除历史记录
查看>>
遇见CSS3滤镜
查看>>
更加安全的存取账户密码
查看>>
(android 实战总结)android第三方组件实现总结
查看>>
HTML5浏览器测试网站汇总
查看>>
vim Sets [转]
查看>>
PrimeFaces 3.0发布:面向JSF2的Ajax、移动与IE 9组件
查看>>
使用 Spring 2.5 基于注解驱动的 Spring MVC
查看>>
java Final类和方法(翻译自Java Tutorials)
查看>>
(转)关于List中FindAll用法的一些简单示例
查看>>
RESTful测试工具-RESTClient
查看>>
linux下如何获取每个线程的CPU占用率
查看>>
maven3 手动安装本地jar到仓库
查看>>
spring.hibernate设置参数的位置问题
查看>>
jmeter上传视频图片附件
查看>>