iteye_15870
2011-04-28 17:40 阅读 906
已采纳

关于DBA_FREE_SPACE和DBA_DATA_FILES找不到的问题

   最近测试人员在测试的时候发现有个文件没有生成,我看了一下是sh的脚本的问题,其中有这么一段

javaeye 写道

cd $TS_DATA_PATH
TEMP_FILE=TSdate +%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连接,再提升这二个表给这个用户。麻烦。。。。
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    iihero iihero 2011-05-07 13:41

    这两个应该都是DBA权限下可看的view,你得用sys用户去访问才行。 

    点赞 评论 复制链接分享
  • iteye_13903 iteye_13903 2011-05-06 15:59

    这两张是数据字典
    select * from tab 查不到的
    你可以通过select table_name from dict where table_name in('DBA_FREE_FILES','DBA_DATA_FILES')查看

    点赞 评论 复制链接分享
  • iteye_13903 iteye_13903 2011-05-06 16:00

    记得要用sys或者拥有select any table权限的用户查

    点赞 评论 复制链接分享

相关推荐