PLS-00157: AUTHID only allowed on schema-level programs解决办法 包体的过程使用调用者权限方法
在包体里写了一个过程,test执行时报错,但是如果把该过程单独拿出来创建一个,就能顺利执行。
在没加上调用者权 authid current_user之前,报错如下
ORA-01031: insufficient privileges。ORA-06512: at "RT_ANN_ODS.ODS_EI_WDNEW", line 1720
查了01031,发现是缺少权限,那么问题就来了,缺少什么权限?
过程能编译完成,只是测试时候报错,那么就是缺少调用者权限了。
锁定了这个问题,就输入调用者权限即可。
在单一的过程中,调用者权限是这样用的:
create or replace procedure p_test
2 Authid Current_User ----写在过程名称之后,is之前
3 is
4 begin
5 execute immediate 'create table creat_table(id number)';
6 end;
7 /
于是在包体里的过程名称后边加上Authid
Current_User ,编译,报错如下:
PLS-00157:  
AUTHID only allowed on schema-level programs
这句话的意思是说,AUTHID只能用字啊顶级的项目,也就是在包里使用才能生效。
查了下错误原因 An AUTHID
clause was specified for a subprogram inside a package or type. These clauses
are only supported for top-level stored procedures, packages, and types.
大致意思就是authid只能用在顶级的存储过程、包、类型上,不能用在包或类型的子程序上。
在包上加入authid,执行正常了。
create or replace package p_test
authid current_user is
……
到此,问题解决。
PLS-00157: AUTHID only allowed on schema-level programs解决办法 包体的过程使用调用者权限方法的更多相关文章
- Spring Boot连接MySQL长时间不连接后报错`com.mysql.cj.core.exceptions.ConnectionIsClosedException: No operations allowed after connection closed.`的解决办法
		报错:com.mysql.cj.core.exceptions.ConnectionIsClosedException: No operations allowed after connection ... 
- mvn打包spring工程成jar时报Unable to locate Spring NamespaceHandler for XML schema namespace错误解决办法
		有一个小工程,使用了spring,在使用maven的assembly打包成独立可执行的jar包后,在执行时报如下错误:Configuration problem: Unable to locate S ... 
- mac 环境下mysql 不能删除schema问题的解决办法
		首先说明下问题环境,我是在mac机器上安装的mysql+workbench. 在删除一个数据库的时候,出现error dropping database cant rmdir ./test 的问题. ... 
- Java compiler level does not match the version of the installed Java project facet解决办法
		意思就是project facet 和 java compiler level 不一致 解决办法: 修改project facet 方法一: 选中工程,右键 Property -> Projec ... 
- '<>' operator is not allowed for source level below 1.7
		报错:'<>' operator is not allowed for source level below 1.7 这是eclipse的编译环境与项目的要求不对应造成的,这个错误一般是导 ... 
- Eclipse   '<>' operator is not allowed for source level below 1.7
		'<>' operator is not allowed for source level below 1.7 解决方法: 
- eclipse bug之'<>'operator is not allowed for source level below 1.7
		eclipse中导入工程,报这个错'<>'operator is not allowed for source level below 1.7,把jdk改成1.7后,提示Android r ... 
- Android requires compiler compliance level 5.0 or 6.0. Found '1.4' instead的解决办法
		今天在导入工程进Eclipse的时候竟然出错了,控制台输出的是: [2013-02-04 22:17:13 - takepicture] Android requires compiler compl ... 
- PHP内存溢出Allowed memory size of 解决办法
		PHP内存溢出Allowed memory size of 解决办法 博客分类: php ============================Allowed memory size of x ... 
随机推荐
- 如何解决weblogic server启动中在IIOP后运行缓慢
			WebLogic Server在Linux环境中,有时因为linux OS的安全包没有安装,导致weblogic server 在启动的时候会在长时间的停留在 <2/07/2009 08:54: ... 
- iOS:关于UIView切角的两种实现方式
			转载自:http://www.jianshu.com/p/451b7fa94e2a 第一种: 我想你一见到代码,就瞬间有吐的冲动,最常用的一种方式... UIButton *button = [[UI ... 
- js清空子元素,创建新的子元素
			清空子元素 $('#region').empty(); 添加子元素 var regions = document.getElementById('region'); regions.appendChi ... 
- 职场二年级转型C++的困惑
			[来信] 老师.你好.看了你的博客和採訪.不由主自地给你发私信,感觉你能解答我的问题. 学生90后,2012年毕业于某不知名院校.两年工作经验(第一年C#,第二年java,直到如今),一直想转型C++ ... 
- Lina Group
			var query = from ll in proListRequestList group ll by new {ll.pro_id} into g select new ProListReque ... 
- java中==与equal()的区别
			==和equal()都是用来判断两个变量是否相等的. (1)如果两个变量是基本类型变量,且都是数值型的(不一定数据类型相同),只要是值相同,将返回true; (2)如果两个变量是引用型变量,只有它们指 ... 
- 算法笔记_113:算法集训之代码填空题集一(Java)
			目录 1 报数游戏 2 不连续处断开 3 猜数字游戏 4 串的反转 5 串中找数字 6 递归连续数 7 复制网站内容 8 股票的风险 9 基因牛的繁殖 10 括号的匹配 1 报数游戏 有n个孩子 ... 
- Java 中equals和==差别
			java中的数据类型,可分为两类: 1.基本数据类型.也称原始数据类型.byte,short,char,int,long,float,double,boolean 他们之间的比較,应用双等号( ... 
- mongodb进阶三之mongodb管理
			http://blog.csdn.net/stronglyh/article/details/46827141 平时的开发环境win比較多啊,但生产环境要放到unix环境上 一:命令 安装就不少了,网 ... 
- Github 入门基本操作
			翻译自:https://guides.github.com/activities/hello-world/ 文章概述: 什么是GitHub? 创建一个存储库 创建一个分支 做出承诺 打开拉请求 合并拉 ... 
