`
征途2010
  • 浏览: 244296 次
  • 性别: 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用法

    Oracle中EXECUTE IMMEDIATE用法

    execute immediate 用法研究

    execute immediate 用法研究 为初学者打造。

    EXECUTE IMMEDIATE用法小结

    EXECUTE IMMEDIATE将不会提交一个DML事务执行,应该显式提交 如果通过EXECUTE IMMEDIATE处理DML命令, 那么在完成以前需要显式提交或者作为EXECUTE IMMEDIATE自己的一部分. 如果通过EXECUTE IMMEDIATE处理DDL命令,

    用execute immediate 执行备份恢复SQLSVR数据库

    用execute immediate 执行备份恢复SQLSVR数据库

    oracle动态sql之EXECUTE IMMEDIATE.docx

    如果需要绑定输出变量(如调用过程时可能需要输出),则在变量前用 out 显示指明。 下面是 EXECUTE IMMEDIATE 语句的实例说明: 1.2.1 动态 DDL DECLARE v_sql VARCHAR2(1000); v_table VARCHAR2(30) := 'test_...

    动态SQL之EXECUTE IMMEDIATE

    NULL 博文链接:https://wushuangyan26.iteye.com/blog/1306094

    VC ADO调用存储过程

    关于ADO调用存储过程的标准的做法:按照以下步骤进行:  1、生成并初始化一个_CommandPtr对象;... 5、使用_CommandPtr的Execute方法调用存储过程;  6、从结果中获取返回参数的值(如果有的话)。

    金蝶K3插件开发调用存储过程

    金蝶K3插件开发调用存储过程

    pb调用存储过程

    Pb 调用 DECLARE lpro_test PROCEDURE FOR proc_pslx; EXECUTE lpro_test ; 存储过程 CREATE PROCEDURE proc_pslx AS insert into demo(name) values('55566') GO

    JAVA调用存储过程

    一、调用存储过程(无结果集返回) Connection connection = ConnectionHelper.getConnection(); CallableStatement callableStatement = connection.prepareCall("{ call procedureName(?,?) }"); ...

    Gbase8s动态sql的介绍

    在 Gbase8s 中,可以使用 execute immediate 语句来执行动态 SQL,execute immediate 需要在存储过程中使用。 例如,创建一个存储过程,可以用来创建表。以下是一个示例代码: create or replace procedure create...

    Spring jdbcTemplate调用Oracle存储过程返回List集合

    在此文档中,我们将介绍如何使用 Spring jdbcTemplate 调用 Oracle 存储过程返回 List 集合。 Oracle 存储过程 ------------- 在 Oracle 数据库中,存储过程是一种可以被调用执行的数据库对象。存储过程可以实现...

    Spring JdbcTemplate 调用 Oracle 存储过程 与 Oracle 驱动下载

    execute 调用无返回值存储过程 execute 调用单个返回值存储过程 execute 调用返回结果集存储过程 call 方法调用存储过程 前 言 1、关于 JdbcTemplate 的介绍、pom 依赖、DI 注入可以参考《Spring JdbcTemplate 模板...

    SQLSERVER存储过程大总结.doc

    预先用SQL语句写好并用一个指定的名称存储起来,并且这样的语句是放在数据库中的,还可以根据条件执行不同SQL语句, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成...

    gbase8s存储过程简介

    --在存储过程中调用另一个存储过程 Return I; End procedure; Call p_usertest(); --独立的调用一个存储过程 删除存储过程则通过 drop 语句,如下: Drop procedure 过程名; gbase8s 存储过程提供了强大的功能,...

    oracle存储过程语法

    存储过程可以通过 `EXECUTE` 语句调用,例如 `EXECUTE 存储过程名(参数列表)`。 7. 存储过程的优点 存储过程可以提高数据库的安全性、可维护性和性能。存储过程可以减少网络流量,提高数据库的响应速度,并且可以...

    executesql 存储过程

    executesql 存储过程代码,需要的朋友可以参考下。

    UE WebBrowser:Execute Javascript 调用测试网页

    测试

Global site tag (gtag.js) - Google Analytics