oracle同义词
来源:互联网 发布:马自达cx4 知乎 编辑:程序博客网 时间:2024/06/03 15:43
1.什么是同义词?
就是给数据库方案起一个别名
为什么要起别名?用本身名字不好吗?
比如说最近大家很喜欢的演员迪丽热巴,人家全名叫迪丽热巴·迪力木拉提 ,长不长,叫起来累不累,所以起了个小名叫胖迪,简不简单,好不好记,叫起来也容易吧,所以同义词就是这个意思,同义词的存在就是为了使用方便,简化操作,不用打那么长的原名,可以用简短的小名
2.怎么建同义词?
(1)首先要看你目前登陆的用户有没有建同义词的权限,
查看方法:登陆sys,然后select * from session_privs;
但是出来的结果我并不能看懂,尴尬,所以直接创建同义词,如果报没有权限的错,就再授权,简单直接,我喜欢
(2)授予当前用户创建同义词的权限,以scott为例,先登陆system,再授权,scott不能授权给自己
授权语句:
grant create any synonym to scott;
grant create public synonym to scott;
取消授权语句:
revoke create any synoym from scott;
revoke create public synoym from scott;
创建私有同义词语句:
create synonym 别名 for scott.表名;或者create synonym 同义词 for 表名,因为登陆了scott,所以不说也
例如我scott下有一个表叫queshengzhi,现在起一个同义词q,语句就是:create synonym q for scott.queshengzhi;
再查询queshengzhi这个表的内容时就可以用这样的查询语句:select * from q;或者是select * from queshengzhi;这两种查询方法是一样的
这个别名只有scott自己可以用,别人想用必须scott.q才行,也就是说别人想用这个私有同义词需要scott.同义词
删除私有同义词:
drop synonym 同义词
例如 drop synonym q;
创建共有同义词:
create public synonym 同义词 for user.表名
例如create public sysnonym que for scott.queshengzhi;
这样有查找scott下的表的权利的用户就可以用这个同义词了,并且不用scott.同义词,直接select * from que;就可以
删除共有同义词:
drop public synonym 同义词;
例如 drop publicsynonym que;
3.同义词转换不再有效怎么办
可以检查创建时的语句是否有问题
可以检查登陆的用户是否能看到你创建同义词的用户的表
- oracle 同义词
- Oracle--同义词
- oracle 同义词
- oracle同义词
- oracle同义词
- oracle 同义词
- oracle同义词
- oracle同义词
- oracle同义词
- oracle同义词
- oracle同义词
- oracle同义词
- Oracle同义词
- Oracle 同义词
- Oracle同义词
- Oracle同义词
- Oracle 同义词
- Oracle同义词
- Mac安装MySQL初始密码设置
- 深入理解mybatis原理(十一) Mybatis插件原理之实现细节
- 堆的创建,插入,删除
- java 为什么要用封装类
- qte开发环境配置
- oracle同义词
- 深入理解mybatis原理(十二) mybatis深入理解之#与$区别
- 复习
- future
- Spring配置之hibernate事物管理AOP
- Error:Execution failed for task ':app:packageDebug'. > !zip.isFile() 解决方案
- 在SVG中使用Bootstrap或FontAwesome图标字体
- oj 1337: 运动员分组
- Python的hashlib