PL/SQL窗口可执行,而存储过程内执行就报错

最近测试部遇到环境的问题,在我们开发这边开发,运行好的程序,到了测试部那里死活运行不过。应他们dba要求,过去检查。程序段如下:

我用vsql变量将执行的动态sql打印查看如下:

insert into tb_bil_acct_his_562
  (acct_id,
   acct_name,
   acct_nbr_97,
   cust_id,
   pay_method,
   branch_id,
   bank_acct,
   addr_id,
   crt_date,
   eff_date,
   exp_date,
   mod_date,
   eff_state,
   latn_id,
   addr_desc,
   post_code,
   mailing_flag,
   bank_acct_name,
   post_target_addr,
   empee_id,
   exch_id,
   month_id,
   serv_id,
   OPER_TYPE_ID,
   ACTION_DATE,
   ACTION_TYPE,
   HIS_ID,
   HAND_FLAG)
  select a.acct_id,
         a.acct_name,
         a.acct_nbr_97,
         a.cust_id,
         a.pay_method,
         a.branch_id,
         a.bank_acct,
         a.addr_id,
         a.crt_date,
         a.eff_date,
         a.exp_date,
         a.mod_date,
         a.eff_state,
         a.latn_id,
         a.addr_desc,
         a.post_code,
         a.mailing_flag,
         a.bank_acct_name,
         a.post_target_addr,
         a.empee_id,
         a.exch_id,
         a.month_id,
         a.serv_id,
         28,
         sysdate,
         1,
         seq_bil_acct_his_hisid_566.nextval,
         0
    from tb_bil_acct_566 a
   where a.acct_id = 5021006 and a.serv_id is null

该段sql在单独的sql窗口可以顺利执行,但存储过程一执行就报ora-00942 table or view doesn't exist

 

开始纳闷了很久,后来查资料得知如果用户有dba角色,角色里包含的权限在存储过程里不会被继承;所以又单独对tb_bil_acct_566 ,seq_bil_acct_his_hisid_566.nextval等作了显式赋权,问题得以解决。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值