在11.2.0.2中读取AWR报告的过程在11.2.0.3中报错。
由于过程太长,将关键部分简化,分别在10.2和11.2.0.3中运行:
SQL> SELECT * FROM V$VERSION;
BANNER
—————————————————————-
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 –
64bi
PL/SQL Release 10.2.0.4.0 – Production
CORE 10.2.0.4.0 Production
TNS for Linux: Version 10.2.0.4.0 – Production
NLSRTL Version 10.2.0.4.0 – Production
SQL> DECLARE
2 V_DBID NUMBER;
3 V_BEGIN NUMBER;
4 V_END NUMBER;
5 TYPE T_VARCHAR IS TABLE OF VARCHAR2(1500 CHAR) INDEX BY
BINARY_INTEGER;
6 V_REPORT T_VARCHAR;
7 BEGIN
8 SELECT A.DBID, MAX(SNAP_ID – 1), MAX(SNAP_ID)
9 INTO V_DBID, V_BEGIN, V_END
10 FROM DBA_HIST_SNAPSHOT A, V$DATABASE B
11 WHERE A.DBID = B.DBID
12 GROUP BY A.DBID;
13 SELECT OUTPUT
14 BULK COLLECT INTO V_REPORT
15 FROM TABLE(
16 DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML(
17 V_DBID,
18 1,
19 V_BEGIN,
20 V_END,
21 0));
22 END;
23 /
PL/SQL procedure
successfully completed.
10204上运行没有任何问题ÿ