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