ヘッダーをスキップ
Oracle Rdb SQLリファレンス・マニュアル
リリース7.2
E06178-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 


$ SQL
SQL> ATTACH 'FILENAME MF_PERSONNEL';
SQL> --
SQL> DECLARE :ERROR INTEGER;
SQL> --
SQL> SELECT EMPLOYEE_ID,SOUNDEX_NAME FROM EMPLOYEES
cont>  LIMIT TO 3 ROWS;
 EMPLOYEE_ID   SOUNDEX_NAME
 00165         NULL
 00190         NULL
 00187         NULL
3 rows selected
SQL> COMMIT;
SQL> --
SQL> BEGIN
cont>  SET :ERROR = CLEAR_SOUNDEX ();
cont> END;
SQL> PRINT :ERROR;
       ERROR
           0
SQL> --
SQL> SELECT EMPLOYEE_ID,SOUNDEX_NAME FROM EMPLOYEES
cont>  LIMIT TO 3 ROWS;
 EMPLOYEE_ID   SOUNDEX_NAME
 00165
 00190
 00187
3 rows selected
SQL> COMMIT;
SQL> --
SQL> SET TRANSACTION READ ONLY;
SQl> BEGIN
cont>  SET :ERROR = 0;
cont>  CALL ADD_SOUNDEX_NAME (:ERROR);
cont> END;
*** ADD_SOUNDEX_NOTIFY activate ***
*** ADD_SOUNDEX_NOTIFY start tran ***
SQL> PRINT :ERROR;
       ERROR
           0
SQL> COMMIT;
*** ADD_SOUNDEX_NOTIFY commit tran ***
*** ADD_SOUNDEX_NOTIFY deactivate ***
SQL> --
SQL> SELECT EMPLOYEE_ID,SOUNDEX_NAME FROM EMPLOYEES
cont>  LIMIT TO 3 ROWS;
 EMPLOYEE_ID   SOUNDEX_NAME
 00165         S501
 00190         O101
 00187         L890
3 rows selected
SQL> COMMIT;
SQL> --
SQL> BEGIN
cont>  SET :ERROR = CLEAR_SOUNDEX ();
cont> END;
SQL> PRINT :ERROR;
       ERROR
           0
SQL> --
SQL> SET TRANSACTION READ ONLY;
SQL> BEGIN
cont>  SET :ERROR = 0;
cont>  CALL ADD_SOUNDEX_NAME (:ERROR);
cont> END;
*** ADD_SOUNDEX_NOTIFY activate ***
*** ADD_SOUNDEX_NOTIFY start tran ***
SQL> PRINT :ERROR;
       ERROR
           0
SQL> ROLLBACK;
*** ADD_SOUNDEX_NOTIFY rollback tran ***
*** ADD_SOUNDEX_NOTIFY deactivate ***
SQL> --
SQL> SELECT EMPLOYEE_ID,SOUNDEX_NAME FROM EMPLOYEES
cont>  LIMIT TO 3 ROWS;
 EMPLOYEE_ID   SOUNDEX_NAME
 00165
 00190
 00187
3 rows selected
SQL> COMMIT;


CREATE SCHEMA文

マルチスキーマ・データベースの現在のデフォルト・カタログに新規スキーマを作成します。

注意

データベースを作成する際のCREATE SCHEMA文の使用は廃止予定の機能です。ルート・ファイル・パラメータなど、データベースの物理属性を指定すると、情報メッセージ付きで、SQLによりデータベースが作成されます。


SQL> CREATE SCHEMA FILENAME TEST SNAPSHOT IS DISABLED;
%SQL-I-DEPR_FEATURE, Deprecated Feature: SCHEMA (meaning DATABASE)

物理属性を指定しない場合は、マルチスキーマ・ネーミングを有効にする必要があることを示すエラー・メッセージが表示されます。


SQL> CREATE SCHEMA PARTS
%SQL-F-SCHCATMULTI, Schemas and catalogs may only be referenced with
multischema enabled

スキーマとは、データベース内の定義グループです。CREATE SCHEMA文を使用すると、単一SQL文で新規スキーマに対してすべてのデータ定義と権限定義を指定できます。スキーマには後で定義を追加することもできます。

スキーマ定義の他にも、データベースにはデータベース・システム・ファイルとユーザー・データも含まれます。データベース・ルート・ファイルまたは記憶域パラメータなど、物理データベース特性を指定する必要がある場合は、CREATE DATABASE文を使用します。詳細は、「CREATE DATABASE文」を参照してください。

CREATE SCHEMA文には、任意の数のオプションのスキーマ要素を指定できます。スキーマ要素は(CREATE STORAGE AREA、CREATE DOMAIN ... FROM path-nameおよびCREATE TABLE ... FROM path-nameを除く)CREATE文のいずれか、またはGRANT文です。

