oracle 动态sql
2013-06-28 11:52
141 查看
用decode取代where条件的动态sql
select * from xxx where decode(:str,'','1',null,'1',columnname) = decode(:str,'','1',null,'1',:str)
类似,对于group by 等也可以
下面是偶摘的程序中一个pro*c中的语句:
EXEC SQL INSERT INTO setl_result(SETL_SCHM_ID,CYCLE_ID,SETL_OBJ_ID,OPP_OBJ_ID,PFL,FEE)
SELECT :iSETL_SCHM_ID,
:strCYCLE_ID,
decode(:strSETL_OBJ_ID,'$',a.reg_setl_obj_id,:strSETL_OBJ_ID),
decode(:strOPP_OBJ_ID,'$',a.accs_setl_obj_id,:strOPP_OBJ_ID),
sum(a.pfl),
sum(a.fee)
FROM setl_result_detail a
WHERE a.cycle_id = :strCYCLE_ID
AND a.SETL_SCHM_ID = :iSETL_SCHM_ID
GROUP BY decode(:strSETL_OBJ_ID,'$',a.reg_setl_obj_id,:strSETL_OBJ_ID),
decode(:strOPP_OBJ_ID,'$',a.accs_setl_obj_id,:strOPP_OBJ_ID);
select * from xxx where decode(:str,'','1',null,'1',columnname) = decode(:str,'','1',null,'1',:str)
类似,对于group by 等也可以
下面是偶摘的程序中一个pro*c中的语句:
EXEC SQL INSERT INTO setl_result(SETL_SCHM_ID,CYCLE_ID,SETL_OBJ_ID,OPP_OBJ_ID,PFL,FEE)
SELECT :iSETL_SCHM_ID,
:strCYCLE_ID,
decode(:strSETL_OBJ_ID,'$',a.reg_setl_obj_id,:strSETL_OBJ_ID),
decode(:strOPP_OBJ_ID,'$',a.accs_setl_obj_id,:strOPP_OBJ_ID),
sum(a.pfl),
sum(a.fee)
FROM setl_result_detail a
WHERE a.cycle_id = :strCYCLE_ID
AND a.SETL_SCHM_ID = :iSETL_SCHM_ID
GROUP BY decode(:strSETL_OBJ_ID,'$',a.reg_setl_obj_id,:strSETL_OBJ_ID),
decode(:strOPP_OBJ_ID,'$',a.accs_setl_obj_id,:strOPP_OBJ_ID);
相关文章推荐
- 在Oracle中执行动态SQL的几种方法
- 35.Oracle杂记——Oracle常用动态视图v$SQL_PLAN
- Oracle 动态SQL返回单条结果和结果集
- oracle中动态SQL使用详细介绍
- oracle中动态SQL使用详细介绍
- 在Oracle中执行动态SQL的几种方法
- 使用Oracle的动态SQL支持
- oracle 存储过程 动态sql语句
- Oracle 11g Release 1 (11.1) PL/SQL_了解静态和动态 SQL
- Oracle中的动态SQL
- oracle 调用动态存储过程,动态sql
- oracle动态sql语句处理
- oracle中动态SQL的使用
- oracle_动态sql与参数游标
- 36.Oracle杂记——Oracle常用动态视图V$SQL_PLAN_STATISTICS
- Oracle 如何根据动态性能视图来查看某条SQL语句的执行计划
- Oracle动态sql
- ORACLE中使用DBMS_SQL获取动态SQL执行结果中的列名和值
- Oracle基础 动态SQL语句
- 研究Oracle中动态SQL语句太长的问题