在包体里写了一个过程,test执行时报错,但是如果把该过程单独拿出来创建一个,就能顺利执行。

在没加上调用者权  authid current_user之前,报错如下

ORA-01031: insufficient privilegesORA-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解决办法 包体的过程使用调用者权限方法的更多相关文章

  1. 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 ...

  2. mvn打包spring工程成jar时报Unable to locate Spring NamespaceHandler for XML schema namespace错误解决办法

    有一个小工程,使用了spring,在使用maven的assembly打包成独立可执行的jar包后,在执行时报如下错误:Configuration problem: Unable to locate S ...

  3. mac 环境下mysql 不能删除schema问题的解决办法

    首先说明下问题环境,我是在mac机器上安装的mysql+workbench. 在删除一个数据库的时候,出现error dropping database cant rmdir ./test 的问题. ...

  4. Java compiler level does not match the version of the installed Java project facet解决办法

    意思就是project facet 和 java compiler level 不一致 解决办法: 修改project facet 方法一: 选中工程,右键 Property -> Projec ...

  5. '<>' operator is not allowed for source level below 1.7

    报错:'<>' operator is not allowed for source level below 1.7 这是eclipse的编译环境与项目的要求不对应造成的,这个错误一般是导 ...

  6. Eclipse '<>' operator is not allowed for source level below 1.7

    '<>' operator is not allowed for source level below 1.7 解决方法:

  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 ...

  8. 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 ...

  9. PHP内存溢出Allowed memory size of 解决办法

    PHP内存溢出Allowed memory size of 解决办法 博客分类: php   ============================Allowed memory size of  x ...

随机推荐

  1. ylbtech-LanguageSamples-Indexers_2(索引器)

    ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-Indexers_2(索引器) 1.A,示例(Sample) 返回顶部 Indexers ...

  2. 事务内执行sql修复的简易模板

    -- ============================================= -- Script Template -- ============================= ...

  3. jquery元素节点操作

    jquery元素节点操作 创建节点 var $div = $('<div>'); var $div2 = $('<div>这是一个div元素</div>'); 插入 ...

  4. JavaScript的String对象

    1.创建String对象 Html标签的格式编排方法:可以将String对象的字符串内容输出成对应的html标签. 示例: var str = "JavaScript程序设计"; ...

  5. 《大话操作系统——做坚实的project实践派》(5)

    有人说我不是仅仅会玩X86吗?我如今铁板钉钉的申明:我事实上兼通:ARM.IA-32.IA-32e.AMD64. ​了解MIPS.但没做过MIPS由于确实没有对应的MIPS硬件平台. ​

  6. 让Vs2013 完美支持EF6.1 Code First with Oracle 2015年12月24日更新

    本文是对下文的补充,切勿以为我是全盘复制哦 连接: http://www.cnblogs.com/wlflovenet/p/4187455.html Normal 0 7.8 磅 0 2 false ...

  7. Windows进程通信 -- 共享内存

    享内存的方式原理就是将一份物理内存映射到不同进程各自的虚拟地址空间上,这样每个进程都可以读取同一份数据,从而实现进程通信.因为是通过内存操作实现通信,因此是一种最高效的数据交换方法. 共享内存在 Wi ...

  8. 【Linux】配置JAVA_HOME环境变量

    1. 永久修改,对所有用户有效 # vi /etc/profile //按键盘[Shift + g], 在profile文件最后添加下面的内容: export JAVA_HOME = /home/my ...

  9. JavaScript | JSON基本格式

    ————————————————————————————————————————————————————————— JSON 语法 "use strict"; // 简单值 &qu ...

  10. Intellij idea 快键键

    1.快速进入实现类: Command + Alt+B 2.全局查找: Shift + Shift 3.类继承关系: Ctrl + H 4.在继承层次上跳转则用 Command + B / Comman ...