我确实尝试在oracle 10g数据库中创建一个存储过程,该过程从另一个表中选择数据dba_segments并插入到另一个表(即 table_space)中。
创建或替换
程序 P_DAILY_ENTRY
是
an_job_id 编号;
开始
插入表空间(表名,最大尺寸,日期最大尺寸)
选择表名,
TRUNC(SUM(字节)/1024) 最大尺寸,
sysdate date_of_max_size
从
(
选择段名表名,所有者,字节
FROM dba_segments
WHERE segment_type = 'TABLE'
联合所有
选择段名表名,所有者,字节
FROM dba_segments
WHERE segment_type = '索引'
)
所有者在哪里(“克拉”)
GROUP BY 表名,所有者
ORDER BY SUM(bytes) DESC;
其他情况除外
回滚;
结束 P_DAILY_ENTRY;
当我运行上面它显示以下两个错误:
- 第 05 行 | 执行 | PL/SQL:忽略 SQL 语句
- 第 12 行 | 执行 | PL/SQL: ORA00942: 表或视图不存在
但是,如果INSERT单独执行语句,它会填充table_space表。