oracle数据库: ORA-01775: 同义词的循环链问题
原因: 因为存在同义词,但同义词没有相应的对象(对应的表,等对象 被删了)。
删除数据库对象,但是忘记删除同义词。
删除一个用户,但忘记删除此用户中相关的同名。
创建同名时,同名对应的数据库对象已经被删掉了。
解决方法: 网上有很多解决方法。
1.一般同义词是和表名或者视图名一样的。这样方便使用。
select * from dba_synonyms where table_owner='TEST' and synonym_name<>table_name;
这里table_owner是你的用户 synonym_name是同义词名称 table_name 是表名。先看一下是否有不一样的。
2.select * from dba_synonyms
where table_owner='HD40'
and
synonym_name in
(select a.synonym_name from dba_synonyms a where a.table_owner='HD40'
minus
select object_name from user_objects)
dba_synonyms是存储 同义词和表名等对象的关联表。
这条语句 查出,存在同义词,但是table_name对应的表或者对象已经被删了。
你会发现查询这些同义词都报同义词循环链错误。
一般就是这个原因。
网上说的查询结果,然后删除,其实就是删除这些数据。
或者你再创建出表等对象。
解决方案:重新创建数据表!
oracle 建表语句:CREATE TABLE table_name(id varchar2(32) not null,primary key (fu_id));
mysql 建表语句:CREATE TABLEtable_name(id int,name varchar(20) primary key(id));
sqlserver 建表语句:create tabletable_name (idint identity(1,1) primary key) go
|
oracle数据库: ORA-01775: 同义词的循环链问题 原因:因为存在同义词,但同义词没有相应的对象(对应的表,等对象 被删了)。 删除数据库对象,但是忘记删除同义词。 删除一个用户,但忘记删除此用户中相关的同名。 创建同名时,同名对应的数据库对象已经被删掉了。 ...
昨天在qq群里看到有人在问
同义词
的
循环
链
的
问题
,一时感兴趣,就分析了下。
顾名思义,就是
同义词
A指向
同义词
B,而
同义词
B又指向
同义词
A,导致死
循环
。
(1)下面先看一下如何导致
同义词
的
循环
链
。
以scott用户登录测试库,依次执行下面的代码:
create table t1 (id number,name varchar2(32));
create table t2 (id number
在工作中,有时会遇到
ORA
-
01775
: looping chain of synonyms的错误,你发现
同义词
中,没有其他叫这个名字的
同义词
,但实际是有的,怎么找出这个存在的
循环
同义词
呢:
SQL> CREATE OR REPLACE PACKAGE BODY sys.dbms_logmnr_internal wrapped
Warning: Package Body created with compilation errors.
使用以下语句,可以查找到
同义词
:
SQL> startup nomount;
ORA
-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORA
-16032: parameter LOG_ARCHIVE_DEST destination string cannot be translated
ORA
-07286: sksagdi: cannot obtain device information.
Linux-x86_64 Error: 2: No
Oracle
中
同义词
是任何表、视图、物化视图、序列、存储过程、函数、包、类型、JAVA类对象、用户定义类型,或是其他的
同义词
的别名。由于其只是一个别名,所以除了在数据字典中的定义不占任何空间。
同义词
常用于安全和方便。例如,它们可以做:
1.伪装对象名称和其所有者。
2.为分布式
数据库
远程对象提供位置透明性
3.简化
数据库
用户访问对象SQL语句
4.当行使精细化访问控制时提供类似指定视...
最近在工作中遇到了一个
问题
,错误是
Oracle
dbca时报错:
ORA
-12547: TNS:lost contact,通过查找相关的资料终于找到了解决的方法,下面分享给大家,话不多说了,来一起看看详细的介绍吧。
OS:RHEL6.5 x86-64bit
DB:11.2.0.4 for Linux 86-64bit
DBCA报错,首先看DBCA的日志,日志中也是报
ORA
-12547: TNS:lost contact
于是再sqlplus / as sysdba敲回车,也是报
ORA
-12547: TNS:lost contact,
基于之前的工程经验,先
数据库
疑难杂症 java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘order’ at line 1
数据库
报错如下:
Error querying database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL
ORA
-12154:TNS:无法解析指定的连接标识符
ORA
-12154:TNS:无监听程序
错误分析一、PL/SQL 客户端登录到
数据库
,如果配置错误会有以上错误,如下图。
这个错误主要是pl/sql客户端的tnsnames.
ora
配置错误,或者是输入 database选项错误。
错误分析二、未配置环境变量
所以解决
问题
之前一定要配置环境变量TNS_ADMIN
path添加;E:\PLSQL Developer(64)\instantclient_11_2
配置环境变量就是为了让PL/SQL Developer打开时加载到tnsnames.
ora
文件的内容
配置pl/sql的Datab
SQL> select* from dba_synonyms where table_owner='t1';
OWNER SYNONYM_NAME TABLE_OWNER TABLE_NAME DB_LINK
-------
CSDN-Ada助手:
2020-10-26:自定义3个注解解决项目的3个Swagger难题(转载)
x_u_xiang:
小柏实战学习Liunx(图文教程八)
普通网友:
小柏实战学习Liunx(图文教程十三)
普通网友: