ORA-00933错误求助:Oracle Cloud创建视图SQL命令未正确终止
ORA-00933错误排查与SQL修正
- 错误原因很明确:你在引用表的时候格式写错了,把列名sid当成表名来拼接了。Oracle里引用模式下的表,正确格式是
模式名.表名 别名,而非模式名.表名.列名 别名。- 原SQL里的
ADMIN.enrollments_dim.sid d是错误写法,实际enrollments_dim是表,sid是该表的列,应该写成ADMIN.enrollments_dim d - 同理,
ADMIN.enrollments_facts.sid f也不对,要改成ADMIN.enrollments_facts f
- 原SQL里的
- 修正后的完整SQL:
create view yss_enrollments as select d.sid, d.coll_code, d.citizenship, f.term_code, f.sfrstcr_ptrm_code, f.sid as f_sid, -- 给重复的sid加别名,避免视图里出现同名列导致后续使用歧义 f.scbcrse_subj_code, f.scbcrse_crse_numb, f.CRN, f.scbcrse_title, f.credit from ADMIN.enrollments_dim d, ADMIN.enrollments_facts f where d.sid = f.sid ;
额外提醒:原SQL的select列表同时包含d.sid和f.sid,虽然语法上能通过,但视图会生成两个同名列,后续查询视图时很容易出问题,建议像上面那样给其中一个列加别名区分。
内容的提问来源于stack exchange,提问作者RTC
相关产品推荐
相关产品推荐

