ヘッダーをスキップ

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文は次の環境で使用できます。

> - 対話型SQL内

> - プリコンパイル対象のホスト言語プログラムに埋め込まれる場合

> - SQLモジュールのプロシージャの一部として

> - 動的SQLで動的に実行される文として

## 形式

## 引数

> ### 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項を参照してください。

## 使用方法

> - CREATE SCHEMA文がCREATE DATABASE文の中の従属句の場合は、別名とカタログ名は、最後に作成したスキーマの別名とカタログ名と同一のものか、デフォルトの別名とカタログ名にする必要があります。

## 例

> 例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