【发布时间】:2013-10-13 04:31:33
【问题描述】:
我是Oracle 数据库11g R2 的新手,这是为了获取数据库表空间的信息。我像.sql 一样运行下一个代码:
select TABLESPACE_NAME,
INITIAL_EXTENT,
NEXT_EXTENT,
MIN_EXTENTS,
MAX_EXTENTS,
PCT_INCREASE,
STATUS,
CONTENTS
from dba_tablespaces
order by TABLESPACE_NAME ;
并且工作正常,但是当我尝试在存储过程中运行时:
CREATE OR REPLACE PROCEDURE TABLE_SPACE_INFO AS
BEGIN
select TABLESPACE_NAME,
INITIAL_EXTENT,
NEXT_EXTENT,
MIN_EXTENTS,
MAX_EXTENTS,
PCT_INCREASE,
STATUS,
CONTENTS
from dba_tablespaces
order by TABLESPACE_NAME ;
END TABLE_SPACE_INFO;
我得到一个编译错误:
Error(3,3): PL/SQL: SQL Statement ignored
Error(11,7): PL/SQL: ORA-00942: table or view does not exist
解决方案是什么?为什么会出错?
【问题讨论】:
-
这不是一回事。这里是关于按角色授予,直接运行 SQL 时有效,但在存储的 PL/SQL 代码中使用时会报错
标签: oracle stored-procedures oracle11g