oracle DBMS_SQL编译问题

问题描述

oracle DBMS_SQL编译问题

创建的存储过程里面调用DBMS_SQL中的方法,该存储过程能编译通过,但是执行时报SYS.DBMS_SQL有错误,package body中DBMS_SQL有红叉,alter。。。。compile body不报错,但是状态仍然是invalid ,右键DBMS_SQL重新编译 结果 已编译但有错误。

时间: 2024-12-31 02:07:12

oracle DBMS_SQL编译问题的相关文章

Oracle数据库编译存储过程假死问题

Oracle数据库教程编译存储过程假死问题 这种情况下如果强行终止存储过程编译,再次Recompile存储过程会发现还是挂死的,这个主要是由于强行终止后会话为INACTIVE状态,但是该会话却没有被真正的释放.使用如下语句查询出挂起的会话: SELECT V.OSUSER, V.PROCESS, V.PROGRAM, v.MACHINE, V.TERMINAL, V.MODULE, V.USERNAME, V.STATUS, V.SID, V.SERIAL#, 'alter system kil

oracle存储过程编译时的一些错误

Error: PLS-00201: 必须说明标识符 'DATETIME' Line: 45 Text: aa datetime, ------------------------- 在oracle中没有datetime类型 =================================================== Error: PLS-00103: 出现符号 "("在需要下列之一时: := . ) , @ % default character 符号 ":=&qu

Oracle存储过程编译卡死的解决方法

解决方法如下: 1:查V$DB_OBJECT_CACHE SELECT * FROM V$DB_OBJECT_CACHE WHERE name='CRM_LASTCHGINFO_DAY' AND LOCKS!='0'; 注意:CRM_LASTCHGINFO_DAY为存储过程的名称. 发现locks=2, 2:按对象查出sid的值 select /*+ rule*/  SID from V$ACCESS WHERE object='CRM_LASTCHGINFO_DAY'; 注意:CRM_LAST

Oracle Compile 编译无效对象(ORA-04063: package body

使用AUTOTRACE 前要做好准备工作 创建角色Plustrace SQL>        @?/sqlplus/admin/plustrce.sql 将Plustrace角色授于要执行AUTOTRACE的用户 SQL>        grant plustrace to sst; ----------------------------------------------------以上用sys身份执行 设置启用AUTOTRACE SQL>        set autotrace

ORACLE编译失效对象

在日常数据库维护过程中,我们会发现数据库中一些对象(包Package.存储过程Procedure.函数Function.视图View.同义词.....)会失效,呈现无效状态(INVALID).有时候需要定期检查数据库中存在哪些失效对象,对于存在异常的对象需要重新编译,有些自动失效的对象,一般会在下次调用的时候,会被重新编译,所以这些不需要人工干预.那么为什么对象突然会失效呢?又如何快速.高效的编译失效对象呢?哪些失效的对象不需要我们去重新编译呢? 数据库对象失效原因 数据库对象失效的原因很多,下

Oracle存储过程本地编译方式

  通常将Oracle存储过程编译为本地编译方式的测试记录. 测试用表: ? 1 2 3 4 5 6 7 SQL> create table t1(rid number);    Table created    SQL> create table t_n(rid number);    Table created 测试用的存储过程: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 create or replace procedure pro_xcl(p1 varchar2)

ORACLE编译失效对象小结

在日常数据库维护过程中,我们会发现数据库中一些对象(包Package. 存储过程Procedure.函数Function.视图View.同义词.....)会失效,呈现无效状态(INVALID).有时候需要定期检查数据 库中存在哪些失效对象,对于存在异常的对象需要重新编译,有些自动失效的对象,一般会在下次调用的时候,会被重新编译,所以这些不需要人工干预.那么为什 么对象突然会失效呢?又如何快速.高效的编译失效对象呢?哪些失效的对象不需要我们去重新编译呢? 数据库对象失效原因 数据库对象失效的原因很

使用Oracle的DBMS_SQL包执行动态SQL语句

引用自:http://blog.csdn.net/ggjjzhzz/archive/2005/10/17/507880.aspx 在某些场合下,存储过程或触发器里的SQL语句需要动态生成.Oracle的DBMS_SQL包可以用来执行动态SQL语句.本文通过一个简单的例子来展示如何利用DBMS_SQL包执行动态SQL语句:   DECLARE        v_cursor NUMBER;        v_stat NUMBER;        v_row NUMBER;        v_id

oracle显式授权和隐式授权

oracle对象的授权 Oracle授权 一.授权语法 GRANT语法: 1.显式授权(直接将对象授权给用户) GRANT privilege [, ...] ON object [, ...]  TO  { Public| Group | Username|role} [WITH GRANT OPTION ] 例子grant read,write on directory dir_home to public 2.隐式授权(通过将角色授权给用户) GRANT role TO  { Public