「全か無か」の DDL を実行する方法はありますが、非常に限定された方法 (CREATE SCHEMA
ステートメント) でのみ実行できます。
たとえば、次のCREATE SCHEMA
ステートメントは 2 つのテーブルと を作成しようとしT1
ますT2
。ただし、DDLT2
は正しくありません。どちらのテーブルも作成されません。
SQL> REM Verify the tables do not already exist.
SQL> SELECT * FROM T1;
SELECT * FROM T1
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> SELECT * FROM T2;
SELECT * FROM T2
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> CREATE SCHEMA AUTHORIZATION TEST
2 CREATE TABLE T1
3 (
4 X NUMBER PRIMARY KEY
5 )
6 CREATE TABLE T2
7 (
8 -- Try to reference a column that does not exist.
9 X NUMBER REFERENCES T1(Y)
10 );
X NUMBER REFERENCES T1(Y)
*
ERROR at line 9:
ORA-02428: could not add foreign key reference
ORA-00904: "Y": invalid identifier
SQL> REM Verify the tables still don't exist.
SQL> SELECT * FROM T1;
SELECT * FROM T1
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> SELECT * FROM T2;
SELECT * FROM T2
*
ERROR at line 1:
ORA-00942: table or view does not exist
ただし、、およびステートメントCREATE SCHEMA
のみをサポートするという制限があります。CREATE TABLE
CREATE VIEW
GRANT