存储过程中遇到ora-00942表或视图不存在,存储过程ora-00942
解决方法:
grant select, insert, update, delete on bookmarks.* to bm_user@localhost identified by 'password'
授权语句:意思是把表 XXX select, insert, update, delete权限授给bm_user表
Sql> grant select ,delete on sys.fga_log$ to system;
原因:
后来查资料得知如果用户有dba角色,角色里包含的权限在存储过程里不会被继承;所以又单独对tb_bil_acct_566 ,seq_bil_acct_his_hisid_566.nextval等作了显式赋权,问题得以解决。
http://blog.csdn.net/zhangtian0913/archive/2009/03/09/3973484.aspx
grant 授权的授权结果从哪里看到?
grant select ,delete on sys.fga_log$ to system;--改的是哪个基表? --dba_tab_privs
select * from dba_tab_privs where grantee='SYSTEM' AND TABLE_NAME='FGA_LOG$'[@more@]grant select ,delete on sys.fga_log$ to system;--改的是哪个基表? --dba_tab_privs
select * from dba_tab_privs where grantee='SYSTEM' AND TABLE_NAME='FGA_LOG$
首先确保那些报表或视图不存在的表or视图究竟存不存在,如果不存在,那就是导的有问题了,重新导入即可。
如果确实有表,那就先试一下在PLSQL中重新编译一下存储过程,看下可不可以?
一般来说,如果是表和存储过程是属于一个USER的话,这样就可以解决了,
先试下吧,如果不行的话,那就有可能是分别属于不同的用户了
你可以查一下SELECT * FROM DBA_ORJECTS where object_name = '表名或存储过程名' 来查询一下,是否属于同一个USER,希望能对你有所帮助 。
我没有仔细看,看到这我就晕了:
FROM CC_STAND_BOM
WHERE ITEM =ITEM
AND CODE=CODE
AND bom_ver=bom_ver
and company=COMPANY
GROUP BY ITEM,ITEM_D,ITEM_CLASS,ITEM_D_CLASS;
请问:
ITEM =ITEM
CODE=CODE
company=COMPANY
这些哪个是变量,哪个是字段名啊?
变量名和字段名不要一致,变量名可以加p_xxx,与字段名区别开来
比如:
ITEM =p_ITEM
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。