一个同义词的问题

firestars 2002-11-20 10:32:44
在用户a中想访问用户b中的table表,在a中建立了一个同义词:create synonym
table for b.table,请大家看看对不对??建立了后执行select * from table 时却提示synonomy translation is no longer valid请问怎么回事?
...全文
65 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
penitent 2002-11-20
  • 打赏
  • 举报
回复
1、数据链路
2、合适的权限
hosia 2002-11-20
  • 打赏
  • 举报
回复

1。你最好用b用户建立一个public的同义词,语法为:create public synonym 同义词名 for b.table。
2。a,b用户不在同一机器,你需要通过数据库链接dblink将他们连接起来。在a上建立dblink语法为:create database link dblink_name connect to username identified by password;
其中,username/password 为连接到b所在数据库的用户名和密码。
3。然后用select * from 同义词名@dblink_name;
winkiky 2002-11-20
  • 打赏
  • 举报
回复
是这样的,在a中创建的别名只能在a中使用,无论其表在那个用户,
但是在b中就无法识别了,在Oracle里所有的东西都是以用户为根进行组织的
一点拙见!!:)
firestars 2002-11-20
  • 打赏
  • 举报
回复
哦,还要另外a和b的数据库不在同一台主机上。
luckysxn 2002-11-20
  • 打赏
  • 举报
回复
up
csdnyork 2002-11-20
  • 打赏
  • 举报
回复
在b中对a授select权
LiGun 2002-11-20
  • 打赏
  • 举报
回复
建完后,别忘了COMMIT;
firestars 2002-11-20
  • 打赏
  • 举报
回复
上面好像不是太准确吧,怎么会连数据库所在机器地址都不管??

17,381

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