Oracle管理タイプに依存する表のアップグレード
Oracle Database 12c Release 2 (12.2)以降のリリースでは、Oracle管理タイプに依存するユーザー表を手動でアップグレードする必要があります。
Oracle管理タイプに依存するユーザー表(AQ
キュー表など)がデータベースに含まれる場合、アップグレード後にutluptabdata.sql
コマンドを実行して、Oracle管理タイプの変更の影響を受けるすべてのユーザー表に対してALTER TABLE UPGRADE
を実行します。この動作変更によって、ユーザー表は、アップグレード中にREAD ONLY
状態のままになります。ユーザーは、SYSDBA権限(AS SYSDBA
)を使用してアプリケーションにログインし、Oracle管理タイプに依存するアプリケーション表を変更することができなくなります。
データベースのアップグレードの完了後にアップグレードする必要がある表を特定するには、AS SYSDBA
でデータベースに接続し、次の問合せを実行します。
COLUMN owner FORMAT A30
COLUMN table_name FORMAT A30
SELECT DISTINCT owner, table_name
FROM dba_tab_cols
WHERE data_upgraded = 'NO'
ORDER BY 1,2;
この問合せによって、UPGRADED
としてリストされないすべての表が示されます。ただし、utluptabdata.sql
スクリプトは、Oracle管理タイプに依存する表のみをアップグレードします。問合せによって表がリストされた場合、utluptabdata.sql
スクリプトを実行して依存ユーザー表にALTER TABLE UPGRADE
コマンドを実行し、これらのOracle管理タイプをそのタイプの最新バージョンにアップグレードします。
utluptabdata.sql
スクリプトは、Oracle管理タイプに依存するすべての表に対するALTER
権限を持つユーザー・アカウントか、SYSDBAシステム権限を付与されてAS SYSDBA
でログインしているユーザーを使用して実行する必要があります。
パラメータSERVEROUTPUTがON
に設定されている場合、utluptabdata.sql
スクリプトによって、アップグレードされたすべての表の名前が表示され、表のアップグレード中に発生したエラーがリストされます。サーバー出力をON
に設定するには、次のコマンドを実行します。
SET SERVEROUTPUT ON
@utluptabdata.sql