在存储过程中使用表

时间:2012-02-02 11:43:32

标签: oracle stored-procedures plsql oracle11g

我有以下存储过程。我希望case when显示某些表中定义的某些值的结果。该表中的行数不确定。如何在case when循环中使用while来为我提供不同条件的结果。这些条件在表格中定义。我尝试了以下但是出现了错误:

SELECT COUNT(id) AS CNT, AGE_RANGE
FROM
(
  SELECT
   ID,
  (
    (DECLARE pTemp ref_cursor for
    Select * form age_range;

    OPEN pTemp
      FETCH NEXT FROM pTemp into getRange
        While (FETCH_STATUS = 0)
      select rang
      FETCH NEXT FROM pTemp into getRange )
      fn_get_split_values(getRange , min, max)
     case 


      WHEN payer_age >= min AND payer_age <=max THEN 'mini-maxi'
      ELSE 'NO CATEGORY'
      END AS AGE_RANGE

   )
  from REMIT_WORK_QUEUE
  )

1 个答案:

答案 0 :(得分:0)

我相信您的问题是您在count()语句中使用了SELECT,但是您并未指定GROUP BY来允许计数合并{{1} }列在一起(如果有意义)。尝试将此行添加到末尾:

age_range