首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

这种语法在sqlserver2000中不报错,哪位高手试一下在oracle中是不是会报错呀

2012-03-29 
这种语法在sqlserver2000中不报错,谁试一下在oracle中是不是会报错呀.--测试createtablea(a1int,a2int)cre

这种语法在sqlserver2000中不报错,谁试一下在oracle中是不是会报错呀.
--测试
create   table   a
(
a1   int,
a2   int
)

create   table   b
(
b1   int,
b2   int
)

insert   into   a   select   1,11
insert   into   a   select   2,12

insert   into   b   select   1,31
insert   into   b   select   3,32

--这样写竟然没有错误提示!!!
select   *   from   a
where   a1   not   in   (select   a1   from   b)

--这样写竟然没有错误提示!!!

select   *   from   #a
where   a1   =   (select   top   1   a1   from   #b)

为什么呢?

[解决办法]
没有top
[解决办法]
insert into a select 1,11
改成 insert into a select 1,11 from dual

select * from #a
where a1 = (select top 1 a1 from #b)
改成
select * from #a
where a1 = (select a1 from #b where rownum = 1)
[解决办法]
没有#表,没有top
[解决办法]
肯定报错.
[解决办法]
ztoracle中临时表

1) ON COMMIT DELETE ROWS 定义了建立事务级临时表的方法.
CREATE GLOBAL TEMPORARY TABLE admin_work_area
(startdate DATE,
enddate DATE,
class CHAR(20))
ON COMMIT DELETE ROWS;

2)ON COMMIT PRESERVE ROWS 定义了创建会话级临时表的方法.
CREATE GLOBAL TEMPORARY TABLE admin_work_area
(startdate DATE,
enddate DATE,
class CHAR(20))
ON COMMIT PRESERVE ROWS;

热点排行