Oracle同义词与序列基本使用

一、同义词

同义词:同义词是一个对象的替代名称
作用:利用同义词可以很方便地操纵不同用户模式下的对象。
通过select user from dual查看当前使用的用户。
访问其它用户模式下的表:
select * from scott.dept; 表示查看scott用户模式下的dept表数据。
同义词分为private publicprivate仅创建的用户可以使用。public则所有用户都可以使用。
语法:
CREATE SYNONYN DEPT FOR SCOTT.DEPT;
表示将scoot用户下的dept表,创建为当前用户的同义词。默认为private
通过drop synonym dept删除。
create public synonym dept for scott.dept;
表示创建一个公共的,在其它用户模式下也同样的进行查询。
相关问题及解决方法

举例说明:
问题描述:
有两个oralce数据库
SID
分别为 A B
A
a用户下含有表T_USERS
B
中含有b用户
要求在B中用b用户登录后执行
select * from T_USERS
T_USERS为同义词的名称)
能显示出Aa.T_USERS的全部内容

问题解答:

b用户登录到B中,执行:

create public synonym T_USERS for a.T_USERS@A    àB上建立的对A的数据库链接

此时执行select * from T_USERS 就能显示出a.T_USERS的全部内容(当然这里的T_USERS可以改为其他的名称)

 

需要注意的一点:

B中不能含有名称为b.T_USERS的表,否则语句可以执行,但是执行select操作时显示的仍然为b.T_USERS 的内容,需要先把b.T_USERS删除掉,重新建立synonym即可。

 

二、序列
作用:独立的事务,按一定的增量自动增加或减少,一组整型值。

语法:
  create sequence myseq
  start with 1 --1开始
  increment by 1 --每次增加1
  order --从小到大排序
  nocycle;--为了避免取到重复值,不进行序列循环,此项为影响性能,使数据库被迫访问磁盘。

使用方法:
  select myseq.nextval from dual;
  通过nextval取得下一个值。
  通过select myseq.currval from dual; 查看当前序列的值。
  如果数据库重启,不能马上通过currval来查看序列的当前值,
  要通过nextval取完值后,再通过currval查看当前序列的值。
  desc dba_sequences 查看dbasequence的情况。同样包括all_sequences,user_sequences.

修改序列递增是:
  ALTER SEQUENCE MYSEQ
  INCREMENT BY 3;
  通过修改的方式修改序列的递增量。但不能修改序列的当前值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值