编写了一个存储过程,手动执行的时候没有问题,但创建job调用存储过程的时候报错:ORA-01031: insufficient privileges。
在网上查了查,说是没有权限创建表,要显示授权,在创建存储过程的时候加上:Authid Current_User,修改后的存储过程结构如下:
CREATE OR REPLACE PROCEDURE P_RES_F_UD_FLOW(TIME_DAY IN NUMBER) Authid Current_User AS
ERR_DESC VARCHAR2(32767);
V_SQL_ERROR VARCHAR2(32767);
BEGIN
EXECUTE IMMEDIATE 'CREATE TABLE T_RES_F_UD_FLOW_TMP_1
(
COVER_NAME VARCHAR2(200) not null,
TIME_TYPE INTEGER,
TIME_DAY NUMBER(8),
TIME_HOUR NUMBER(2),
GPRS_FLOW FLOAT,
TD_FLOW FLOAT,
WLAN_FLOW FLOAT
)';
END P_RES_F_UD_FLOW;
问题解决。
总结:
存储过程默认是用定义者definer 的身份调用的,如果加上AUTHID CURRENT_USER,则用当前登陆的用户权限调用,如果该过程的调用者(而非定义者)被授与系统权限execute any procedure或是被该过程的定义者grant execute on授权的话,不用这个AUTHID CURRENT_USER子句,调用者照样可以使用这个过程。
分享到:
相关推荐
sqlplus / as sysdba时出现ORA-01031 insufficient privilege
使用conn / as sysdba进入数据库,报错ORA-01031: insufficient privileges
在oracle数据库中远程连接的认证方式有两种:分别是操作系统认证和密码认证,在安装完oracle软件并创建数据库之后,默认... 本文介绍了如何远程登录并启动oracle数据库(ORA-01031:insufficient privileges的解决方法)
ORA-01036:非法的变量名/编号 oracle特有的错误
在oracle里面运行一下,解决Exception java.sql.SQLException ORA-00600 内部错误代码
权限错误码:ORA-01031:insufficient privileges 7、经典备份语句:CREATE TABLE TB_B AS SELECT * FROM TB_A; 本存储过程解决备份表名称时动态添加时间戳,例如表名称 TB_B20240106; 8、资源内容有: 8.1、P_...
最近在工作中遇到了一个问题,错误是Oracle dbca时报错:ORA-12547: TNS:lost contact,通过查找相关的资料终于找到了解决的方法,下面分享给大家,话不多说了,来一起看看详细的介绍吧。 环境: OS:RHEL6.5 x86-...
离线误删空间文件导致的ORA-01033及ORA-01145问题的解决办法,在解决ORA-01033的过程中,又出现ORA-01145 * 第 1 行出现错误: ORA-01145: 除非启用了介质恢复, 否则不允许立即脱机 接着的解决步骤
用oracle数据库新建连接时遇到ora-12505,此问题解决后又出现ora-12519错误,郁闷的半天,经过一番折腾问题解决,下面小编把我的两种解决方案分享给大家,仅供参考。 解决方案一: 今天工作时在新建连接的时候遇到...
1.Navicat OCI引⽤位置可以从Navicat菜单栏“⼯具”-》“选项”-》环境-》“OCI”中找到 2.Navicat替换的⽂件
Drop goldengate用户时,报ORA-00604 ORA-20782 ORA-06512错误
有关表死锁的详细图片 博文链接:https://meteor-1988.iteye.com/blog/1568695
在运行查询SELECT * FROM V$SESSION 会出现ORA-29275:部分多字节字符的错误,这是什么原因开始我不得其解,网上也没有介绍什么好办法。本文给出答案。
ORA-12541 TNSno listener 的解决方案 ORA-12541 TNSno listener 的解决方案
ORA-20011,ORA06564错误分析
ora-00604 错误 解决 方法 ora-00604 错误 解决 方法 ora-00604 错误 解决 方法 ora-00604 错误 解决 方法 ora-00604 错误 解决 方法ora-00604 错误 解决 方法
ORA-00312: online log 1 thread 1: '/oradata/10g/db/instant/redo01.log' SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=4294967296 SCOPE=BOTH; System altered. SQL> shutdown immediate ORA-...
实验得来的,不是随便copy的, ORA-12560TNS协议适配器错误,这个问题可定可以解决