在TOAD中对Oracle SQL存储过程进行单元测试

时间:2016-11-08 16:29:42

标签: sql oracle toad toad-scripting

我有一个由某人编写的复杂存储过程,我需要了解它的一部分来检查它返回的数据。因此,开始通过在toad中传递一些数据来测试它。这是一个Oracle存储过程。我收到错误:

  

在需要以下其中一项时遇到符号“SELECT”:

     

( - + case mod new not null    

代码:

      declare 
                              cRegion char;
                              cState_Code char;
                              nFY NUMBER;
                              nREPORT_ID NUMBER;
                              nSECTION_ID NUMBER;
                              nSUBSECTION_ID NUMBER;
                              nDISPLAY_NUMBER INTEGER;
                              nQUESTION_NUMBER INTEGER;
                              nQUESTION_PART_NUMBER INTEGER default null;



                              BEGIN

(select QD.FY_ST_QUESTION_DTL_TABLE_ID,qi.display_number,QI.QUESTION_NUMBER,
                                qd.question_part_number
                            from FY_ST_QUESTION_INFO qi,
                                 FY_ST_QUESTION_DETAIL qd
                           where qi.region = '00'
                             and qi.state_code = '05'
                             and qi.fy = '2015'
                             and qi.report_id = '1'
                             and qi.section_id = '2'
                             and qi.subsection_id = '2'
                             and qi.display_number = '23'
                             and qi.QUESTION_NUMBER = '21'

                             and QD.FY_ST_QUESTION_INFO_TABLE_ID = '16613')

                       )fq left outer join
                       ( select distinct FY_ST_QUESTION_DTL_TABLE_ID, AD.ROW_NUMBER
                           from UPLOAD_TEMP_DATA ad
                          where ad.region = '00'
                            and ad.state_code = '05'
                            and ad.fy = '2015'
                            and ad.report_id = '1'
                            and ad.section_id = '2'
                            and ad.subsection_id = '2'
                            and ad.display_number = '23'
                            and ad.QUESTION_NUMBER = '21'
                            and ad.QUESTION_PART_NUMBER = '0'
                       )aq
                     using(FY_ST_QUESTION_DTL_TABLE_ID)

由于

1 个答案:

答案 0 :(得分:0)

我解决了问题,现在我知道自己的错误了。我在上面的select子句中将其附加到复杂代码之前计算了结果。现在,我知道结果。