oracle中创建表时先判断是否存在表再drop的SQL

Oracle实现drop table if exists 【代码】Oracle实现drop table if exists。 阅读详情

    在写oracle的创建表的SQL时,为了SQL能够反复执行,一般都会在create前面加入drop表的语句,但这样先drop再create的语句在第一次执行时,会报一个不存在该表的错误,查了一下,oracle中没有像sybase那样先判断是否存在表再drop表的语句。

    sybase中用以下语句就能轻松判断是否已经存在了某表:

if exists (select 1             from  sysobjects             where  id = object_id('user_info')             and    type = 'U')    drop table user_info go

或者

if object_id('xxx_view')is not null    drop view xxx_view go

    第一种方式中其中type为对象的类型,如果对象是view,刚type='V'

     而oracle中,并没有这样方便的语句,然而我们难道就不能实现这个功能了吗?

     可以利用存储过程来实现,例如以下语句:

declare num number; begin select count(1) into num from user_tables where table_name='user_info'; if num>0 then execute immediate 'drop table user_info'; end if; execute immediate 'create table user_info (user_code varchar2(10) not null,  user_name varchar2(30), sex    varchar2(1), constraint pk_user_info primary key (user_code))'; end; /

    不过将这样的存储过程与正常的sql放在一起执行时,一定要加最后一行的“/”,以告诉编译器存储过程执行完毕,可以继续执行正常的SQL了,我就犯过这样的错误。

【ArcGIS Pro微课1000例】0067:ArcGIS Pro3.4.2学习版下载及安装教程 【ArcGIS Pro微课1000例】0067:ArcGIS Pro3.4.2学习版网盘下载及安装教程 阅读详情

相关推荐

手把手教你用P-MOS管搭建双电源自动切换电路(含AO3401选型指南)

本文提供了一份基于P-MOS管AO3401构建高可靠双电源自动切换电路的实战指南。文章详细对比了继电器、理想二极管与MOS管方案的优劣,深入解析了AO3401的关键参数选型,并手把手指导了从原理图设计、PCB布局到上电调试的全过程,旨在帮助硬件工程师和创客以极低成本实现无缝、高效的电源冗余方案。

moss5的博客 1234

if exists drop table oracle,if exists table drop table ORACLE 存储过程

CREATE OR REPLACE PROCEDURE DROPEXITSTABS(TAB_NAME_IN IN varchar2) ISv_cnt Number;beginselect count(*)into v_cntfrom user_tableswhere table_name = upper(TAB_NAME_IN);if v_cnt>0 thenexecute immediat...

weixin_32647107的博客 527

AWS 小白书 [1] 全球架构

小白应该知道的 AWS 知识

boshansolo的博客 704

Oracle 的drop table if exists功能

Oracle创建表时,常遇到先删除后创建的情况,而它又没有drop table... if exists语法。为此可以使用user_objects数据字典和动态sql语句实现类似的功能,如下所示:create or replace procedure proc_dropifexists(    p_table in varchar2 ) is    v_count number

东风 2万+

bcftools学习笔记(一)

欢迎关注"生信修炼手册"!本篇主要介绍index, view, query, sort, reheader这五个命令。1. indexindex命令用于对VCF文件建立索...

庐州月光的博客 6011

深入解析.Net中SM2与sm-crypto的跨平台加解密实践

本文深入探讨了在.Net平台与前端sm-crypto库之间实现SM2国密算法跨平台加解密的实践方案。针对对接中常见的密钥格式、密文拼接顺序(C1C3C2与C1C2C3)等核心难点,提供了基于BouncyCastle的完整工具类实现、前后端联调示例及问题排查指南,旨在帮助开发者构建安全、兼容的数据加密通道。

weixin_29322855的博客 370

Oracle 实现类似 drop table if exists 表存在删除的效果

Oracle实现表存在则删除。

liuchao的博客 1371

硬件即代码:用软件工程思维拆解F450无人机装配的模块化设计哲学

本文探讨了如何用软件工程思维重构DJI-F450无人机的模块化设计,将硬件装配提升为可编程系统。通过硬件抽象层、控制系统分层架构和扩展槽位设计模式,展示了无人机装配的模块化哲学,并结合实际案例说明如何优化性能与安全性。

