`
guzizai2007
  • 浏览: 358791 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

存储过程中建表无权限ORA-01031: insufficient privileges

阅读更多

1、新建一存储过程

create or replace procedure pro_gz_day_report
as

p_sql         varchar2(30000);                   ---处理报表的sql语句
num           number; 

begin

       ---先删除数据
       execute immediate 'truncate table gz_teacher_day_sms';
       execute immediate 'truncate table gz_admin_day_sms';

      select   count(1)   into   num   from   all_tables   where   Lower(TABLE_NAME)   =   'temp_gz_teacher'; 
      if   num= 1   then 
           execute immediate 'drop table temp_gz_teacher';
      end   if; 
      
      select   count(1)   into   num   from   all_tables   where   Lower(TABLE_NAME)   =   'temp_gz_suc'; 
      if   num= 1   then 
           execute immediate 'drop table temp_gz_suc';
      end   if; 
      
      select   count(1)   into   num   from   all_tables   where   Lower(TABLE_NAME)   =   'temp_gz_sum'; 
      if   num= 1   then 
           execute immediate 'drop table temp_gz_sum';
      end   if; 
      
      select   count(1)   into   num   from   all_tables   where   Lower(TABLE_NAME)   =   'temp_gz_13suc'; 
      if   num= 1   then 
           execute immediate 'drop table temp_gz_13suc';
      end   if; 
      
      select   count(1)   into   num   from   all_tables   where   Lower(TABLE_NAME)   =   'temp_gz_13sum'; 
      if   num= 1   then 
           execute immediate 'drop table temp_gz_13sum';
      end   if; 
      
      select   count(1)   into   num   from   all_tables   where   Lower(TABLE_NAME)   =   'temp_gz_admin_dxsucc'; 
      if   num= 1   then 
           execute immediate 'drop table temp_gz_admin_dxsucc';
      end   if; 
      
      select   count(1)   into   num   from   all_tables   where   Lower(TABLE_NAME)   =   'temp_gz_admin_dxsum'; 
      if   num= 1   then 
           execute immediate 'drop table temp_gz_admin_dxsum';
      end   if; 

       ----教师成功临时表
       p_sql := 'create table temp_gz_13suc as (select ....)';
       execute immediate p_sql;
       commit;
  
       ----教师总量临时表
       p_sql := 'create table temp_gz_13sum as (select ....)';
       execute immediate p_sql;
       commit;

       ----教师表
       p_sql := 'create table temp_gz_teacher as (select ....)';      
       execute immediate p_sql;
       commit;
            
       ------管理员成功量
       p_sql := 'create table temp_gz_admin_succ as (select ....)';      
       execute immediate p_sql;
       commit;
       
       ------管理员总量
       p_sql := 'create table temp_gz_admin_dxsum as (select ....)';      
       execute immediate p_sql;
       commit;
       
       ------统计教师信息量
       p_sql := 'insert into gz_teacher_day_sms 
       select  te.county_id,te.county_name,te.ec_code,te.school_name,te.user_name,te.user_mobile,te.class_name,nvl(te.cnt,0),nvl(s.cc,0),nvl(sc.cc,0) from temp_gz_teacher te 
       inner join temp_gz_sum s on (te.user_id = s.user_id and te.class_id = s.class_id ) 
       inner join temp_gz_suc sc on (s.user_id = sc.user_id and s.class_id = sc.class_id )';
       
       execute immediate p_sql;
       commit;

       -- 统计管理员信息量
       p_sql := 'insert into gz_admin_day_sms 
       select ss.county_id,ss.county_name,ss.ec_code,ss.school_name,nvl(ss.ss,0),nvl(suc.suc,0) from temp_gz_admin_dxsum ss 
       left join temp_gz_admin_dxsucc suc on ss.school_id = suc.school_id';
       
       execute immediate p_sql;
       commit;

end pro_gz_day_report;

 

2、问题:

SQL> exec pro_gz_day_report;
ORA-01031: insufficient privileges
ORA-06512: at "....", line 6
ORA-06512: at line 2

3、解决方案:

①、第一种在网上看的说是在存储过程名后加上 Authid Current_User ,加上试过的确exec可以执行,不过用job定时执行一直报错
 ORA-12011: 无法执行 1 作业
 ORA-06512: 在 "SYS.DBMS_IJOB", line 406
 ORA-06512: 在 "SYS.DBMS_JOB", line 275
 ORA-06512: 在 line 1
②、第二种当前用户已经是dba角色权限,但是还报权限不足无法创建表,可以通过如下方案解决:grant create any table to 用户名;  授权之后就ok了!

 4、创建job

begin
  sys.dbms_job.submit(job => :job,
                      what => 'pro_gz_day_report;',
                      next_date => to_date('18-10-2012 14:25:55', 'dd-mm-yyyy hh24:mi:ss'),
                      interval => 'sysdate+1');
  commit;
end;
/

 5、删除job

begin 
    dbms_job.remove(203); 
end; 

 6、查看所有job

select * from dba_jobs;

 7、查看正在运行的job

select * from dba_jobs_running;

 8、停止正在运行的job

①、SQL> select * from dba_jobs_running;//查出正在运行的job

②、SQL> select sid,serial# from v$session where sid='16';

③、SQL> alter system kill session 'sid,serial#';//分别填上②中查出的两个值

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    ORA-01031 insufficient privilege

    sqlplus / as sysdba时出现ORA-01031 insufficient privilege

    ora-01031禁止操作系统集成的身份验证方式

    使用conn / as sysdba进入数据库,报错ORA-01031: insufficient privileges

    远程登录并启动oracle数据库 解决ORA-01031

    本文将详细介绍如何实现这一过程,并针对“ORA-01031: insufficient privileges”这一常见错误提供解决方案。 #### Oracle数据库远程连接认证方式 在Oracle数据库中,远程连接主要有两种认证方式: 1. **操作系统...

    plsql常见问题.docx

    当你在PL/SQL Developer尝试调试存储过程时,如果收到“ORA-0131: Insufficient privileges”错误,这通常意味着当前登录的用户没有足够的权限来执行调试操作。在Oracle数据库系统中,调试功能是一项高级权限,需要...

    Oracle数据库表定时备份表 表名动态拼接时间戳存储过程-解决了ORA-00922

    权限错误码:ORA-01031:insufficient privileges 7、经典备份语句:CREATE TABLE TB_B AS SELECT * FROM TB_A; 本存储过程解决备份表名称时动态添加时间戳,例如表名称 TB_B20240106; 8、资源内容有: 8.1、P_...

    oracle常见错误号

    16. ORA-01031:insufficient privileges - 没有足够的权限执行操作。检查用户的权限设置,可能需要DBA权限或特定的系统权限。 17. ORA-12514:TNS:listener does not currently know of service requested in ...

    Oracle权限不足问题集锦

    但 是 这 样 做 的 结 果 是 出 现 了 “ORA-01031: insufficient privileges”错误。请告诉我如何才能实现我想要达到的目的?现在两个用户都 是在同一个 Oracle 实例中,数据库是 Oracle 10g。 答:你的两个 Schema ...

    oracle+ora-各种常见java.sq

    - `java.sql.SQLException: ORA-01031: insufficient privileges`: 用户没有执行某些操作的权限。检查用户角色和权限设置,确保有足够的权限执行相关操作。 10. **回滚段错误** - `java.sql.SQLException: ORA-...

    Oracle数据库表定时备份表 表名动态拼接时间戳存储过程

    权限错误码:ORA-01031:insufficient privileges 7、经典备份语句:CREATE TABLE TB_B AS SELECT * FROM TB_A; 本存储过程解决备份表名称时动态添加时间戳,例如表名称 TB_B20240106; 8、资源内容有: 8.1、P_...

    oracle登录报错案例分析

    本文将通过一个具体的案例来分析并解决Oracle登录时出现的“ORA-01031: insufficient privileges”错误。 #### 案例背景 用户尝试使用SQL*Plus工具以`/as sysdba`的方式登录Oracle数据库,但连续两次均收到“ORA-...

    oracle 10g错误代码手册

    - **ORA-01031: insufficient privileges** - **含义**:执行操作的用户权限不足。 - **解决方法**:联系数据库管理员,请求适当的权限。 - **ORA-01555: snapshot too old** - **含义**:查询返回的数据与实际...

    常见ORA解决方案.pdf

    3. **ORA-01031: insufficient privileges** - **解释**:此错误表明用户没有足够的权限执行某项操作。 - **解决方案**: - 授予用户必要的权限。 - 使用具有足够权限的账户登录。 #### 六、政府用户的特殊条款...

    SAP中oracle数据库的备份恢复.pdf

    在恢复过程中,可能遇到权限问题,如错误提示"ORA-01031: insufficient privileges"。这通常意味着执行恢复操作的用户没有足够的权限。为了解决这个问题,可以检查Oracle的环境变量,确保用户有执行RMAN(Recovery ...

    Linux安装oracle 11G各系统变量配置脚本

    用root身份执行该脚本,实现对limits.conf,login,sysctl.conf,profile,.bash_profile文件进行设置,并创建用户oracle,创建oinstall和dba组,创建安装目录 ... 哈哈 比较适合新装,一次性配置

    解决windows10下"sqlplus / as sysdba"执行提示无权限问题

    主要介绍了解决windows10下"sqlplus / as sysdba"执行提示无权限问题,在文中给大家介绍了Windows下sqlplus “/as sysdba”登陆报“ORA-01031: insufficient privileges”处理方法,感兴趣的朋友跟随脚本之家小编...

    oracle_11gR2_09 视图 VIEW 的介绍(

    ORA-01031: insufficient privileges ``` 这表示当前用户没有足够的权限来创建视图。为了赋予用户创建视图所需的权限,需要以具有足够权限的用户登录,并执行以下命令: ```sql GRANT CREATE VIEW TO username; ``...

    oracle登陆认证方式教学内容.pdf

    当出现“ERROR: ORA-01031: insufficient privileges”时,意味着用户没有足够的权限进行特定操作。这可能是由于认证方式不正确,或者用户没有适当的数据库角色和权限。 总结来说,Oracle的登陆认证方式取决于sql...

    Oracle环境通过SQL*PLUS本地登录时报错的解决过程

    ora-01031 insufficient privileges ——-权限不足 二. 解决过程 错误排除 1. 当时首先想到的是oracle不允许用sqlplus工具登录,但随即想法打消 sqlplus sys/admin as sysdba –成功登录! sqlplus sys/admin as ...

    oracle安装与出错的解决方法

    - **“Insufficient Privileges”**:检查当前用户是否有足够的权限进行操作,可能需要以DBA角色登录。 - **“ORA-12541: TNS:no listener”**:检查监听器是否运行,监听器配置是否正确。 - **“ORA-01078: ...

Global site tag (gtag.js) - Google Analytics