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中怎么查看刚执行的语句???




