Oracle中同义词 Synonym

在a用户名下创建了表t_test,在代码中配置文件里访问数据库的用户名是b。

通过Mybatis-plus操作数据库,实体类上的注解里直接写的表名t_test,表名前没有加用户名前缀。

前端进行查询后没有查询到内容,通过查看后端日志发现报错:表或者视图不存在。因为以前遇到过这种报错,所以一下就判断出创建表的时候没有加同义词,导致在b用户名下直接访问不到t_test这个表。要是以前能重视这个问题,每次在创建表的时候及时加上同义词,也不会再遇到这种报错了。

通过a用户名登录进数据库,通过下面查询语句可以直接查询到内容,因为是在a用户名下创建的表。

select c.* from t_test c;

然后再通过b用户名登录数据库,通过下面的查询语句查询报错:表或者视图不存在,和代码中报一样的错。

select c.* from t_test c;

在表名之前加上用户名a之后再次查询,这次查询到了内容,果然还是同义词的原因。

select c.* from a.t_test c;

在通过b用户名登录进去的数据库中执行以下同义词语句:

create synonym t_test for a.t_test;

然后再直接查询表名:

select c.* from t_test c;

这次终于查询到结果了。如果一开始创建表的时候加上上面的同义词语句,就不会遇到后面的问题了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值