oracle对同义词的解释,[原创]oracle同义词解释
7.8 同义词
同义词是对象的备选名称,如果对象存在同义词,那么任何sql语句都能通过实际名称或通过同义词来访问该对象。同义词看上去似乎没什么作用,然而实际情况并非如此。使用同义词意味着应用程序可以对任何用户起作用,而不考虑哪个模式拥有视图和表,甚至不考虑表驻留在哪个数据库中。考察如下语句:
Select * from hr.employees@prod
发出该语句的用户必须知道员工表由数据库链接PROD标识的数据库中的HR模式拥有(不需要关心数据库连接的细节,它们是一种访问不是目前所登录数据库的其他数据库中对象的方式)。如果用如下语句创建公有同义词:
Create public synonym emp for hr.employee@prod;
那么所有用户都需要输入如下语句:
Select * from emp;
这个语句既提供了数据无关性,又提供了位置透明性。只要调整同义词,就可以在不修改代码的情况下重命名或定义表和视图。
与select语句一样,DML语句可以像访问同义词引用的对象一样访问同义词。
私有同义词是模式对象。它们要么必须在自己的模式中,要么必须用模式名限定。公有同义词的存在与模式无关。任何具有查看权限的用户都可以引用公有同义词,不需要用模式名限定。私有同义词必须在模式中有唯一的名称,而公有同义词可以与模式对象同名。当执行访问不带模式限定符的对象语句时,oracle会先在局部模式中查找对象,只有在局部模式中找不到时才会在公有模式中查找。因此在前面的示例中,如果用户碰巧拥有名为EMP的表,它看到的就是这个表--而不是公有同义词指向的名为EMP的表。
创建同义词的语法如下:
Create synonym别名forobject;
需要为用户授权创建私有同义词的权限,并且进一步授予创建公有同义词的权限。通常,只有数据库管理员能够创建(或删除)公有同义词。这是因为是否存在公有同义词会影响每个用户。
考点:“公有同义词”中的“公有”意味着它不是模式对象,因此不能用模式名做前缀,这并不意味着每个人都具有对公有同义词的访问权限。
删除同义词的语法:
Drop synonym别名;
如果同义词引用的对象(表或试图)被删除,同义词仍然存在。这时试图使用这样的同义词会返回一个错误。在这一方面,同义词的行为方式与视图相同。如果重新创建对象,那么在使用同义词前必须重新编译:
Alter synonym别名compile;
免责申明:本栏目所发资料信息部分来自网络,仅供大家学习、交流。我们尊重原创作者和单位,支持正版。若本文侵犯了您的权益,请直接点击提交联系我们,立刻删除!
oracle对同义词的解释,[原创]oracle同义词解释相关推荐
- Oracle(三):视图、序列、同义词、索引
一.视图 (一)什么是视图 视图是一种数据库对象,是从一个或者多个数据表或视图中导出的虚表,视图所对应的数据并不真正地存储在视图中,而是存储在所引用的数据表中,视图的结构和数据是对数据表进行查询的果. ...
- oracle 未明确列义,案例:Oracle缺少同义词DDL语句无法执行 ORA-00604 ORA-00942
天萃荷净 在执行DDL语句时无法执行,报错ORA 00604 ORA 00942,通过隐含参数来解决同义词问题 在最近的一个客户案例中,因为缺少dual同义词,导致ddl语句无法执行.这里_syste ...
- Oracle笔记(十三) 视图、同义词、索引
一.视图 在之前所学习过的所有的SQL语法之中,查询操作是最麻烦的,如果程序开发人员将大量的精力都浪费在查询的编写上,则肯定影响代码的工作进度,所以一个好的数据库设计人员,除了根据业务的操作设计出数据 ...
- oracle导出导入同义词,使用datapump 导出导入同义词
对于同义词的备份我们有多种方式来实现,如直接通过脚本生成同义词的创建脚本,或者使用dbms_metadata.get_ddl来提取同义词的定义脚本.然而在使用传统的exp或是datapump expd ...
- oracle 视图、索引、序列、同义词
目录 1.视图对象 1.1创建视图 1)简单视图 2)建立只读视图 3)复杂视图 1.2管理视图 1)查看视图定义 2)修改视图定义 3)重新编译视图 4)删除视图 2.索引 2.1索引概述 2.2创 ...
- Oracle索引、视图、序列、同义词、事务、锁机制详解
索引 什么是索引? -- 索引就类似于书的目录,根据目录查询内容会快很多,提高数据查询效率 创建索引有俩种方式 1.Oracle会自动为主键和唯一键创建索引 2.手动创建约束. 那么表中什么样的字段应 ...
- 简单介绍oracle执行计划,Oracle性能优化之oracle中常见的执行计划及其简单解释
一.访问表执行计划 1.table access full:全表扫描.它会访问表中的每一条记录(读取高水位线以内的每一个数据块). 2.table access by user rowid:输入源ro ...
- Oracle中V$SESSION等各表的字段解释,Oracle官方解释
https://www.cnblogs.com/grey-wolf/p/10119219.html Oracle中V$SESSION等各表的字段解释,Oracle官方解释 阅读目录 一.常用的视图 1 ...
- oracle整库的移植,Oracle数据库整机移植技术(原创)
Oracle数据库整机移植技术 本文源自一次做Oracle9i DataGuard测试而产生的思路.前些时间有网友提出因为OS损坏,在硬盘没有损坏的情况下可否将数据库恢复至另一台机器上.现在不管从理论 ...
最新文章
- SELECT INTO 和 replace into SELECT 两种表复制语句
- 从Config文件中读取节点的配置信息
- CMM/CMMI的20年和敏捷十年
- 8.Java有关变量的面试题
- 关于Nocas的几个问题
- python矩阵元素排序,使用Python基于列表值对矩阵列进行排序
- python学习手记 pt1
- Android开发笔记(一百一十二)开发工具
- Struts 2.0 入门
- 麻省理工18年春软件构造课程阅读01“静态检查”
- SQL基本使用-查询表中的记录
- IDEA 远程调试war包
- [TJOI2007]路标设置
- 联想硬盘保护安装linux,【原创参赛】联想硬盘保护系统 (详细说明)
- Android 投屏集成记录
- VBA小程序_对于选中的单元格进行取消合并_选择空值向上填充
- 卷积神经网络 图像识别,卷积神经网络处理图片
- Docker、Docker、Docker
- NXP_RT1172 eFlexPWM 模块简介
- 五菱的“世界上最有名的颜色”系列海报,太令人上头了