今天update数据时报出这个错误:ORA-12096 查网上资料,说是表空间不够了,使用表空间利用率查询语句:
SELECT TOTAL.TNAME "表空间名称",
TOTAL.TOTAL_SIZE "表空间大小",
TOTAL.TOTAL_SIZE - USED.FREE_SIZE AS "已使用大小",
USED.FREE_SIZE AS 表空间剩余大小,
ROUND((TOTAL.TOTAL_SIZE - USED.FREE_SIZE) / TOTAL.TOTAL_SIZE, 4) * 100 || '%' AS 表空间使用率
FROM ( -- 表空间数据文件的大小
SELECT TABLESPACE_NAME AS TNAME,
ROUND(SUM(USER_BYTES) / (1024 * 1024), 1) AS TOTAL_SIZE
FROM DBA_DATA_FILES
GROUP BY TABLESPACE_NAME) TOTAL,
( -- 表空间剩余的大小
SELECT TABLESPACE_NAME AS TNAME,
ROUND(SUM(BYTES) / (1024 * 1024), 1) AS FREE_SIZE
FROM DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) USED
WHERE TOTAL.TNAME = USED.TNAME(+)
发现表空间确实不够了,99.75%。然后修改了表空间大小(师傅修改的,我改了没成功!改天自己试试) 然后还是不行,还是报错。自己阅读E文,说到MATERIALIZED VIEW LOG。 这个东东翻译过来是:可视化视图日志?什么,不懂。反正E文说,需要drop掉原来的,create一个新的。 OK,用sys用户执行:
DROP MATERIALIZED VIEW LOG ON [schema.]table;
这里的schema是用户的意思,反正是输入oracle用户名,table是update出错的表名。
然后重新update,ok了。
看来以后要多读E文啊!