最近测试人员在测试的时候发现有个文件没有生成,我看了一下是sh的脚本的问题,其中有这么一段
javaeye 写道
cd $TS_DATA_PATH
TEMP_FILE=TS
date +%Y%m%d%H%M%S
sqlplus -s $ORACLE_USER_PASSWD > $TEMP_FILE 2>&1 <<EOF
set pagesize 0;
set linesize 1000;
set feedback off;
set heading off;
WHENEVER OSERROR EXIT FAILUR
WHENEVER SQLERROR EXIT FAILURE
select a.tablespace_name||','||a.file_name||','||to_char(a.bytes)||','||to_char(a.bytes-sum(nvl(b.bytes,0)))||','||a.status
from dba_data_files a, dba_free_space b
where a.file_id=b.file_id(+)
group by a.tablespace_name ,a.file_name,a.bytes,a.status
order by a.tablespace_name;
EOF
主要就是从ORACLE数据库拿到表空间的信息; 但是错误报出是:table or view do not exit。
然后我在服务器上用sqlplus 用户名/密码@SERVER_NAME 登陆到数据库,然后用SQL>select * from tab 并没有找到DBA_FREE_FILES 和 DBA_DATA_FILES这2个表。
我想请教的是:这二个表是不是和用户的权限有关系? 如果有的话是不是我使用的这个用户没有这个权限看到这二个表?
问题补充
恩,的确是权限的问题;
问题补充
需要在服务器上面找到oracle用户,然后用SQLPLUS连接,再提升这二个表给这个用户。麻烦。。。。