联合查询不起作用,导致ORA-00904错误

时间:2012-02-13 05:07:53

标签: sql union

我创建了两个表,uview和vview。

CREATE TABLE  Uview
(   USERID CHAR(6) NOT NULL ENABLE, 
pageID varCHAR2(50) NOT NULL ENABLE, 
VISIT_TIME TIMESTAMP (6) NOT NULL ENABLE, 
view_TIME TIMESTAMP (6) NOT NULL ENABLE, 
fview_TIME TIMESTAMP (6) NOT NULL ENABLE, 
entry varCHAR2(50) NOT NULL ENABLE, 
exit varCHAR2(50) NOT NULL ENABLE, 
 PRIMARY KEY (USERID, VISIT_TIME,viewtime) ENABLE )


CREATE TABLE  vview
 (  VISITORID CHAR(8) NOT NULL ENABLE, 
    pageID varCHAR2(50) NOT NULL ENABLE, 
VISIT_TIME TIMESTAMP (6) NOT NULL ENABLE, 
view_TIME TIMESTAMP (6) NOT NULL ENABLE, 
fview_TIME TIMESTAMP (6) NOT NULL ENABLE, 
entry varCHAR2(50) NOT NULL ENABLE, 
exit varCHAR2(50) NOT NULL ENABLE, 
 PRIMARY KEY (visitorID, VISIT_TIME,view_time) ENABLE )

现在我想用union来查询这两个表。

select userID,pageID,visit_time,view_time,fview_time,exit,entry
    from uview 
union
select visitorid,pageID,visit_time,view_time,fview_time,exit,entry
    from vview;

但是,ORA-00904存在错误:“ENTRY”:此标识符无效。 即使我从查询ORA-00904中删除条目:“退出”:无效的标识符结果也是如此。这对我来说似乎很奇怪。请告诉我有什么问题。谢谢 。

1 个答案:

答案 0 :(得分:2)

Entry是Oracle中的保留字:http://docs.oracle.com/cd/B19306_01/em.102/b40103/app_oracle_reserved_words.htm。你必须用双引号来逃避它:

SELECT .... , "entry"
FROM uview
etc...