:P_MDS1 IS NULL OR MSD.SCHEDULE_DESIGNATOR = :P_MDS1
:P_MDS2 IS NULL OR MSD.SCHEDULE_DESIGNATOR = :P_MDS2
:P_MDS3 IS NULL OR MSD.SCHEDULE_DESIGNATOR = :P_MDS3我需要查找MSD.SCHEDULE_DESIGNATOR的某一个或者是多个值,即:有三个输入值,当输入都是空时,就输出全部,当只输入一个时就输出输入的那个值,输入两个就输出两个,输入三个就输出三个值。有谁知道怎么写?
:P_MDS2 IS NULL OR MSD.SCHEDULE_DESIGNATOR = :P_MDS2
:P_MDS3 IS NULL OR MSD.SCHEDULE_DESIGNATOR = :P_MDS3我需要查找MSD.SCHEDULE_DESIGNATOR的某一个或者是多个值,即:有三个输入值,当输入都是空时,就输出全部,当只输入一个时就输出输入的那个值,输入两个就输出两个,输入三个就输出三个值。有谁知道怎么写?
解决方案 »
- ibatis的isEqual下不能有CDATA吗,我这样做老是报错,求高手看看是怎么回事呀
- 连接Oracle9i报ORA-12540:超出内部限制错误!!!
- oracle存储过程对已个字符串的操作问题
- Oracle Open World,嘎嘎!今天去了,还不错!
- 求助拼sql展现想要的结果集
- merge into 的一个奇怪问题
- 触发器中的UPDATE(着急)
- 下载Oracle Objects for OLE
- 不小心删掉了DBA, CONNECT等角色,现在要向用户授予这些角色的时候没有了,怎么办啊?
- 怎样配置thin方法连接数据库!
- PL/SQL一个判断报错问题
- oracle多表级联查询问题
2、在存储过程中条件拼接SQL语句,然后执行,如:
sqlstr := 'select * from test where 1=1'
if P_MDS1 is null then
P_MDS1 :=1 ;
sqlstr := sqlstr || ' and 1=:p_msd1';
else
sqlstr := sqlstr || ' and SCHEDULE_DESIGNATOR=:p_msd1';
end if;
其它类似处理
最后使用动态执行,传入绑定参数
execute immediate sqlstr using p_msd1,p_msd2,p_msd3