同一数据库
两个不同用户 user1 user2
user1里面有一张表 table1
在user2里面创建synonym
create synonym sy1 for user1.table1;
创建好之后,直接访问是可以的.
select * from sy1;
是可以取到数据的.
但是放到一个存储过程里
create procedure "proc_test"
is
cursor cur_test is
select * from sy1 where rownum<10;
begin
open cur_test;
close cur_test;
end;
就会报错,说表sy1不存在.
但是如果是不同数据库,建立这样的synonym,反而是可以的.
实在是不明白为什么会这样,请高手赐教.
如下,其中CUSTOMERINFO是当前数据库的表名,TO后面的是要赋给权限的用户。
GRANT ALL ON CUSTOMERINFO TO ESB_ORDER
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步