このような文には文の終了記号が必要ですが、CREATE SCHEMA文またはCREATE DATABASE文の一部の場合は不要です。CREATE SCHEMA文の中でこれらの文を使用する場合は、最後のスキーマ要素にのみ文の終了記号を使用します。最初の文の終了記号はCREATE SCHEMA文を終了させます。その後、CREATE文またはGRANT文はCREATE SCHEMA文の有効範囲外になります。


環境

CREATE SCHEMA文は次の環境で使用できます。


形式





引数

AUTHORIZATION auth-id

スキーマ名を指定しない場合、認可識別子によってデフォルト・スキーマが指定されます。

ANSI/ISO 1989規格に準拠する場合は、スキーマ名なしでAUTHORIZATION句を指定します。現在のANSI/ISO SQL規格に準拠する場合は、AUTHORIZATION句とスキーマ名を指定します。

create-collating-sequence-statement

詳細は、「CREATE COLLATING SEQUENCE文」を参照してください。

CREATE SCHEMA文に埋め込まれたCREATE DOMAIN文の照合順番を指定する場合は、最初に同じCREATE SCHEMA文の中でCREATE COLLATING SEQUENCE文を指定する必要があります。

create-domain-statement

詳細は、「CREATE DOMAIN文」を参照してください。

CREATE SCHEMA文にCREATE DOMAIN文を埋め込む場合は、FROM path-name句は使用できません。ただし、CREATE SCHEMA文の後には別のCREATE DOMAIN文を発行できます。CREATE SCHEMA文では、ドメインを直接記述することもできます。

埋込みCREATE DOMAIN文の照合順番を指定する場合は、最初に同じCREATE SCHEMA文の中でCREATE COLLATING SEQUENCE文を指定する必要があります。

create-function-statement

詳細は、「CREATE ROUTINE文」を参照してください。

create-index-statement

詳細は、「CREATE INDEX文」を参照してください。

create-module-statement

詳細は、「CREATE MODULE文」を参照してください。

create-procedure-statement

詳細は、「CREATE ROUTINE文」を参照してください。

create-sequence-statement

詳細は、「CREATE SEQUENCE文」を参照してください。

create-storage-map-statement

詳細は、「CREATE STORAGE MAP文」を参照してください。

create-table-statement

詳細は、「CREATE TABLE文」を参照してください。

CREATE SCHEMA文にCREATE TABLE文を埋め込む場合は、FROM path-name句は使用できません。ただし、CREATE SCHEMA文の後には別のCREATE TABLE文を発行できます。CREATE SCHEMA文では、表を直接記述することもできます。

CREATE SCHEMA文の中のCREATE TABLE文は、作成前のドメインを示すこともできます。ただし、同一のCREATE SCHEMA文にドメインに対するCREATE DOMAIN文が存在する必要があります。

create-trigger-statement

詳細は、「CREATE TRIGGER文」を参照してください。

create-view-statement

詳細は、「CREATE VIEW文」を参照してください。

grant-statement

詳細は、「GRANT文」を参照してください。

schema-element

一部のCREATE文またはGRANT文です。使用可能なCREATE文の完全なリストについては、この項の構文図を参照してください。

schema-name

CREATE SCHEMA文で作成したスキーマの名前を指定します。

スキーマ名は、カタログ名全体、または別名で修飾されたカタログ名で修飾できます。別名とカタログ名の両方を二重引用符で囲み、ピリオドで区切る必要があります。別名とカタログ名のペアを指定する前に、SET QUOTING RULES文を発行する必要がありますが、これを発行しないと、SQLから二重引用符の使用に関するエラー・メッセージが表示されます。

別名とカタログ名を使用したスキーマ名の修飾の詳細は、第2.2.15項を参照してください。


使用方法


例1: マルチスキーマ・データベース内でのスキーマの作成

次の対話型文では、カタログ内のスキーマを含むデータベースを作成します。CREATE SCHEMA文を単体で発行するか、またはCREATE DATABASE文の一部として発行します。


SQL> SET DIALECT 'SQL99';
SQL> CREATE DATABASE ALIAS PERS_ALIAS FILENAME personnel MULTISCHEMA IS ON;
SQL> CREATE CATALOG "PERS_ALIAS.ADMIN";
SQL> CREATE SCHEMA "PERS_ALIAS.ADMIN".PAYROLL;
SQL> SHOW SCHEMAS;
Schemas in database PERS_ALIAS
    "PERS_ALIAS.ADMIN".PAYROLL
    "PERS_ALIAS.RDB$CATALOG".RDB$SCHEMA