ALTER PROPERTY GRAPH
目的
プロパティ・グラフの基礎となるオブジェクトを変更すると、プロパティ・グラフが無効な状態になることがあります。グラフは、ALTER PROPERTY GRAPH COMPILE
を使用して再検証できます。
前提条件
SYS
およびAUDSYS
以外のスキーマのプロパティ・グラフを変更する場合は、ALTER ANY PROPERTY GRAPH
権限が必要です。
構文
alter_property_graph::=
セマンティクス
IF EXISTS
IF EXISTS
を指定して、既存のプロパティ・グラフを変更します。
ALTER
にIF NOT EXISTS
を指定した場合、コマンドはエラー・メッセージ「ALTER/DROP文のIF EXISTS句が正しくありません。」
で失敗します。
COMPILE
ALTER PROPERTY GRAPH COMPILE
は、実際には有効であっても無効な状態を報告するグラフの再検証に使用します。これは、グラフとそのグラフの基礎となるオブジェクトへの依存性が低すぎるために発生することがあります。そのような場合は、ALTER PROPERTY GRAPH COMPILE
を使用してプロパティ・グラフを再検証するだけで十分な場合があります。
例: 有効なグラフが誤って無効な状態を報告する原因
SQL> create table tbl1(c1 number primary key, c2 number, c3 number, c4 as (c2/c3), c5 as (1 / (c2+c3)));
Table created.
SQL> create property graph g vertex tables(tbl1 properties(c2, c3, c5));
Property graph created.
SQL> select object_name, object_type, status from user_objects where object_type in ('PROPERTY GRAPH', 'TABLE');
OBJECT_NAME OBJECT_TYPE STATUS
-------------------- ----------------------- -------
G PROPERTY GRAPH VALID
TBL1 TABLE VALID
SQL> alter table tbl1 drop column c4;
Table altered.
SQL> select object_name, object_type, status from user_objects where object_type in ('PROPERTY GRAPH', 'TABLE');
OBJECT_NAME OBJECT_TYPE STATUS
-------------------- ----------------------- -------
G PROPERTY GRAPH INVALID
TBL1 TABLE VALID
SQL> alter property graph g compile;
Property graph altered.
SQL> select object_name, object_type, status from user_objects where object_type in ('PROPERTY GRAPH', 'TABLE');
OBJECT_NAME OBJECT_TYPE STATUS
-------------------- ----------------------- -------
G PROPERTY GRAPH VALID
TBL1 TABLE VALID
SQL>
ALTER PROPERTY GRAPH COMPILE
によるグラフの再検証が失敗すると、グラフはエラー状態になります。その場合は、CREATE OR REPLACE PROPERTY GRAPH
を使用してグラフを再定義する必要があります。