weixin_29294975的博客 386

ORACLE中判断表是否存在再删除表避免报错与MySql和SqlServer的不同

不同数据库中drop a table if it exists的不同:In MySQL it is pretty easy to drop a table if it exists already. In Oracle and Microsoft’s SQL Server it is a little more complicated. Today I want to present you the solutions for these two DBMS’.MySQL:DROP TABLE IF EXIS

nsj820的专栏 2万+

如何学习总线技术

如何学习总线技术 以形象生动的比喻来描绘了总线技术的基本思想,指出了总线的基本分类和总线传输的基本原理,以及在学习过程中应当掌握的最基本的知识,对初学者有起到抛砖引入的作用。 0引言   如果一座只能容一个人来往的独木桥,两端的人都想要过桥,为了不拥挤、阻塞,那我们就得采取有效的办法。比如规定某段时间哪端的人过桥,另一端的人就等着该他过桥的时间段的到来,同时也还可以规定人多时要按先来后到或年

ce123的技术博客 8528

[Unity3D]水族馆游戏教程四

文章目录0.接上篇1.速度控制器2.修改FishAI3.修改后的效果4.总结 0.接上篇 上一篇,实现了鱼AI的随机游动、自动转向,并且学习了如何分析调试过程中遇到的报错。 本篇将继续优化鱼AI。 1.速度控制器 上一篇虽然实现了鱼的随机游动,但是可以看到,鱼在转向的时候,会显得很突然。因此先要解决这个问题。 我们的思路是,让鱼在刚转向的时候,速度由慢到快,等到游动到快要到达目标点的时候,速度减慢...

延澈左的专栏 1039

oracle序列sequence的创建、删除、查询及判断序列是否存在

作为笔记使用1、创建序列:create sequence seq_xx   --创建序列名称increment by 1  --增长幅度start with 1  --初始值maxvalue 9999999999999999;  --最大值2、查询序列:select seq_xx.nextval from dual;--或者select seq_xx.nextval from sys.dual;每...

qq_35287536的博客 4万+

关于海康MVS软件显示速率低与1GB、相机丢包的设置优化

工控机主要应用与视觉检测!相机网线及工控机网口都是千兆的!设置完巨帧数和速度与双工(选择为全双工),显示速度低与1GB,不能够正常工作。C.LA-Properdes-Advanced-将RecerveBuffers更改为2048。E.LAN-属性-电源管理-取消选中允许计算机关闭此设备以保存电源。这种情况均为MVS设置不熟悉,可参照如下设置优化相应端口相机配置。D.局域网-属性-高级-将传输缓冲区更改为20484。B.LAN-属性-高级-将中断记录部分更改为执行。A.关闭采集控制帧速率控制。

米可的博客! 8827

Oracle怎么判断表是否存在并drop?另有ORA-06550错误

(作者:陈玓玏) 一、实现Oracle中判断表是否存在再drop 通常在更新一个表时,全表更新不如直接删除表格再重建来得简单。但是 drop table table_name if exists 这样的写法只在MySQL里能用,在Oracle中会报错。那么Oracle中怎么实现呢?用匿名存储过程。也就是,没有create or replace procedure pro_name这句话...

小白白的博客 8188

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

ORACLE SQL 创建表

1.创建表: 1.1表名和列名: 一定要以字母开头 一定在 1-30 个字符之间 只能包含 A–Z, a–z, 0–9, _, $, 和 # 一定不能和用户定义的其他对象重名 一定不能是Oracle 的保留字 一定要有CREATE TABLE权限 而且需要一定的存储空间 还要指定的,表名,列名,类型,以及大小(也就是尺寸) 1.2创建表有直接可以直接创建表和子查询创建...

kezhenke的博客 2万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

oracle创建表之前判断表是否存在,如果存在则删除已有表

oracle创建表之前判断表是否存在,如果存在则删除已有表 在sqlserver中,有if exit()这样的语句,但是在oracle中却没有。如果直接使用drop table那么如果表不存在会报错,导致后续语句无法运行。因此可以通过一个存储过来来进行判断。 主要是查询all_tables表的...

chengwen1129的博客 1441

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Oracle删除表之前判断表是否存在

