将参数传递给VO SQL瞬态属性

时间:2015-08-05 07:58:05

标签: oracle-adf jdeveloper

我为scott.emp表创建了一个视图对象 我添加了一个transient属性,然后将默认值更改为SQL并编写如下语句:

从emp中选择max(nvl(sal,0)),其中deptno = view.deptno

我的问题是:如何将view.deptno作为参数传递给sql语句?

运行页面,我遇到了错误。

ORA-00904:" EMP_VO"。" DEPTNO":无效标识符

2 个答案:

答案 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