在oracle数据库中,我们可以使用下面的SQL
标记一个表允许归档create table table1 (col1 number, col2 char(200)) row archival;
,我们可以使用SQL
对列进行归档/反归档update table1 set ora_archive_state=0 where col2='test2';
update table1 set ora_archive_state=1 where col2='test2';
但是在我做所有这些之前,是否有任何方法可以检查表是否已经标记为存档?
您可以检查是否存在隐藏列,例如
SQL> create table t ( x int );
Table created.
SQL> alter table t row archival;
Table altered.
SQL> select column_name, hidden_column
2 from user_tab_cols
3 where table_name = 'T';
COLUMN_NAME HID
------------------------------ ---
X NO
SYS_NC00002$ YES
ORA_ARCHIVE_STATE YES
或者如果你想让它变得更怪异,它是SYS中PROPERTY列的第48位。标签$