私は、ORACLEテーブルを読み取り専用にしたいと考えています。これは、使用して可能である:テーブルが読み取り専用かどうかをチェックする方法は?
ALTER TABLE table1 READ ONLY;
しかし、TABLE1がすでに、テーブルを変更すると、エラーの原因となっている、読み取り専用されている場合。
したがって、table1が読み取り専用かどうかを確認する方法があります。それがない場合は、 を読み取り専用にする方法があります。
私は、ORACLEテーブルを読み取り専用にしたいと考えています。これは、使用して可能である:テーブルが読み取り専用かどうかをチェックする方法は?
ALTER TABLE table1 READ ONLY;
しかし、TABLE1がすでに、テーブルを変更すると、エラーの原因となっている、読み取り専用されている場合。
したがって、table1が読み取り専用かどうかを確認する方法があります。それがない場合は、 を読み取り専用にする方法があります。
チェックuser_tables
:あなたはテーブルが既に読み取り専用の場合は、エラーを回避すること、必要な場合にのみALTER
を実行するために、動的SQLを使用することができ
select read_only
from user_tables
where table_name = 'TABLE1'
:
DECLARE
vCheck VARCHAR2 (3);
BEGIN
BEGIN
SELECT read_only
INTO vCheck
FROM user_tables
WHERE table_name = 'TABLE1';
EXCEPTION
WHEN NO_DATA_FOUND
THEN
vCheck := 'YES'; -- Avoid ALTER in case of TABLE1 not existing
END;
--
IF vCheck = 'NO'
THEN
EXECUTE IMMEDIATE 'ALTER TABLE TABLE1 READ ONLY';
END IF;
END;