日期:2014-05-17  浏览次数:21433 次

oracle 存储过程 open游标提示权限不足
请教各位大神们,我在存储过程中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;


求大神给个问题所在,在线等

------解决方案--------------------
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权限呢?试试单独执行这语句看行不行?
我的异常网推荐解决方案:oracle存储过程,http://www.aiyiweb.com/oracle-develop/177537.html