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同义词解释相关推荐

  1. Oracle(三):视图、序列、同义词、索引

    一.视图 (一)什么是视图 视图是一种数据库对象,是从一个或者多个数据表或视图中导出的虚表,视图所对应的数据并不真正地存储在视图中,而是存储在所引用的数据表中,视图的结构和数据是对数据表进行查询的果. ...

  2. oracle 未明确列义,案例:Oracle缺少同义词DDL语句无法执行 ORA-00604 ORA-00942

    天萃荷净 在执行DDL语句时无法执行,报错ORA 00604 ORA 00942,通过隐含参数来解决同义词问题 在最近的一个客户案例中,因为缺少dual同义词,导致ddl语句无法执行.这里_syste ...

  3. Oracle笔记(十三) 视图、同义词、索引

    一.视图 在之前所学习过的所有的SQL语法之中,查询操作是最麻烦的,如果程序开发人员将大量的精力都浪费在查询的编写上,则肯定影响代码的工作进度,所以一个好的数据库设计人员,除了根据业务的操作设计出数据 ...

  4. oracle导出导入同义词,使用datapump 导出导入同义词

    对于同义词的备份我们有多种方式来实现,如直接通过脚本生成同义词的创建脚本,或者使用dbms_metadata.get_ddl来提取同义词的定义脚本.然而在使用传统的exp或是datapump expd ...

  5. oracle 视图、索引、序列、同义词

    目录 1.视图对象 1.1创建视图 1)简单视图 2)建立只读视图 3)复杂视图 1.2管理视图 1)查看视图定义 2)修改视图定义 3)重新编译视图 4)删除视图 2.索引 2.1索引概述 2.2创 ...

  6. Oracle索引、视图、序列、同义词、事务、锁机制详解

    索引 什么是索引? -- 索引就类似于书的目录,根据目录查询内容会快很多,提高数据查询效率 创建索引有俩种方式 1.Oracle会自动为主键和唯一键创建索引 2.手动创建约束. 那么表中什么样的字段应 ...

  7. 简单介绍oracle执行计划,Oracle性能优化之oracle中常见的执行计划及其简单解释

    一.访问表执行计划 1.table access full:全表扫描.它会访问表中的每一条记录(读取高水位线以内的每一个数据块). 2.table access by user rowid:输入源ro ...

  8. Oracle中V$SESSION等各表的字段解释,Oracle官方解释

    https://www.cnblogs.com/grey-wolf/p/10119219.html Oracle中V$SESSION等各表的字段解释,Oracle官方解释 阅读目录 一.常用的视图 1 ...

  9. oracle整库的移植,Oracle数据库整机移植技术(原创)

    Oracle数据库整机移植技术 本文源自一次做Oracle9i DataGuard测试而产生的思路.前些时间有网友提出因为OS损坏,在硬盘没有损坏的情况下可否将数据库恢复至另一台机器上.现在不管从理论 ...

最新文章

  1. ACMNO.18 C语言-选择排序 用选择法对10个整数从小到大排序。 输入 10个整数 输出 排序好的10个整数
  2. Xshell6和Xftp下载地址,rzsz的使用
  3. linux驱动由浅入深系列链接
  4. c语言实战1200例 pdf6,C语言程序设计6.6.2.pdf
  5. 使用C#编程解决数独求解(从图片识别到数独求解)
  6. redis php怎么使用教程,PHP 使用redis
  7. SQLite3基本使用从shell到python
  8. Zookeeper深入系列-从Zookeeper中深入JMX原理
  9. 特斯拉入驻天猫卖车了 将连做8天直播
  10. java Guide 面试指南
  11. 【知识图谱】Neo4j 删除、清空数据库的方法
  12. Maven下载安装及修改setting内容
  13. mapabc 地图失效不能进行任何操作
  14. 企业微信开发----H5发送表单请求到企业微信内部审核
  15. 【杂文】NOIP2018 蒟蒻自闭记
  16. Redis_Study
  17. css中img间有空隙
  18. 网状结构(图)的基本知识——图的基本概念
  19. 教你怎么不添加付款方式订阅苹果arcade
  20. 身份证工具-IdcardUtil案例

热门文章

  1. Cubase全版本下载
  2. 用于高NA显微镜成像的工程化PSF
  3. dplyr包的copy版--poorman包应用实例
  4. js实现轮播图(点击小图片切换大图片+自动切换)
  5. [项目] 游戏项目常用工具纪要
  6. 设计电梯软件部分的测试用例
  7. [2022]李宏毅深度学习与机器学习第四讲(选修)-GNN
  8. 加速器:Expect脚本
  9. wavecom java_使用java操作wavecom短信猫来发短信的方法
  10. 给宝宝做一个cocos免费游戏-Node树和场景制作