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

存储过程中调用EXECUTE IMMEDIATE的“权限不足”

阅读更多

EXECUTE IMMEDIATE是Oracle中使用动态SQL的一种方法,可以直接执行,也可以在存储过程中调用。然而在存储过程中调用可能会遇到权限不足的问题,如在存储过程中执行重建索引语句:

sqlt := 'alter index ' || idx.index_name || ' rebuild online ';

    EXECUTE IMMEDIATE sqlt;

 

会报权限不足:如下

ORA-01031: 权限不足
ORA-06512: 在"bdc.proc_rebuild_part_index", line 5
ORA-06512: 在line 1

 

既然提示说权限不足,所以问题的解决方法就是要赋予用户scott Create Any Table的权限,以SYS登录,然后执行:

GRANT CREATE ANY TABLE TO SCOTT

 

再重新执行下刚才的存储过程,成功。

 

分享到:
评论

相关推荐

    Oracle中EXECUTE IMMEDIATE用法

    此示例中,`EXECUTE IMMEDIATE`被用来调用一个存储过程,其中包含多个输入、输出和输入输出参数。 5. **使用%ROWTYPE类型**: ```sql TYPE emp_dtl_rec IS RECORD ( emp_no NUMBER(4), ename VARCHAR2(20), ...

    Oracle存储过程调用bat批处理脚本程序

    在实际应用中,我们需要确保安全性和权限控制,因为允许存储过程直接调用操作系统命令可能存在安全风险。因此,通常只会在受信任的环境中,并且在严格控制权限的情况下使用这种方法。同时,对存储过程进行充分的测试...

    oracle调用存储过程

    在存储过程中,可以使用动态SQL(`EXECUTE IMMEDIATE`)来执行在运行时构建的SQL语句,这在处理不确定的SQL结构时非常有用。 7. **包(Packages)**: Oracle推荐将相关的存储过程和函数组合成包,以便更好地管理...

    存储过程学习经典[语法+实例+调用]

    **Oracle存储过程**是一种可以在Oracle数据库中存储并可被多次调用的程序单元。它可以包含一系列SQL语句和控制流语句,用于执行复杂的操作。存储过程的主要优势在于它们能够提高应用性能、减少网络流量,并提供更高...

    Oracle过程中创建视图

    如果在创建过程中遇到了编译错误,通常是因为权限不足或其他语法错误。例如,在提供的示例中出现的警告: > Warning: Procedure created with compilation errors. 这可能是因为缺少必要的权限,或者SQL语句格式不...

    oracle存储过程学习经典[语法+实例+调用]

    此外,在调用存储过程时,可能还需要`EXECUTE`权限或`EXECUTE ANY PROCEDURE`权限。 3. **调用存储过程**: 调用存储过程通常使用`EXECUTE`关键字加上存储过程的名称及参数,例如`EXECUTE MY_PROCEDURE('...

    Oracle存储过程学习经典[语法+实例+调用].

    - **EXECUTE权限**: 调用存储过程时,通常需要具有执行该存储过程的权限。 **3. 存储过程与函数的区别** - **存储过程**: 是一条命令,主要用于执行一系列的SQL或PL/SQL语句。 - **函数**: 可以返回值,并且...

    ORACLE存储过程最全教程

    在存储过程中,可以使用`EXECUTE IMMEDIATE`执行动态SQL,这在处理不确定的SQL语句或需要构建SQL语句时非常有用。 九、游标 存储过程可以使用游标(CURSOR)处理多行结果集。游标允许按行读取结果集,常用于循环...

    oracle存储过程学习经典语法+实例+调用.doc

    2. **调用存储过程**:通过`EXECUTE`关键字或直接使用过程名来执行存储过程。 3. **参数类型**:存储过程可以接受输入参数(IN)、输出参数(OUT)或输入输出参数(IN OUT)。 4. **返回值**:存储过程可以定义一个...

    Oracle_PLSQL_存储过程

    - **EXECUTE权限:** 授予特定用户执行特定存储过程的权限。 - **EXECUTE ANY PROCEDURE权限:** 允许用户执行任何存储过程。 **调用示例:** ```sql EXECUTE MY_PROCEDURE('ONEPARAMETER'); ``` **存储过程与函数...

    SYBASE IQ存储过程学习笔记

    - 用户对存储过程的访问受到权限管理,必须通过GRANT和REVOKE语句来授予或撤销EXECUTE权限。 5. **返回值** - 有三种方式传递存储过程的返回值:通过OUT或INOUT参数,返回结果集,或者使用RETURN语句。例如,创建...

    oracle存储过程超详细使用手册

    3. **调用过程**:调用已创建的过程通常使用`EXECUTE`关键字,或者在PL/SQL块中直接使用过程名,如`过程名(参数列表);`。 4. **参数**:存储过程可以接受输入参数(IN),输出参数(OUT),或者输入输出参数(IN ...

    DB2存储过程介绍

    当存储过程创建后,可以通过其名称在应用程序中调用执行。 **指针** 在DB2的上下文中,指针主要指的是游标。游标是一种数据库对象,它允许用户在查询结果集中进行定位和导航。在处理大量数据时,特别是在循环处理...

    存储过程基础教程

    7. **动态SQL**:在存储过程中,可以使用`EXECUTE IMMEDIATE`或`PREPARE`语句执行动态构建的SQL语句,以适应灵活的数据操作需求。 8. **事务管理**:存储过程可以包含多个SQL语句,形成一个事务,确保数据的一致性...

    SybaseIQ存储过程学习笔记

    Sybase IQ 是一种高效的数据仓库系统,它支持存储过程,这是一种在数据库中预编译的SQL语句集合,能够提升应用性能并简化复杂操作。存储过程允许用户将一系列操作封装起来,方便重复使用和调用。 1. **存储过程的...

    oracle存储过程实例

    Oracle存储过程是数据库管理系统Oracle中的一个重要特性,它是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户可以像调用函数一样调用它,以执行预定义的任务。这个压缩包文件"存储过程"很可能包含...

    TX_CON_0088_oracle_oracle存储过程实战_

    而在SQL查询中,可以使用`EXECUTE IMMEDIATE`语句调用存储过程: ```sql EXECUTE IMMEDIATE 'BEGIN my_proc(:p1, :p2); END;' USING 5, OUT result; ``` 后台调用存储过程通常是指在后台进程(如DBMS_JOB或DBMS_...

    oracle 存储过程(5)

    5. **动态SQL**:存储过程中可以使用`EXECUTE IMMEDIATE`执行动态SQL语句,这在需要根据程序逻辑生成不同SQL语句时非常有用。 6. **游标**:游标是处理查询结果集的一种方式,常用于循环遍历查询结果。在存储过程中...

Global site tag (gtag.js) - Google Analytics