错误提示:表或视图不存在
流程:登录sqlplus 用户是sys/tianfei123 as sysdba
导入dmp文件:imp userid=sys/tianfei123 full=y file=myeln.dmp
创建新用户:Create user tianfei identified by tianfei;
赋予用户权限:grant connect, resource,dba to tianfei;
推出:sqlplus。
登录:pl/sql 用户名:tianfei 密码:tianfei 方式:normal
打开sql窗口: 1 使用sql语句:select * from userinfo
报错:表或视图不存在
2 使用sql语句 select * from sys.userinfo
信息正确显示。 因为我要在java中连接该数据库,不可能在每个表前都要加上sys,能不能直接给tianfei用户授权,使该用户能直接使用
select * from userinfo ,语句,而不报错误。
谢谢大家的帮助。
流程:登录sqlplus 用户是sys/tianfei123 as sysdba
导入dmp文件:imp userid=sys/tianfei123 full=y file=myeln.dmp
创建新用户:Create user tianfei identified by tianfei;
赋予用户权限:grant connect, resource,dba to tianfei;
推出:sqlplus。
登录:pl/sql 用户名:tianfei 密码:tianfei 方式:normal
打开sql窗口: 1 使用sql语句:select * from userinfo
报错:表或视图不存在
2 使用sql语句 select * from sys.userinfo
信息正确显示。 因为我要在java中连接该数据库,不可能在每个表前都要加上sys,能不能直接给tianfei用户授权,使该用户能直接使用
select * from userinfo ,语句,而不报错误。
谢谢大家的帮助。
针对oracle数据库的叫dblink的方式。两外synchoyn还可以针对view等。
select * from mwx.student
声明: create synonym 同义次名称 for 对象。
create synonym dep for mwx.student;表示把mwx用户对应的方案的表student,取个别名dep。可以直接用 select * from dep
alter session set current_schema=sys;这样,会话就可以直接解析 sys 架构下的对象。
对 也可以改变会话架构 很好alter session set current_schema=sys(拥有对象的用户)
grant select on sys.userinfo to tianfei
那么可不可以用这个流程呢?
用C得方式简单写一下。
SELECT NVL(OWNER || '.' || OBJECT_NAME,'')
INTO :TABLENAME
FROM ALL_OBJECTS;if(strlen(TABLENAME)==0)
return -1;select * from TABLENAME;TABLENAME是你想要的表,因为每次真正读表之前都作了对象的所属用户和对象名字的拼接,所以查询的每一次结果都是真正存在的表(或者别的同义词什么的)