Oracle表空间访问问题

hzy_731035 2008-12-11 10:29:14
我在表空间A下创建了一个存储过程去访问表空间B下的table1时报出“表和视图不存在”:
create or replace procedure Get_dmmc(s in varchar2) is
v_dmmc varchar2(50);
v_s_sql varchar2(200);
begin
v_s_sql:='select field1 from 表空间B.table1 where field1 =:field1';
execute immediate v_s_sql into v_dmmc using s;
dbms_output.put_line(v_dmmc);
end;

请问如何解决这样的的问题?
谢谢!
...全文
168 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
whqcfp 2009-05-13
  • 打赏
  • 举报
回复
zzWind 2008-12-19
  • 打赏
  • 举报
回复
需要显示授权的。
wjw2004 2008-12-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hzy_731035 的回复:]
谢谢,我的两个表空间名下的两个用户名都与表空间名是致的。
当前用户访问表空间B下用户的数据要以那个用户进去分配访问权限?
[/Quote]

B用户将select权限授给A用户。
whqcfp 2008-12-13
  • 打赏
  • 举报
回复
表空间只是存放数据的地方,具体的对象是属于用户的,


你要访问可以通过用户访问。
icss_zhen 2008-12-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hzy_731035 的回复:]
谢谢,我的两个表空间名下的两个用户名都与表空间名是致的。
当前用户访问表空间B下用户的数据要以那个用户进去分配访问权限?
[/Quote]可用sys用户去给当前用户分配select另一个用户的权限,而不能用自身用户给自己分配权限
hzy_731035 2008-12-11
  • 打赏
  • 举报
回复
谢谢,我的两个表空间名下的两个用户名都与表空间名是致的。
当前用户访问表空间B下用户的数据要以那个用户进去分配访问权限?
hugh_9 2008-12-11
  • 打赏
  • 举报
回复
'select field1 from 表空间B.table1 where field1 =:field1'
将表空间B换成 用户user,也叫作SCHEMA;
另外当前用户也要有 访问该用户下的table1表的权限。
duqiangatom 2008-12-11
  • 打赏
  • 举报
回复
楼主弄错了,SCHEMA.OBJECT点号前面的那个是这个对象的拥有者,你错把表空间当成对象的拥有者,那数据库如果没有《表空间B》肯定找不到这个对象。即使你授权也没用。概念混淆了。
sleepzzzzz 2008-12-11
  • 打赏
  • 举报
回复
使用sys,执行:

grant select on B.table1 to yourUser;
范佩西_11 2008-12-11
  • 打赏
  • 举报
回复
表空间b改成user
sleepzzzzz 2008-12-11
  • 打赏
  • 举报
回复
grant select B.table1 to yourUser;  -- B是表table1所有者的用户名,不是表空间

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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