专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Oracle开发

视图带参?解决方案

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
视图带参?
CREATE OR REPLACE VIEW V_DATMT_DNPORT_QE_VLANID
(dnportid, vlanid)
AS
SELECT DISTINCT DNPORT.ID, MIN(DNVLAN.VLANID)
  FROM DNPORT, DNPORT_DNVLAN, DNVLAN, DNDEVICE, DNDEVICETYPE
 WHERE (DNPORT.ID = DNPORT_DNVLAN.DNPORTID)
  AND (DNDEVICE.ID = DNPORT.DNDEVICEID)
  AND (DNDEVICETYPE.ID = DNDEVICE.DNDEVICETYPEID)
  AND (DNVLAN.ID = DNPORT_DNVLAN.DNVLANID)
  AND (DNPORT.ISTEMPLATE = 0)
  AND (DNDEVICE.ISTEMPLATE = 0)
  --AND (DNDEVICETYPE.CATEGORY IN (4, 5)) --4: DSLAM, 5: 路由器
 GROUP BY DNPORT.ID


其中(dnportid, vlanid)这两个参数什么意思啊 去掉了 就报错 说”必须使用列别名表示MIN(DNVLAN.VLANID)表达式“?

------解决方案--------------------
并且为表达式指定一个别名做为视图的字段名,这很好理解
CREATE OR REPLACE VIEW V_DATMT_DNPORT_QE_VLANID
as
SELECT DISTINCT DNPORT.ID, MIN(DNVLAN.VLANID) NEW_VLANID
FROM DNPORT, DNPORT_DNVLAN, DNVLAN, DNDEVICE, DNDEVICETYPE
 WHERE (DNPORT.ID = DNPORT_DNVLAN.DNPORTID)
AND (DNDEVICE.ID = DNPORT.DNDEVICEID)
AND (DNDEVICETYPE.ID = DNDEVICE.DNDEVICETYPEID)
AND (DNVLAN.ID = DNPORT_DNVLAN.DNVLANID)
AND (DNPORT.ISTEMPLATE = 0)
AND (DNDEVICE.ISTEMPLATE = 0)
--AND (DNDEVICETYPE.CATEGORY IN (4, 5)) --4: DSLAM, 5: 路由器
 GROUP BY DNPORT.ID
------解决方案--------------------
CREATE OR REPLACE VIEW V_DATMT_DNPORT_QE_VLANID
(dnportid, vlanid)
为视图提供了字段名dnportid和vlanid
如果去掉(dnportid, vlanid)的话,则字段名从查询结果过取,MIN(DNVLAN.VLANID)不能作为字段名,所以出错。可以使用列别名解决
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: