Oracle管理タイプに依存する表のアップグレード
Oracle Database 12cリリース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
権限を持つユーザー・アカウントか、またはAS SYSDBA
でログインしているSYSDBAシステム権限を付与されたユーザーを使用して実行する必要があります。
パラメータSERVEROUTPUTがON
に設定されている場合、utluptabdata.sql
スクリプトによって、アップグレードされたすべての表の名前が表示され、表のアップグレード中に発生したエラーがリストされます。サーバー出力をON
に設定するには、次のコマンドを実行します。
SET SERVEROUTPUT ON
@utluptabdata.sql