CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Oracle >  开发

oracle中这句话怎么写?

楼主masse(当午 http://blog.sina.com.cn/xukf)2005-03-02 13:42:18 在 Oracle / 开发 提问

判断table   temp是否存在,如果存在则drop掉。  
  我只知道在mysql中:DROP   TABLE   IF   EXISTS   temp  
  在mssql中:IF   OBJECT_ID('dbo.temp')   IS   NOT   NULL   DROP   TABLE   dbo.temp  
   
  请问在oracle,db2,sybase中分别怎么写? 问题点数:30、回复次数:12Top

1 楼fuxia(双子星)回复于 2005-03-02 13:44:33 得分 1

先查询是否存在,再删除,分2步Top

2 楼feng1959(血踪万里)回复于 2005-03-02 13:48:48 得分 1

select   *   from   tab  
  where   tname='table   temp'  
  判断是否有值Top

3 楼masse(当午 http://blog.sina.com.cn/xukf)回复于 2005-03-02 14:07:48 得分 0

fuxia(mike)   :  
  原理谁都懂,写出具体的语句好吗?  
   
    feng1959(血踪万里)    
  我要的是删除掉一个table的语句,  
  能给个能执行的吗?Top

4 楼sweetlxp(ping)回复于 2005-03-02 14:30:19 得分 4

写一个简单的存储过程  
  create   or   replace   procedure   test1   is  
        ls_tab_name   varchar2(20);  
  bdgin  
        select   tname   into   ls_tab_name   from   tab   where   tname='TEST'  
        if   ls_tab_name   is   not   null   then  
              drop   table   test;  
        end   if;  
  end   test1;Top

5 楼bad_love(东子)回复于 2005-03-02 15:50:07 得分 4

写存储过程吧:  
  DECLARE  
          v_name   user_tables.table_name%type;  
  begin  
          select   table_name   into   v_name   from   user_tables   where   table_name   =   'test';  
          if   v_name   is   not   null   then  
                  execute   immediate   'drop   table   t1';  
          end   if;  
  exception  
    WHEN   NO_DATA_FOUND   then  
      dbms_output.put_line('不存在此表');  
  end;Top

6 楼fingerfox(狐狸【人不要脸,天下无敌】)回复于 2005-03-02 15:56:11 得分 4

declare   v_count   integer;  
  begin  
  Select   Count(*)   into   v_Count   from   user_Tables   where   Table_Name='temp'  
  if   v_count   >0   then  
      drop   table   temp;  
  end   if;  
  end;Top

7 楼masse(当午 http://blog.sina.com.cn/xukf)回复于 2005-03-03 09:01:55 得分 0

有没有一行语句能实现的?简洁一点的,  
  像我给的例子那样的Top

8 楼lynx(lynx)回复于 2005-03-03 09:42:53 得分 5

没有.Top

9 楼feng1959(血踪万里)回复于 2005-03-03 09:44:44 得分 5

一行!不知道。帮你顶。Top

10 楼lynx(lynx)回复于 2005-03-03 09:48:29 得分 3

不过很奇怪楼主为什么这么执著于表存不存在呢?  
  存在你也是要删,不存在删了也没有问题,Oracle还会特别提示你。Top

11 楼masse(当午 http://blog.sina.com.cn/xukf)回复于 2005-03-03 09:56:33 得分 0

lynx(lynx)  
   
  如果表不存在,系统只是报一个msg,而不是报error导致程序终止的话就没问题  
  我是怕有的数据库突然报错就导致程序终止,  
  比如mysql,如果不加if   exists的话在有的版本上就会有问题,  
  当然,mssql是可以忽略错误的。  
   
  oracle,db2,sybase里面可能又有所不一样,  
  所以为了安全,最好还是先判断一下  
  因为建表过程非常复杂,所以希望比较简洁  
  Top

12 楼shotking(小金)回复于 2005-03-03 10:33:01 得分 3

delphi里面用个try...except把错误屏蔽就行了  
  try  
      //exec   drop   table   sql  
  except  
  end;Top

相关问题

  • 这句话该怎么写
  • 这句话该怎么写
  • 这句话该怎么写
  • 这句话该怎么写?
  • 请问这句话该怎么写
  • 请问这句话该怎么写
  • 请问"<xsl:if test="position()>= 0 and position()<= 4>"这句话怎么写??
  • 这句话在pb中应该怎么写?
  • 如果ComboBox1.text不等于空格,这句话怎么写?
  • VB.NET 中的这句话在C# 中应该怎么写?

关键词

  • 语句
  • oracle
  • null
  • 存在
  • tname
  • drop
  • 判断
  • temp
  • tab
  • ls

得分解答快速导航

  • 帖主:masse
  • fuxia
  • feng1959
  • sweetlxp
  • bad_love
  • fingerfox
  • lynx
  • feng1959
  • lynx
  • shotking

相关链接

  • Oracle类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo