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

ORACLE中,根据条件执行相应操作的语句如何写?

楼主whao()2005-06-03 17:33:01 在 Oracle / 开发 提问

IF   表A已存在   THEN  
          SELECT   *   FROM   表A  
  ELSE  
          创建表A  
  END   IF  
  ----------------------  
  以上Oracle语句怎么写啊。各位大侠帮忙了。  
  先谢了!!  
   
  问题点数:20、回复次数:10Top

1 楼zsfww1205(努力学习oracle)回复于 2005-06-03 21:53:43 得分 0

if   exists(  
  select   1   from   all_all_tables   t   where   t.table_name   =   'aaaa')  
  then    
    select   *   from   aaaa    
  else    
  create   table   aaaaTop

2 楼railgunman(堕落男人)回复于 2005-06-04 09:17:58 得分 5

楼上完全错误,那是在ms   sql   server里面的写法,应该为:  
  declare  
      v_count   number;  
  begin  
      select   count(*)   into   v_count  
      from   user_tables  
      where   table_name   =   'AAA';  
      if   v_count   >   0   then  
          select   *   from   aaa;  
      else  
          execute   immediate   'create   table   aaa(a   int)';  
      end   if;  
  end;Top

3 楼whao()回复于 2005-06-04 10:36:30 得分 0

to:   railgunman(堕落男人)  
  oracle中类似于zsfww1205(努力学习oracle)所说的语句存在吗?Top

4 楼whao()回复于 2005-06-04 10:48:17 得分 0

to:   railgunman(堕落男人)  
  语句执行有错误。帮忙再看看。Top

5 楼smin1994(smin1994)回复于 2005-06-06 08:59:33 得分 1

关注  
  Top

6 楼zsfww1205(努力学习oracle)回复于 2005-06-06 09:29:21 得分 2

declare  
      v_count   number;  
  begin  
      select   1   into   v_count   from   all_all_tables   t   where   t.table_name   =   'AAA';  
      if   v_count   >   0   then  
          select   *   from   aaa;  
      else  
          execute   immediate   'create   table   aaa(a   int)';  
      end   if;  
  end;  
  注意搂住的要求是只要存在表就“select   *   from   aaa”,而不是有数据才进行选择  
  Top

7 楼whao()回复于 2005-06-06 15:53:34 得分 0

to:zsfww1205(努力学习oracle)    
  语句执行仍有错误。错误同上。  
   
  表或视图不存在。Top

8 楼whao()回复于 2005-06-09 15:41:58 得分 0

to:zsfww1205(努力学习oracle)    
  再帮忙看看吧。  
  Top

9 楼bzszp(SongZip)回复于 2005-06-09 15:52:07 得分 12

SQL>   declare  
      2     v_sql   varchar2(200);  
      3     v_temp   number;  
      4     begin  
      5     select   max(1)   into   v_temp   from   user_tables   where   table_name='TT';  
      6     if   v_temp   is   null   then  
      7           execute   immediate   'create   table   tt   (col   number)';  
      8     else  
      9           execute   immediate   'select   col   from   tt   where   rownum=1'   into   v_temp;  
    10     end   if;  
    11     dbms_output.put_line(v_temp);  
    12     end;  
    13     /  
   
  PL/SQL   过程已成功完成。  
   
  已用时间:     00:   00:   01.12  
  SQL>   desc   tt;  
    名称                                                                             空?             类型  
    -----------------------------------------   --------   -----------------------  
    COL                                                                                                 NUMBER  
   
  SQL>   insert   into   tt   values   (11);  
   
  已创建   1   行。  
   
  已用时间:     00:   00:   00.50  
   
  已用时间:     00:   00:   00.00  
  SQL>   set   serveroutput   on  
  SQL>   declare  
      2     v_sql   varchar2(200);  
      3     v_temp   number;  
      4     begin  
      5     select   max(1)   into   v_temp   from   user_tables   where   table_name='TT';  
      6     if   v_temp   is   null   then  
      7           execute   immediate   'create   table   tt   (col   number)';  
      8     else  
      9           execute   immediate   'select   col   from   tt   where   rownum=1'   into   v_temp;  
    10     end   if;  
    11     dbms_output.put_line(v_temp);  
    12     end;  
    13     /  
  11  
   
  PL/SQL   过程已成功完成。  
   
  已用时间:     00:   00:   00.00  
  SQL>Top

10 楼whao()回复于 2005-06-11 13:14:19 得分 0

to:bzszp(SongZip)    
   
  当表中无数据时执行时提示有问题。  
   
  不过,你给我提供了思路,深表谢意!!Top

相关问题

  • 操作Oracle执行SQL语句老是出错,高手来看看杂回事?
  • sql语句对ORACLE的操作
  • 请教请教:在Oracle中如何创建作业,让其自动的操作数据库并执行相应的SQL语句。小生谢谢各位了!!!
  • 执行sql语句删除表的数据的操作问题
  • pascle中的readln(variable)语句执行的是什么操作?
  • pascle中的readln(variable)语句执行的是什么操作?
  • 关于操作oracle的一条sql语句问题!!!help!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
  • ORACLE中,程序中如何一次执行多句SQL语句?
  • 如何在oracle存储过程中执行动态sql语句???
  • 在oracle中怎么查看刚执行的语句???

关键词

  • 语句
  • 执行
  • oracle
  • 学习
  • sql
  • zsfww1205
  • tt
  • aaa
  • execute immediate
  • 错误

得分解答快速导航

  • 帖主:whao
  • railgunman
  • smin1994
  • zsfww1205
  • bzszp

相关链接

  • Oracle类图书

广告也精彩

反馈

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