在Oracle中若删除一个不存在的表,如 “DROP TABLE tableName”,则会提示:ORA-00942:表或视图不存在若在程序中执行该语句则会报异常,这就需要我们在删除表前先判断该表是否存在,若存在则删除. DECLARE num NUMBER; BEGIN SELECT COUNT(1) INTO num FROM USER_TABLES WHERE T

itmyhome的专栏 1万+

oracle如何查看表的字段是否存在,Oracle删除表、字段之前判断表、字段是否存在...

Oracle删除表、字段之前判断表、字段是否存在在Oracle中若删除一个不存在的表,如 “DROP TABLE tableName”,则会提示:ORA-00942:表或视图不存在若在程序中执行该语句则会报异常,这就需要我们在删除表前先判断该表是否存在,若存在则删除.DECLAREnum NUMBER;BEGINSELECT COUNT(1)INTO numFROM USER_TABLESWHER...

weixin_39897887的博客 1782

Oracle,Mysql,创建表前检查是否存在表

如题,在给现场的一些补丁时,往往会存在不知道现场环境是否存在此表的问题。这时候创建sql脚本的时候,需要先删除表,再创建改造后的新表,但是直接执行会报错,这时候就需要改造成一个现场实施直接复制便可执行的脚本。 Oracle删除表: ①、drop table test1; ②、 1、一种思路是创建存储过程,执行时调用即可。 -- 创建存储过程 create or replace procedure proc_dropifexists(p_table in varchar2) is v_cou.

皮鱼的世界 518

oracle查询表中是否存在某个字段,oracle 查看表是否存在、包含某字段的表、表是否包含字段...

表是否存在:select count(*) from user_tables where table_name = #{tablename}包含某个字段的表select *from user_tab_columnswhere UPPER(column_name)='CREATE_TIME'特定表是否包含字段select *from user_tab_columnswhere UPPER(colum...

weixin_30592681的博客 7982

oracle删除判断是否存在,oracle创建表之前判断表是否存在,如果存在则删除已有表...

Mysql创建表之前判断表是否存在,如果存在则删除已有表DROP TABLE IF EXISTS sys_area;CREATE TABLE sys_area(id varchar(64) NOT NULL COMMENT ‘编号‘,parent_id varchar(64) NOT NULL COMMENT ‘父级编号‘,parent_ids varchar(2000) NOT NULL CO...

weixin_42514627的博客 970

oracle 表 存在,sql - Oracle:如果表存在

sql - Oracle:如果表存在我正在为Oracle数据库编写一些迁移脚本,并且希望Oracle有类似MySQL的DROP结构。具体来说,每当我想在MySQL中删除表时,我都会这样做DROP TABLE IF EXISTS `table_name`;这样,如果表不存在,DROP不会产生错误,脚本可以继续。Oracle是否有类似的机制? 我意识到我可以使用以下查询来检查表是否存在SELECT...

weixin_33236271的博客 786

Oracle创建表 如果存在先删除再创建

--判断表是否存在,如果存在则删除 declare        num   number;  begin        select count(1) into num from all_tables where TABLE_NAME = 'EMP' and OWNER='SCOTT';        if   num=1   then            execute imme

zhuangb1的专栏 3378

PL/SQL-判断一个表是否存在

PL/SQL-判断一个表是否存在 存在时删除重建,不存在时直接创建,执行内容可以根据情况修改。 DECLARE table_ynNUMBER; BEGIN SELECT COUNT (*) INTO table_yn FROM user_tables WHERE table_name = UPPER ('test_table'); ...

whereiwillgo的博客 1384

Oracle数据库建表前,先判断是否表存在,存在不建表,不存在则建表

------创建TABNAME ---------- DECLARE   TOTAL INT := 0; BEGIN   SELECT COUNT(1)     INTO TOTAL     FROM USER_TABLES A    WHERE A.TABLE_NAME = 'TABNAME ';   IF TOTAL > 0 THEN     EXECUTE IMMEDIATE 'DRO...

dhklsl的专栏 1万+
上一篇: SQL中的“&”特殊字符
下一篇: 解决tomcat启动Exception creating UserDatabase异常。
潭溪Debby
博客等级 码龄21年 32粉丝 22原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值