Using variables in PLSQL SELECT statement

后端 未结 2 666
时光说笑
时光说笑 2020-12-11 20:29

I have a query that queries on ReportStartDate and ReportEndDate so I thought I would use variables in PLSQL. Not sure what I am missing here, but I get an error:

         


        
2条回答
  •  轮回少年
    2020-12-11 21:03

    The question you have to answer is what do you want to do with the data that has been selected?

    Sathya gave you one approach - declare variables in your PL/SQL block and select the columns INTO those variables. Note that this requires that the SELECT statement returns exactly one row - any more or less rows will throw an error. Another way is to declare collection types using the BULK COLLECT option: http://oracletoday.blogspot.com/2005/11/bulk-collect_15.html

    Yet another option is to have the procedure return a cursor. This is useful in the case where the calling code expects to be able to fetch the data that the procedure has selected:

    PROCEDURE GET_MY_REPORT( varReportStartDate in date,  varReportEndDate in date, cur out sys_refcursor) is
    begin
       OPEN cur FOR SELECT * 
         FROM CDR.MSRS_E_INADVCH
         WHERE 1=1
         AND ReportStartDate = varReportStartDate 
         AND ReportEndDate = varReportEndDate;
    END GET_MY_REPORT;
    

提交回复
热议问题