请教各位大神们,我在存储过程中open哟个游标时报错,提示权限不足;
存储过程本身编译没问题,但是在进行测试的时候就出错;
报错代码如下 IF Str_药品取价方式 = '3' THEN
        OPEN cur_库存明细 FOR   ----报错行          SELECT 科室编码,
                 项目编码,
                 nvl(门诊价, 0) AS 单价,
                 nvl(大单位门诊价, 0) AS 大单价,
                 SUM(nvl(数量, 0)) AS 总库存,
                 SUM(nvl(占用数量, 0)) AS 占用数量,
                 SUM(nvl(数量, 0)) - SUM(nvl(占用数量, 0)) AS 可用数量
            FROM 药房药库_库存数量
           WHERE 机构编码 = Str_机构编码
             AND (数量 > 0 OR months_between(sysdate, 入库时间) <= 6)
             AND 有效状态 = '有效'
           GROUP BY 科室编码, 项目编码, 门诊价, 大单位门诊价;
      END IF;
求大神给个问题所在,在线等

解决方案 »

  1.   

    SELECT 科室编码,
                     项目编码,
                     nvl(门诊价, 0) AS 单价,
                     nvl(大单位门诊价, 0) AS 大单价,
                     SUM(nvl(数量, 0)) AS 总库存,
                     SUM(nvl(占用数量, 0)) AS 占用数量,
                     SUM(nvl(数量, 0)) - SUM(nvl(占用数量, 0)) AS 可用数量
                FROM 药房药库_库存数量
               WHERE 机构编码 = Str_机构编码
                 AND (数量 > 0 OR months_between(sysdate, 入库时间) <= 6)
                 AND 有效状态 = '有效'
               GROUP BY 科室编码, 项目编码, 门诊价, 大单位门诊价;
    会不会没有对药房药库_库存数量表的select权限呢?试试单独执行这语句看行不行?
      

  2.   

    现在在plsql中已经不报错了,但在代码中调用时还是提示权限不足,有没有高手指导下
      

  3.   

    grant select any table to 存储过程所属用户