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

标签 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:“退出”: 无效标识符结果中删除条目。这对我来说似乎很奇怪。请告诉我出了什么问题。谢谢 。

最佳答案

Entry 是 Oracle 中的保留字:http://docs.oracle.com/cd/B19306_01/em.102/b40103/app_oracle_reserved_words.htm 。您必须用双引号将其转义:

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

关于sql - 联合查询不起作用,导致 ORA-00904 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9255857/

相关文章:

sql - UNION 查询按其组件单独排序

sql - Postgres : Get owner of all schemas

php - sql php函数中的插入查询

php - 加入 MySql 表和 SUM

mysql - 使用 2 个表中的字段对 UNION 进行排序

mysql - 我正在尝试连接 4 个表,其中 3 个表有自己的索引表,与第一个表共享

mysql - 为什么 SO 上的人更喜欢 CASE WHEN 而不是其他选择?

mysql - SQL 选择 : Create a column that counts how many sub_categories begin with specific letter

sql - 如何使用 Snowflake 获得累积产品?

MySQL UNION SELECT 在几列上查找 MAX 中的 MAX