通过传递字符串作为条件进行检查的动态查询
这是我的程序:
PROCEDURE SP_SALARYADVANCE_RPT_TEST
(
txtExtraQuery IN STRING,
refcur OUT sys_refcursor )
OPEN refcur FOR
SELECT DISTINCT( SAL.ADVANCENO ), SALARYADVANCEID, SAL.TRANSDATE, SAL.APPROVEDREMARKS, SAL.APPROVEDAMOUNT, SAL.PAYRECAMOUNT, EMP.EMPLOYEENAME, EMP.EMPLOYEECODE
FROM HRM_SALARYADVANCE SAL, HRM_EMPLOYEE EMP, HRM_EMPLOYEEDEPARTMENTS DEPTS
WHERE SAL.EMPLOYEEID = EMP.EMPLOYEEID AND
SAL.EMPLOYEEID = DEPTS.EMPLOYEEID AND
DEPTS.DEPARTMENTID = txtdeptid || txtextraquery;
这里我的问题是我发送AND SAL.STATUS in (1,2,3)
作为参数这1,2,3可能会改变我希望从前端本身传递它。
在排除这个查询的同时,我得到了错误
ORA-01722:无效的号码
没有找到相关结果
已邀请:
1 个回复
距相镭
被放入
。当然,你不能像你那样将它连接到你现有的查询,因为那样你就会将
与
连接起来。这没有任何意义。这就是为什么在与
进行比较时会出现
错误的原因 你想要做的是运行
命令。看看这些链接: http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/executeimmediate_statement.htm http://www.dba-oracle.com/t_execute_dynamic_pl_sql_procedures.htm 但另一方面,我认为你应该重新设计你的程序。这看起来不太好。为什么不将
或其他
传递给您的手术?