函数结果作为判断条件-错误ORA-00904,invalid identifier

junon 2010-12-03 01:40:27


SELECT MATNOCNAME,MOD(to_number(substr(b.matnocid,3)),10) matc,b.matnocid,
a.viewno ,a.matname ,a.quantity ,a.level1 level2,a.pviewno ,GETMATLINEBYMATID1(a.MATID,'生产')
mLuxian, GETMATLINEBYMATID1(a.MATID,'包装') ZLuxian
from
qd2_xqpdmdataparsexuqiunew a ,
gjy_icmatno_matname b ,
gjy_icmatnocategory c where
instr(ZLuxian,decode(b.matname,'',ZLuxian,b.matname) )>0 AND
instr(mLuxian,decode(b.matno,'',mLuxian,b.matno) )>0
AND B.MATNOCID=C.MATNOCID ORDER BY MATNOCNAME ,A.viewno

执行的时候返回

ORA-00904: "MLUXIAN" invalid identifier


我把mLuxian设置为大写也不行。mLuxian返回的是一个varchar2,可能为空


望各位大侠解惑!谢谢
...全文
602 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
junon 2010-12-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhuomingwang 的回复:]

引用 3 楼 junon 的回复:
不知道Oracle自己会优化不
放心,它不会那么笨的
[/Quote]
有道理
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 junon 的回复:]
不知道Oracle自己会优化不
[/Quote]放心,它不会那么笨的
junon 2010-12-03
  • 打赏
  • 举报
回复
不知道Oracle自己会优化不
junon 2010-12-03
  • 打赏
  • 举报
回复
那这样子性能不是大打折扣
相同的东西被执行了三次啊
  • 打赏
  • 举报
回复

SELECT MATNOCNAME,MOD(to_number(substr(b.matnocid,3)),10) matc,b.matnocid,
a.viewno ,a.matname ,a.quantity ,a.level1 level2,a.pviewno ,GETMATLINEBYMATID1(a.MATID,'生产')
mLuxian, GETMATLINEBYMATID1(a.MATID,'包装') ZLuxian
from
qd2_xqpdmdataparsexuqiunew a ,
gjy_icmatno_matname b ,
gjy_icmatnocategory c
where
instr(GETMATLINEBYMATID1(a.MATID,'生产'),decode(b.matname,'',GETMATLINEBYMATID1(a.MATID,'生产'),b.matname) )>0 AND
instr(GETMATLINEBYMATID1(a.MATID,'包装'),decode(b.matno,'',GETMATLINEBYMATID1(a.MATID,'包装'),b.matno) )>0
--不允许用别名
AND B.MATNOCID=C.MATNOCID
ORDER BY MATNOCNAME ,A.viewno

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