在包体里写了一个过程,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. 理解Flow静态类型检查

    一.为什么在JavaScript中使用静态类型 了解静态类型的最快方法是将其与动态类型进行对比. 有静态类型参数的语言被称为静态类型语言. 另一方面,有动态类型参数的语言被称为动态类型语言.核心区别是 ...

  2. nginx搭建前端项目web服务器以及利用反向代理调试远程后台接口

    前端同学用nginx搭建自己的web服务器,后台程序专门部署在一台服务器上(我们之前公司就有三套环境,开发/测试/生产),这样做的好处是 1.前端代码基本都是静态文件,重启一次很快,也就几秒钟时间. ...

  3. FreeMarker最简单的例子(1)

    一.通过文件来创建模版对象,并执行插值操作 文件结构为: Test.Java中的代码为: package com.abc; import freemarker.template.Configurati ...

  4. shorthand trick with boolean expressions

    https://stackoverflow.com/questions/2802055/what-does-the-construct-x-x-y-mean --------------------- ...

  5. 【转】Go maps in action

    原文: https://blog.golang.org/go-maps-in-action ------------------------------------------------------ ...

  6. android apktool 基本的安装与使用

    apktool: 1. 安装 http://ibotpeaches.github.io/Apktool/install/ 2. 基本使用 http://ibotpeaches.github.io/Ap ...

  7. 如何使用angularjs实现按钮事件

    <!DOCTYPE html> <html ng-app="myApp"> <head> <title>angularjs-setV ...

  8. 微信小程序自定义分享图片

    自定义分享图片 onShareAppMessage: (res) => { if (res.from === 'button') { console.log("来自页面内转发按钮&qu ...

  9. Windows下如何安装 Composer

    如何安装 Composer Windows下如何安装 Composer 下载 Composer 安装前请务必确保已经正确安装了 PHP.打开命令行窗口并执行 php -v 查看是否正确输出版本号. 打 ...

  10. css zoom与scale区别

    转自:http://www.zhangxinxu.com/wordpress/2015/11/zoom-transform-scale-diff/ 1.zoom的缩放是相对于左上角的:而scale默认 ...