精华内容
下载资源
问答
  • Oracle之处理synonym同义词无效对象

    千次阅读 2014-11-14 15:03:34
    Oracle之处理synonym同义词无效对象 ORA-00980: synonym translation is no longer valid 1. 举例,在sys用户下建一个t表 [oracle@test...
    Oracle之处理synonym同义词无效对象


    ORA-00980: synonym translation is no longer valid

    1. 举例,在sys用户下建一个t表
    [oracle@testdb1 ~]:testdb1> sqlplus "/as sysdba"

    SQL*Plus: Release 11.2.0.4.0 Production on Fri Nov 14 09:33:29 2014

    Copyright (c) 1982, 2013, Oracle.  All rights reserved.


    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options

    SQL> create table t (x number);

    Table created.

    SQL> insert into t values (1);

    1 row created.

    SQL> commit;

    Commit complete.



    2. 再建立一个sec用户

    SQL> create user sec identified by sec;

    User created.


    3. 使用sec用户,建立同名表syn_t
    SQL> conn sec/sec
    ERROR:
    ORA-01045: user SEC lacks CREATE SESSION privilege; logon denied
    Warning: You are no longer connected to ORACLE.
    SQL> grant dba to sec;
    SP2-0640: Not connected
    SQL> conn /as sysdba;
    Connected.
    SQL> grant dba to sec;
    Grant succeeded.

    SQL> conn sec/sec
    Connected.
    SQL> create synonym syn_t for sys.t;     
    Synonym created.

    SQL> select * from syn_t;

             X
    ----------
             1
    4. 删除sys用户下的t表
    SQL> conn /as sysdba
    Connected.
    SQL> drop table t purge;

    Table dropped.

    SQL> conn sec/sec
    SQL> conn sec/sec
    Connected.

    +++++++++++++++++++++++++++++++++++++++++++++++++++++
    SQL> select * from syn_t;
    select * from syn_t
    *
    ERROR at line 1:
    ORA-00980: synonym translation is no longer valid
    SQL>
    +++++++++++++++++++++++++++++++++++++++++++++++++++++

    #产生了无效同名

    导致“ORA-00980”错误的原因:
    1.删除了数据库对象,但是忘记删除同名;
    2.删除一个用户,但是忘记删除与此用户中相关的同名;
    3.创建同名时,同名对应的数据库对象已经被删除掉了


    表t删除,但是同名还可以建立
    SQL> show user;
    USER is "SEC"

    SQL> create synonym syn_public_t for sys.t;     

    Synonym created.

    SQL> create synonym syn_tt for sys.t;

    Synonym created.


    报错:
    SQL> desc syn_tt;
    ERROR:
    ORA-04043: object "SYS"."T" does not exist



    查询无效对象:

    SQL> set linesize 1000
    SQL>  SELECT OBJECT_NAME, OBJECT_TYPE, OWNER, CREATED, LAST_DDL_TIME, TIMESTAMP FROM dba_objects WHERE status = 'INVALID';

    OBJECT_NAME                                                     OBJECT_TYPE         OWNER     CREATED              LAST_DDL_TIME      
    -------------------------------------------------------------- ------------------- ------------------------------ ------------------- ------------------- -------------------
    /53ad31cb_TagsLocator                                            JAVA CLASS          EXFSYS    2014-10-22 14:10:56 2014-11-12 14:40:46 2014-10-22:14:10:56
    /357abd97_XPathFilter                                            JAVA CLASS          EXFSYS    2014-10-22 14:10:56 2014-11-12 14:40:46 2014-10-22:14:10:56
    SYN_T                                                            SYNONYM             SYS       2014-11-14 09:40:47 2014-11-14 09:40:47 2014-11-14:09:40:47

    SQL>


    处理办法:
    先采用方法一,再采用方法二。
    方法一:
    ALTER SYNONYM  SYN_T  compile;
    SQL> ALTER SYNONYM  SYN_T  compile;

    Synonym altered.

    SQL> SELECT OBJECT_NAME, OBJECT_TYPE, OWNER, CREATED, LAST_DDL_TIME, TIMESTAMP FROM dba_objects WHERE status = 'INVALID';

    OBJECT_NAME                                            OBJECT_TYPE         OWNER     CREATED              LAST_DDL_TIME       TIMESTAMP
    ----------------------------------------------- ------------------- ------------------------------ ------------------- ------------------- -------------------
    /53ad31cb_TagsLocator                                    JAVA CLASS          EXFSYS    2014-10-22 14:10:56 2014-11-12 14:40:46 2014-10-22:14:10:56
    /357abd97_XPathFilter                                    JAVA CLASS          EXFSYS    2014-10-22 14:10:56 2014-11-12 14:40:46 2014-10-22:14:10:56
    SYN_T                                                      SYNONYM             SYS       2014-11-14 09:40:47 2014-11-14 09:40:47 2014-11-14:09:40:47

    SQL> SELECT COUNT(*) FROM dba_objects WHERE status = 'INVALID' AND object_name NOT LIKE 'BIN$%' AND object_type NOT IN ('MATERIALIZED VIEW');

      COUNT(*)
    ----------
             3

    不能清理。




    方法二:直接删除
    查找脚本:
    select 'drop '
           || decode (s.owner,
                      'PUBLIC', 'public synonym ',
                      'synonym ' || s.owner || '.')
           || s.synonym_name
           || ';' as "Dropping invalid synonyms:"
      from dba_synonyms s
     where table_owner not in ('SYSTEM', 'SYS') and db_link is null
       and not exists
              (select null
                 from dba_objects o
                where s.table_owner = o.owner
                  and s.table_name = o.object_name)
    /


    SQL> select 'drop '
      2         || decode (s.owner,
      3                    'PUBLIC', 'public synonym ',
      4                    'synonym ' || s.owner || '.')
      5         || s.synonym_name
      6         || ';' as "Dropping invalid synonyms:"
      7    from dba_synonyms s
      8   where table_owner not in ('SYSTEM') and db_link is null
      9     and not exists
     10            (select null
     11               from dba_objects o
     12              where s.table_owner = o.owner
     13                and s.table_name = o.object_name)
     14  /

    Dropping invalid synonyms:
    ---------------------------------------------------------------------------
    drop synonym SYS.SYN_T;
    drop synonym SEC.SYN_PUBLIC_T;
    drop synonym SEC.SYN_TT;




    SQL> drop synonym SEC.SYN_TT;
    SQL> drop synonym SEC.SYN_PUBLIC_T;
    SQL> drop synonym SYS.SYN_T;

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29500582/viewspace-1332715/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/29500582/viewspace-1332715/

    展开全文
  • 无效对象 oracle invalid object

    千次阅读 2018-01-09 17:04:26
    Raymond 在Recompiling invalid objects提到了如何有效地重新编译无效对象.提到了三种比较有效地方法(   利用$ORACLE_HOME/rdbms/admin下的utlrp.sql脚本编译.一般都是在迁移或者升级之后运行该脚本.Raymond...

    -- Created on 2012/8/17 by ZHOUXX 
    declare 
      -- Local variables here
      i integer;
      v_sql varchar2(2000);
      ERR1 varchar2(2000);
      TOM_SQLCODE  varchar2(2000);
    begin
      -- Test statements here
    /*  for R in (select 'alter ' || object_type || ' ' || owner || '.' ||
                       object_name || ' compile' as vsql
                  from dba_objects
                 where owner = 'YDQXN'
                   and object_type in
                       ('PACKAGE,', 'TRIGGER', 'FUNCTION', 'PROCEDURE','VIEW')
                   and status <> 'VALID') loop
        --execute immediate R.vsql;
        v_sql :=R.vsql;
        end loop;*/

        for invalid_object in (select owner,object_name,object_type
                                   from dba_objects
                                   where status = 'INVALID' and owner = 'YDQXN')
        LOOP
         begin
          IF invalid_object.object_type IN ('PROCEDURE','TYPE','FUNCTION','PACKAGE','VIEW','TRIGGER')
            THEN
            v_sql := 'ALTER '||invalid_object.object_type||' '||invalid_object.owner||'.'||invalid_object.object_name || ' COMPILE ;';
            dbms_output.put_line(v_sql);
            execute immediate v_sql;
          end if;
          exception
            when others then
              ERR1        := SUBSTR(SQLERRM, 1, 100);
             TOM_SQLCODE := SQLCODE;
          end ;
        end loop;

    end;

    http://www.zxbc.cn/html/20070919/25834.html

    有两种编译无效对象的方式: 
      
    1 使用alter **** compile 语句进行编译 
      
    2 以SYSDBA用户,执行ORACLE_HOME/rdbms/admin/utlrp.sql 脚本 
      
    3 用DBMS_UTILITY包来进行编译.

    Raymond提出的方法 
    Raymond 在Recompiling invalid objects提到了如何有效地重新编译无效对象.提到了三种比较有效地方法( 
     利用$ORACLE_HOME/rdbms/admin下的utlrp.sql脚本编译.一般都是在迁移或者升级之后运行该脚本.Raymond说该方法的不足之处在于这个脚本是对整个数据库中的对象进行重新编译的,所以不可取.有网友指出utlrp.sql 实际上是调用utlrcmp.sql的这样就可以用utl_recomp包来做喽(这样就是比较好的方法). 

     用DBMS_UTILITY包来进行编译.但是也有一定的局限性.  
    Raymond提到了自己的解决办法: 不过也立刻有人指出来,这样对 View 的重新编译是无能为力的(ALTER_COMPILE只能处理:PACKAGE, PACKAGE BODY, PROCEDURE, FUNCTION, TRIGGER).参见下面的脚本

    http://blog.163.com/microsunny_lin/blog/static/24266622200710325635504/

        很多时候,由于数据库的变更或迁移,会导致数据库中的对象失效。比如EXP/IMP操作后,由于对象之间可能存在复杂的倚赖关系,所以手工编译通常无法顺利通过。Oracle提供一个脚本用于按照顺序/依赖关系重新编译失效对象。

          这个脚本是:
    $ORACLE_HOME/rdbms/admin/utlrp.sql  
    其中会调用:
    $ORACLE_HOME/rdbms/admin/utlrcmp.sql

    $Oracle_Home = Oracle的安装根目录 (d:\oracle\ora92)

           这是一个通用脚本,可以在任意时候运行以重新编译数据库失效对象。通常我们会在Oracle的升级指导中看到这个脚本,Oracle强烈推荐在migration/upgrade/downgrade之后,通过运行此脚本编译失效对象。但是注意,Oracle提醒,此脚本需要用SQLPLUS以SYSDBA身份运行,并且当时数据库中最好不要有活动事物或DDL操作,否则极容易导致死锁的出现(这是很容易理解的)。如果仔细阅读一下utlrcmp.sql脚本,大家就会知道Oracle的操作方式。

            执行命令如下:    
    SQL> conn sys/change_on_install@orcl as sysdba
    已连接。
    SQL> @d:\oracle\ora92\rdbms\admin\utlrp.sql;

    PL/SQL 过程已成功完成。
    表已创建。
    表已创建。
    表已创建。
    索引已创建。
    表已创建。
    表已创建。
    视图已建立。
    视图已建立。
    程序包已创建。

    没有错误。

    程序包主体已创建。

    没有错误。

    PL/SQL 过程已成功完成。
    PL/SQL 过程已成功完成。

     

           而在一般情况下,我们一般使用PLSQL Developer工具中的‘compile  Invalid  Objects’来查找失效对象,然后再编译;

    展开全文
  • 错误,嵌入对象无效

    千次阅读 2015-05-12 00:36:15
    1,将visio中画的流程图复制到word文档上时,显示错误 “错误,嵌入对象无效”。 下面看的别人方法: -------------------------------------- 就是做好的图表copy到word...

    1,将visio中画的流程图复制到word文档上时,显示错误 “错误,嵌入对象无效”。

    下面看的别人方法:

    --------------------------------------

    就是做好的图表copy到word的文章当中,结果没有任何反应
    在word中点击插入-对象,选择excel图表,显示“错误!嵌入对象无效。"
    重新更新了office,把什么office工具,共享什么的,都装了,还是没用。

    被这个问题困扰已久,网上google了很长时间也没有找到正确答案,论坛上大家多半是让重新安装,其实这个基本没有作用。
    后来终于想到google一下英文网站,这个错误的英文提示为:Error! Not a valid embedded object
    这一下正好找到解决方案!
    其实问题跟office本身没有关系,而是系统缓存的问题
    而且还是ie的缓存!奇怪罢,我当时看了也觉得不可能,但是改掉后确实就好了。

    具体方法如下:
    Quick Fix 1

    Logon as an Administrator and use Control Panel → Internet Options → General → Settings... → Move Folder... to move the cache directory from C:\Windows\Temporary Internet Files to C:\Documents and Settings\<administrator's username>\Local Settings. Windows will create the Temporary Internet Files folder inside the chosen directory and delete the one from C:\Windows. This fixes the problem for all users until another Administrator logs in.


    系统设置的临时文件夹无效。原因就在这里,是IE缓存出现了问题,是一位名字为Peter Benie 的人发现的。解决办法:尝试着改变一下IE临时文件夹的路径,右键单击IE图标或在网页工具栏中找工具,然后点击Internet选项-常规-浏览历史记录里设置-移动文件夹到o C:/Documents and Settings/<administrator's username>/Local Settings-确定,然后再改一下word中的设置:工具-选项-视图-显示中的图片框前的对号去掉就可以了。
    --------------------------------------------------

    上述方法是转载自别人的,如果你还没有成功,或者觉得上面那个操作太繁琐的话,就请试一下下面这个方法。

    我试了一下还是不能成功,最后没办法只能用了一个比较笨的方法。

    打开   控制面板-》用户账户-》创建一个新账户,权限设置管理员权限

    创建一个新账户后,创建新用户名和密码

    创建完毕后,就需要你切换用户登录了。


    按住WIN+L,选择你新创建的用户名进行登录,登录进去后,再找到你要找的word文档,打开看看,现在再复制一下看看visio图片能否在word上显示了。







    展开全文
  • K3账套注册提示对象名“t_KDAccount_gl”无效处理方案

    症状:数据库迁移到另外一台服务器,重新在中间层服务器注册数据库账套,提示对象名“t_KDAccount_gl”无效,如下图:


    原因:系统注册时默认select默认master表中的t_KDAccount_gl表,如果没有该表会报如上错误,如果创建了该表,但是没有对master的select或者update权限也会报错如下错误:拒绝了对对象‘t_kdaccount_gl’(数据库'master',架构'dbo')的SELECT/update权限:


    解决方法:

    1、在master增加表t_KDAccount_gl表,语句如下:

    USE [master]
    GO
    
    /****** Object:  Table [dbo].[t_kdaccount_gl]    Script Date: 08/29/2017 10:29:25 ******/
    SET ANSI_NULLS ON
    GO
    
    SET QUOTED_IDENTIFIER ON
    GO
    
    SET ANSI_PADDING ON
    GO
    
    CREATE TABLE [dbo].[t_kdaccount_gl](
    	[cid] [smallint] NULL,
    	[cacc_name] [varchar](255) NULL,
    	[cdbname] [varchar](255) NULL,
    	[DBuildDate] [datetime] NULL,
    	[DDuplicateDate] [datetime] NULL,
    	[cDBVersion] [varchar](20) NULL
    ) ON [PRIMARY]
    
    GO
    
    SET ANSI_PADDING OFF
    GO
    
    
    
    2、将K3数据库登录账号赋予master数据库t_KDAccount_gl表的select和update权限。
    3、重新注册账套,系统会将账套信息写入master表,信息如下:


    如上操作即可完成注册账套。

    展开全文
  • SQL对象无效的解决方法,很好很强大,希望对网友有帮助
  • 数据库对象无效 解决方法总结

    万次阅读 2019-02-25 18:11:23
    在数据库里面新建表后显示对象无效,但是在表中能看见,就是无法引用。(强迫症、看着下划线是一排红色的、不爽)。重启sql服务也没有用。 暴力解决方法::关闭SQL管理器,再重新打开。(红色下划线不见了、对象...
  • 我们在sql server2008中编写sql语言时,经常会遇到这样的提示:***对象无效。这是什么错误,为什么在2000版本中就不存在这样的情况呢?其实这主要是sql server 2005/2008版本中新增了架构的概念。下面就结合网上的...
  • 同2.2版本一样,都会自动在一些类似数据库要用到的关键后面加要s(复数),这里也是3.0的一个小Bug,在查询时由于插件并没有完全的去掉s,所以会产生“用户代码未处理SqlException,对象名'xxxs'无效”异常,...
  • 关于使用set去重对象无效的问题

    千次阅读 2019-01-21 20:41:29
    关于使用set去重对象无效的问题 最近使用set去重遇到对于集合为对象的集合,使用set无效的问题解决办法: 假如有一个List users的对象,现在去重集合中重复的user对象,利用set集合特性进行去重 Set&lt;user&...
  • 异常详细信息: System.Exception: 对象名 'FavoriteFold' 无效。 下面是注册的代码: public partial class reg1 : System.Web.UI.Page { public string reg = ""; protected void Page_Load(object sender, ...
  • Oracle数据库重建无效和不可用对象

    千次阅读 2014-09-17 13:58:08
    无效和不可用对象   无效 PL/SQL 对象和不可用索引会对性能产生影响。无效 PL/SQL 对象必须先进行重编译,然后才能使用。这需要在执行尝试访问 PL/SQL 程序包、过程或函数的第一个操作之前花费一段编译时间。如果...
  • 编译Oracle中无效对象的N中方法

    千次阅读 2007-09-18 20:51:00
    编译无效的对象常用方法在数据库中,会存在一些无效的对象,导致...有两种编译无效对象的方式: 1 使用alter **** compile 语句进行编译 2 以SYSDBA用户,执行ORACLE_HOME/rdbms/admin/utlrp.sql 脚本 3 用DBMS_UTIL
  • Python中如何删除Pandas DataFrame对象中的无效值?如何使用特定值填充无效值? 以一个dataframe对象df为例: 1.删除无效值:df.dropna() 2.使用整数5对无效值进行填充:df.fillna(value=5) ...
  • Selection 对象代表窗口或窗格中的当前所选内容。所选内容代表文档中选定(或突出显示)的区域,如果文档中没有选定任何内容,则代表插入点。每个文档窗格只能有一个 Selection 对象,并且在整个应用程序中只能有一...
  • 对象的当前状态使该操作无效

    千次阅读 2017-01-13 16:04:30
     微软在2011年12月29号发布的2011年最后一个更新让哥哥为程序...对象的当前状态使该操作无效。  说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错
  • SQL Server出现对象名和列名无效的解决方法 想必很多朋友在用sql server在学习的时候会遇到过对象名和列名无效的解决方法的情况,我在练习函数创建的时候经常会遇到这个问题,经过不断查找问题终于知道怎么解决这个...
  • SQL Server表能查询出结果为什么提示对象无效

    千次阅读 多人点赞 2019-12-10 14:36:03
    正常显示查询结果,但是sqlserver Management studio就提示红色波浪线,提示对象无效,原因是缓存造成的 处理办法:
  • 对象的当前状态使该操作无效。  说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。  异常详细信息: System....
  • 对象名 'users' 无效。 说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: ...
  • 在本地的AS3客户端的Socket对象调用,conect(host,port)之后,我们就应该要做一个超时的判断处理; 直到,触发了,connected或是error事件时,再关闭超时判断; ef: socket.connect("xxxx.xxx.xxx.xxx",8888);...
  • SpringMVC中Controller处理response.setContentType()及header为"application/json;charset=utf-8"无效问题分析 一. 异常问题 我在SpringMVC中创建了一个处理器Controller,处理器方法内部利用response对象设置...
  • 异常详细信息: System.InvalidOperationException: 对象的当前状态使该操作无效。 源错误:  执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  堆栈...
  • vue中遇到scrollIntoView无效问题处理

    千次阅读 2020-12-28 18:30:18
    scrollIntoViewOptions 可选 一个包含下列属性的对象: behavior 可选 定义动画过渡效果, "auto"或 "smooth"之一。默认为"auto"。 block 可选 定义垂直方向的对齐,"start","center","end", 或 "nearest"之一。...
  • Server 对象, ASP 0177 (0x800401F3)无效

    千次阅读 2012-09-24 17:18:37
    Server 对象, ASP 0177 (0x800401F3)无效 写一个asp程序的时候遇到了标题的错误提示,发现最重要的是注册表的权限问题。  解决方法 1、首先在系统盘中查找scrrun.dll(系统盘:\windows\system32\),如果存在...
  • @Autowired注入的不是代理对象,导致事务回滚失败(@Transactional无效)结论:不要在@Configuration类中的@Bean中直接注入需要成为代理对象对象问题分析我们都知道Spring的事务控制是使用AOP实现的,所以@Autowired...
  • 1报错:分析成功,但执行错误,提示:消息 8197,级别 16,状态 4,过程 trg_readerinfo_del,第 1 行对象 ‘dbo.readerinfo’ 不存在,或对此操作无效。 表readerinfo是存在的,在管理器那看到dbo.readerinfo是存在...
  • jquery append加入新元素后事件无效处理方法 在很多网站上说是使用live就可以用,但是我发现我使用的jquery的版本是1.9,在1.9后live删除了,所以改用on的方法来处理  根据jQuery的官方描述,live方法在1.7中...
  • 多个数据库操作时出现的问题,虽然可以同时建立多个数据库的连接对象, 但是在命令执行时数据库只记住了一个,所以并不能像想象中的那样同时建立好多个数据库的连接对象,也就是说 必须重建B数据库的链接。不同的...
  • 项目中遇到个批处理,需要前台传递一个json格式对象数组,如下: var data={ "wos":[{"id":1,"satisfaction":10,"satisfactionRemark":""}, {"id":2,"satisfaction":20,"satisfactionRemark":""}, {"id...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 218,651
精华内容 87,460
关键字:

处理无效对象