需要執行的腳本
當使用CREATE DATABASE指令建立資料庫後,確實需要執行額外的腳本來建立data dictionary views和內建的管理工具:
必要執行的腳本:
1. catalog.sql
SQL> @$ORACLE_HOME/rdbms/admin/catalog.sql
-- 或者
SQL> @?/rdbms/admin/catalog.sql- 功能:建立data dictionary views
- 執行時間:約3分鐘
- 目的:讓使用者能夠更方便、清楚地理解data dictionary內容
2. catproc.sql
SQL> @$ORACLE_HOME/rdbms/admin/catproc.sql
-- 或者
SQL> @?/rdbms/admin/catproc.sql- 功能:建立內建package/procedure/function/trigger
- 執行時間:約30分鐘
- 目的:提供資料庫額外功能,如DBMS_OUTPUT等
替代方案:catcdb.sql
對於CDB,也可以執行:
SQL> @$ORACLE_HOME/rdbms/admin/catcdb.sql這個腳本會自動執行catalog.sql和catproc.sql以及其他相關腳本。
教材中的實際例子
從您的教材可以看到執行前後的差異:
執行前:
SQL> select count(*) from dba_tables;
ERROR: ORA-00942: table or view does not exist
SQL> desc dbms_output
ERROR: ORA-04043: object dbms_output does not exist執行後:
SQL> select count(*) from dba_tables;
COUNT(*)
----------
702
SQL> desc dbms_output --內建package也建立完成
PROCEDURE DISABLE
PROCEDURE ENABLE
...重要說明
-
DBCA vs 手動建立的差異:
- 使用DBCA建立資料庫時,這些腳本會自動執行
- 使用CREATE DATABASE指令手動建立時,需要手動執行這些腳本
-
執行順序:
- 先執行
catalog.sql - 再執行
catproc.sql - 或直接執行
catcdb.sql
- 先執行
-
為什麼需要這些腳本:
CREATE DATABASE只建立了基本的物理結構和系統表- 但DBA常用的views (如DBA_TABLES, DBA_USERS等)和內建packages (如DBMS_OUTPUT等)需要額外建立
所以您的記憶完全正確!手動建立資料庫後確實需要執行這些腳本來完成完整的資料庫建置。