sek*_*i92 0 oracle oracle11g create-view
如何使用Oracle上的左连接创建视图?
我可以使用此语句创建连接表
select * from concert_copy c left join event_copy e on c.concert_id=e.concert_id;
Run Code Online (Sandbox Code Playgroud)
但是当我使用这个语句创建视图时给了我错误"ORA-00957:重复列名"
create view concert_event as select * from concert_copy c left join event_copy e on c.concert_id=e.concert_id;
Run Code Online (Sandbox Code Playgroud)
至少该concert_id列出现在两个表中.SELECT *将导致视图具有2个具有相同名称的列.解决方案:至少为其中一个表明确指定字段
create view concert_event as
select c.*, e.eventname, ...
from
concert_copy c
left join event_copy e
on c.concert_id = e.concert_id;
Run Code Online (Sandbox Code Playgroud)
如果存在其他重复名称,请使用别名.例如,如果两个表都有一列name
select c.*, e.name as eventname, ...
Run Code Online (Sandbox Code Playgroud)
注意:如果SELECT直接调用,Oracle会自动为重复的列和表达式创建通用名称,但在视图中,要求所有列名称都可以从声明中看到,因为它们与所选列的名称匹配,或者因为给出了别名.
| 归档时间: |
|
| 查看次数: |
918 次 |
| 最近记录: |