我为scott.emp表创建了一个视图对象 我添加了一个transient属性,然后将默认值更改为SQL并编写如下语句:
从emp中选择max(nvl(sal,0)),其中deptno = view.deptno
我的问题是:如何将view.deptno作为参数传递给sql语句?
运行页面,我遇到了错误。
ORA-00904:" EMP_VO"。" DEPTNO":无效标识符
答案 0 :(得分:1)
我通过前一个答案的灵感解决了这个问题,因为我在默认值的sql字段中使用Entity属性编写了以下子句,因此它可以工作。
select max(nvl(sal, 0)) from emp where deptno = Emp_EO.DEPTNO
在我的第一篇文章中,我在where子句中使用了View对象属性,但是这会抛出错误ORA-00904。
where子句中的条件值必须是实体属性而不是视图属性。
Emp_EO.DEPTNO
答案 1 :(得分:0)
如果您检查VO的查询,它应该类似于:
SELECT Emp.EMPNO, Emp.ENAME, Emp.JOB, Emp.MGR, Emp.HIREDATE, Emp.SAL, Emp.COMM, 的 Emp.DEPTNO 下, (从emp中选择max(nvl(sal,0)),其中deptno = Emp.DEPTNO ) 来自EMP Emp