大家好!我有个问题想问一下`~
现在有一个存储过程(reports),里面有两个日期参数(Mindate,Maxdate).
问题是,我想实现不同界面的条件传到reports中,返回不同的结果.
例如:
情况是
一号界面:minyear 2009,minmonth 01;maxyear 2009,maxmonth 05     4个参数  
二号界面:mindate 2009-01-01,maxdate 2009-05-01                 2个参数
以上两个界面的参数分别传入同一个存储过程中,要求得到各自需要的内容!!
(也就是说当使用一号界面时,存储过程应传出2009年1月 至 2009年5月的数据
 当使用二号界面时,存储过程应传出2009-01-01 至 2009-05-01 之间的数据
)reports(存储过程)
Mindate 参数
Maxdate 参数
select sysdate from dual
where sysdate?????? 到了这里就不会了!

解决方案 »

  1.   

    sysdate直接作为变量使用,不需要select sysdate from dual 这么麻烦
      

  2.   

    create or replace procedure reports(
       mindate in varchar2,
       maxdate in varchar2,
       minmonth in varchar2 default '00',
       maxmonth in varchar2 default '00')
    as   根据最后两个参数的值来判定输出哪种结果
      

  3.   

    简单的,可以设置一个调用类型参数,因为不知道你的具体逻辑,如下。
    Create or Replace Procedure Reports(MinDate date,
                                        MaxDate date,
                                        Tag     int);
    Tag=1表示从1号界面传入时间,当然要把minyear,minmonth,maxyear,maxmonth格式后传入;
    Tag=2表示从2号界面传入时间。
      

  4.   

    通过增加一个TAG的参数来判断就OK!同楼上的一样:
    简单的,可以设置一个调用类型参数,因为不知道你的具体逻辑,如下。 
    SQL codeCreate or Replace Procedure Reports(MinDate date,
                                        MaxDate date,
                                        Tag     int);Tag=1表示从1号界面传入时间,当然要把minyear,minmonth,maxyear,maxmonth格式后传入; 
    Tag=2表示从2号界面传入时间。