ヘッダーをスキップ

Oracle Rdb SQLリファレンス・マニュアル リリース7.2 E06178-01 |
| 目次 | 索引

戻る | 次へ |

例2: レポジトリを使用しないデータベースの作成

この例では、次を示しています。

- デフォルトの作業ディレクトリでのデータベース・ルート・ファイルacct.rdbの作成

- デフォルトの作業ディレクトリでのスナップショット・ファイルacct.snpの作成

- リポジトリ内にデータベース定義を保存しない

- スナップショット・ファイルへの書込みの有効化

- スナップショット・ファイルの割当てを200ページに設定

    SQL>    CREATE DATABASE ALIAS acct
    cont>     FILENAME acct
    cont>     SNAPSHOT IS ENABLED IMMEDIATE
    cont>     SNAPSHOT ALLOCATION IS 200 PAGES;

例3: スナップショット・ファイルを無効化したデータベースの作成

この文は、データベース・ルート・ファイルを作成し、ディスク領域を節約するためにスナップショットの書込みを無効化して、初期割当てサイズを1に設定します。

    SQL>    CREATE DATABASE ALIAS PERS
    cont>     FILENAME personnel
    cont>     SNAPSHOT IS DISABLED
    cont>     SNAPSHOT ALLOCATION IS 1 PAGES;

例4: ANSI/ISOスタイルの権限を持つデータベースの作成

この文は、すべてのANSI/ISOスタイルの権限がデータベース作成者WARRINGに付与され、識別子[*,*]というPUBLIC識別子には権限が付与されないデータベースを作成します。

    SQL>    CREATE DATABASE ALIAS EXAMPLE
    cont>     FILENAME ansi_test
    cont>     PROTECTION IS ANSI;
    SQL>
    SQL> SHOW PROTECTION ON DATABASE EXAMPLE;
    Protection on Alias EXAMPLE
    [SQL,WARRING]:
      With Grant Option:        SELECT,INSERT,UPDATE,DELETE,SHOW,CREATE,ALTER,DROP,
                                DBCTRL,OPERATOR,DBADM,SECURITY,DISTRIBTRAN
      Without Grant Option:     NONE
    [*,*]:
      With Grant Option:        NONE
      Without Grant Option:     NONE

例5: GERMANという照合順番を持つデータベースの作成

この文は、LITERATUREという名前のデータベースを作成し、GERMANという名前の照合順番を指定します（NCSライブラリで定義されているGERMAN照合順番に基づく）。

    SQL> CREATE DATABASE FILENAME literature
    cont> COLLATING SEQUENCE GERMAN GERMAN;
    SQL> SHOW COLLATING SEQUENCE
    User collating sequences in schema with filename LITERATURE
         GERMAN

例6: グローバル・バッファを持つデータベースの作成

この文は、parts.rdbという名前のデータベースを作成します。

    SQL> CREATE DATABASE ALIAS PARTS FILENAME parts
    cont> GLOBAL BUFFERS ARE ENABLED (NUMBER IS 110, USER LIMIT IS 17);

例7: データベースのデフォルト・キャラクタ・セットと各国語キャラクタ・セットを指定したデータベースの作成

次のSQL文は、データベースのデフォルト・キャラクタ・セットをDEC_KANJI、各国語キャラクタ・セットをKANJIと指定してデータベースを作成します。SHOW DATABASE文を使用してデータベース設定を表示します。

    SQL> SET DIALECT 'SQL99';
    SQL> CREATE DATABASE FILENAME mia_char_set
    cont>    DEFAULT CHARACTER SET DEC_KANJI
    cont>    NATIONAL CHARACTER SET KANJI
    cont>    IDENTIFIER CHARACTER SET DEC_KANJI;
    SQL> --
    SQL> SHOW CHARACTER SET;
    Default character set is DEC_MCS
    National character set is DEC_MCS
    Identifier character set is DEC_MCS
    Literal character set is DEC_MCS
    Display character set is UNSPECIFIED

    Alias RDB$DBHANDLE:
            Identifier character set is DEC_KANJI
            Default character set is DEC_KANJI
            National character set is KANJI

SHOW CHARACTER SETS文の詳細は、「SHOW文」を参照してください。

例8: 次の方法を示す例

- 複数ファイルのデータベースの作成

- ジャーナル・ファイル、記憶域および行キャッシュ用のスロットの予約

- 現在のセッションに対するデータベースへのアクセス制限

- システム索引圧縮、行キャッシュおよびワークロード収集の有効化

- 統計収集およびカーディナリティ収集の無効化

- デフォルトの記憶域の指定

- データベースのロック・レベルのデフォルトとしてのROWの指定

- データベースのクローズを遅らせる方法

- 行キャッシュの作成および記憶域への割当て

- リカバリ・ユニット・ジャーナル・ファイルの場所の指定

    SQL> CREATE DATABASE FILENAME sample
    cont>   SNAPSHOT IS DISABLED
    cont>   RESERVE 10 JOURNALS
    cont>   RESERVE 10 STORAGE AREAS
    cont>   RESERVE 5 CACHE SLOTS
    cont>   SYSTEM INDEX COMPRESSION IS ENABLED
    cont>   ROW CACHE IS ENABLED
    cont>   WORKLOAD COLLECTION IS ENABLED
    cont>   RESTRICTED ACCESS
    cont>   STATISTICS COLLECTION IS DISABLED
    cont>   CARDINALITY COLLECTION IS DISABLED
    cont>   LOCKING IS ROW LEVEL
    cont>   DEFAULT STORAGE AREA IS area1
    cont>   OPEN IS AUTOMATIC (WAIT 5 MINUTES FOR CLOSE)
    cont>   RECOVERY JOURNAL (LOCATION IS 'SQL_USER1:[DAY]')
    cont> CREATE CACHE cache1
    cont>   CACHE SIZE IS 1000 ROWS
    cont>   ROW LENGTH IS 1000 BYTES
    cont> CREATE STORAGE AREA area1
    cont>   CACHE USING cache1;
    SQL>
    SQL> SHOW DATABASE *;
    Default alias:
        Oracle Rdb database in file sample
            Multischema mode is disabled
            Number of users:               50
            Number of nodes:               16
            Buffer Size (blocks/buffer):   6
            Number of Buffers:             20
            Number of Recovery Buffers:    20
            Snapshots are Disabled
            Carry over locks are enabled
            Lock timeout interval is 0 seconds
            Adjustable lock granularity is enabled (count is 3)
            Global buffers are disabled (number is 250, user limit is 5,
                      page transfer via disk)
            Journal fast commit is disabled
                    ( checkpoint interval is 0 blocks,
                      checkpoint timed every 0 seconds,
                      no commit to journal optimization,
                      transaction interval is 256 )
            AIJ File Allocation:           512
            AIJ File Extent:               512
            Statistics Collection is DISABLED
            Unused Storage Areas:          10
            Unused Journals:               10
            System Index Compression is ENABLED
            Restricted Access
            Journal is Disabled
            Backup Server:   Manual
            Log Server:      Manual
            Overwrite:       Disabled
            Notification:    Disabled
            Asynchronous Prefetch is Enabled (depth is 5)
            Asynchronous Batch Write is Enabled (clean buffers 5, max buffers 4)
            Lock Partitioning is DISABLED
            Incremental Backup Scan Optim uses SPAM pages
            Shutdown Time is 60 minutes
            Unused Cache Slots:          5
            Workload Collection is Enabled
            Cardinality Collection is Disabled
            Metadata Changes are Enabled
            Row Cache is Enabled (Sweep interval is 1 second,
             No Location)
            Detected Asynch Prefetch is Enabled (depth is 4, threshold is 4)
            Default Storage Area AREA1
            Mode is Open Automatic (Wait 5 minutes for close)
            RUJ File Location SQL_USER1:[DAY]
            Database Transaction Mode(s) Enabled:
                ALL
            Dictionary Not Required
            ACL based protections
    Storage Areas in database with filename sample
         RDB$SYSTEM                      List storage area.
         AREA1                           Default storage area.
    Journals in database with filename sample
         No Journals Found
    Cache Objects in database with filename sample
         CACHE1
    SQL> SHOW CACHE cache1;

         CACHE1
            Cache Size:            1000 rows
            Row Length:            1000 bytes
            Row Replacement:       Enabled
            Shared Memory:         Process
            Large Memory:          Disabled
            Window Count:          100
            Reserved Rows:         20
            Sweep Rows:            3000
         Reserving Slots for Sequences
        No Sweep Thresholds
            Allocation:            100 blocks
            Extent:                100 blocks

例9: 順序用のスロットの予約

    SQL> CREATE DATABASE FILENAME many_sequences
    cont> RESERVE 320 SEQUENCES;

例10: 行キャッシュを持つデータベースの作成

    SQL> create database
    cont>     filename SAMPLE
    cont>     snapshot is disabled
    cont>     reserve 10 journals
    cont>     reserve 10 storage areas
    cont>     reserve 5 cache slots
    cont>     system index (compression is enabled, type sorted ranked)
    cont>     row cache is enabled
    cont>     workload collection is enabled
    cont>     restricted access
    cont>     default storage area is AREA1
    cont>     open is automatic (wait 5 minutes for close)
    cont>
    cont>     create cache CACHE_AREA1
    cont>         shared memory is process
    cont>         row length is 1000 bytes
    cont>         cache size is 204 rows
    cont>         checkpoint all rows to backing file
    cont>
    cont>     create storage area AREA1
    cont>         page format is UNIFORM
    cont>         cache using CACHE_AREA1
    cont> ;
    SQL>
    SQL> show database *
    Default alias:
        Oracle Rdb database in file SAMPLE
            Multischema mode is disabled
            Number of users:               50
            Number of nodes:               16
            Buffer Size (blocks/buffer):   6
            Number of Buffers:             20
            Number of Recovery Buffers:    20
            Snapshots are Disabled
            Carry over locks are enabled
            Lock timeout interval is 0 seconds
            Adjustable lock granularity is enabled (count is 3)
            Global buffers are disabled (number is 250, user limit is 5,
                      page transfer via disk)
            Journal fast commit is disabled
                    ( checkpoint interval is 0 blocks,
                      checkpoint timed every 0 seconds,
                      no commit to journal optimization,
                      transaction interval is 256 )
            AIJ File Allocation:           512
            AIJ File Extent:               512
            Statistics Collection is ENABLED
            Unused Storage Areas:          10
            Unused Journals:               10
            Unused Cache Slots:            5
            Unused Sequences:              32
            Restricted Access
            Journal is Disabled
            Backup Server:   Manual
            Log Server:      Manual
            Overwrite:       Disabled
            Notification:    Disabled
            Asynchronous Prefetch is Enabled (depth is 5)
            Asynchronous Batch Write is Enabled (clean buffers 5, max buffers 4)
            Lock Partitioning is DISABLED
            Incremental Backup Scan Optim uses SPAM pages
            Shutdown Time is 60 minutes
            Workload Collection is Enabled
            Cardinality Collection is Enabled
            Metadata Changes are Enabled
            Row Cache is Enabled
            Row cache: No Location
            Row cache: checkpoint updated rows to backing file
            Detected Asynch Prefetch is Enabled (depth is 4, threshold is 4)
            Default Storage Area AREA1
            Mode is Open Automatic (Wait 5 minutes for close)
            No RUJ File Location
            recovery journal buffers are in local memory
            Database Transaction Mode(s) Enabled:
                ALL
            Shared Memory:         Process
            Large Memory:          Disabled
            Security Checking is External
            System Index Compression is ENABLED
            System Index:
                Type is sorted ranked
                Prefix cardinality collection is enabled
            Logminer support is disabled
            Galaxy support is disabled
            Prestarted transactions are enabled
            Dictionary Not Required
            ACL based protections
    Storage Areas in database with filename SAMPLE
         AREA1                           Default storage area
         RDB$SYSTEM                      List storage area.
    Journals in database with filename SAMPLE
         No Journals Found
    Cache Objects in database with filename SAMPLE
         CACHE_AREA1

# CREATE DOMAIN文

> ドメイン定義を作成します。

> ドメインは、表列に設定可能な値のセット、キャラクタ・セット、照合順番およびフォーマット句を定義します。CREATE DOMAIN文は、データ型をドメイン名と関連付けることで値のセットを指定します。

> ドメイン定義を指定するには、次の2つの方法があります。

> - ドメイン名、データ型および次のオプション句を任意に組み合せて使用する方法:

>   - デフォルト値

>   - ストアド名

>   - 照合順番

>   - EDIT STRINGまたはQUERY HEADERなどのフォーマット句

> - FROM句およびリポジトリ内ですでに定義されているフィールドを参照するリポジトリ・パス名を使用する方法

> CREATE DOMAIN文を実行すると、SQLでデータベースにドメイン定義が追加されます。

> PATHNAME指定でデータベースにアタッチすると、ドメイン定義もリポジトリに追加されます。

> CREATE文とALTER TABLE文、およびファンクションとプロシージャの仮パラメータ宣言で、SQLデータ型のかわりにドメインを参照できます。ドメインを変更する必要がある場合、この1つのドメイン定義のみを変更すると（ALTER DOMAIN文を使用）、すべての表を変更できます。この機能によって、アプリケーションの一貫性の保持が容易になります。

> ドメインは、次の場所で参照できます。

> - CREATE文、ALTER文およびDROP DOMAIN文

> - CREATE文およびALTER TABLE文における列のデータ型

> - CREATE文およびALTER TABLE文におけるルーチン・パラメータのデータ型、または宣言された変数のデータ型

> - CREATE FUNCTION文におけるファンクション・パラメータまたはファンクションの結果のデータ型

> - CREATE PROCEDURE文におけるプロシージャ・パラメータのデータ型

> - CREATE文およびALTER SYNONYM文におけるシノニムのベース・オブジェクト

> - CAST式のデータ型

> - 対話型SQLのDECLARE変数文のデータ型

> - 対話型SQLのSELECT文およびPRINT文のEDIT USING句のソース。EDIT STRINGはこのドメインから継承されます。

## 環境

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

> - 対話型SQL内

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

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

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

## 形式

## 引数

> ### char-data-types

> キャラクタ・タイプです。データ型の詳細は、第2.3節を参照してください。

> ### character-set-name

> 有効なキャラクタ・セットです。

> ### COLLATING SEQUENCE IS collation-name

> 名前付きドメインに照合順番を指定します。

> OpenVMS各国語キャラクタ・セット（NCS）のユーティリティでは、事前定義された一連の照合順番を使用でき、独自の照合順番も定義できます。COLLATING SEQUENCE句では、事前定義されたNCS照合順番とユーザー定義のNCS照合順番の両方を使用できます。

> COLLATING SEQUENCE句をCREATE DOMAIN文で使用するには、最初にCREATE COLLATING SEQUENCE文を使用して、SQLに対するNCS照合順番を指定する必要があります。COLLATING SEQUENCE句に含まれる順番名の引数は、CREATE COLLATING SEQUENCE文に含まれる順番名と同一である必要があります。

> ### COMMENT IS 'string'

> ドメインに関するコメントを追加します。SQLでは、SHOW DOMAIN文の実行時にコメントのテキストが表示されます。コメントは一重引用符（'）で囲み、コメント内の複数の行はスラッシュ（/）で区切ります。

> ### DATABASE ALIAS alias

> FROM path-name句で、特定のデータベースへのアタッチの名前を指定します。SQLは、この別名で参照されるデータベースにドメイン定義を追加します。

> 別名を指定しない場合、SQLではデフォルト・データベースにドメイン定義を追加します。デフォルト・データベースおよび別名の詳細は、第2.2.1項を参照してください。

> ### date-time-data-types

> 日付、時間、または期間を指定するデータ型です。日時データ型の詳細は、第2.3.2項を参照してください。

> ### DEFAULT value-expr

> ドメインにデフォルト値を指定します。

> 副問合せ、条件、文字、日/時および数式を含む、あらゆる値式をデフォルト値として使用できます。値式の詳細は、第2.6節を参照してください。

> NULLの詳細は、第2.6.1項およびこの引数リストに続く「使用方法」を参照してください。

> 第2.6節で説明している値式には、DBKEYおよび集計関数が含まれています。ただしDEFAULT句は、DBKEYまたは集計関数の参照に有効な場所ではありません。いずれかを参照しようとすると、コンパイル時エラーが表示されます。

> 列にDEFAULTを指定しない場合は、ドメインからDEFAULTが継承されます。列またはドメインのいずれにもデフォルトを指定しない場合、SQLはNULLをデフォルト値として割り当てます。

> ### domain-constraint

> 名前付きドメインに制約を作成します。

> ドメイン作成時に、どの値をドメインに基づく列に格納するかを制限するドメイン制約を指定します。ドメイン制約は、ドメインに基づく列は特定のデータ値以外は含まないこと、またはデータ値をNULLにできるかどうかを指定します。

> CHECK句を使用して、値が規定の範囲内である必要があること、または値が値リストと一致するように指定します。ドメイン制約にCHECK句を指定する場合、ドメインに基づいて列に格納されているすべての値が一貫してチェックされていることを確認します。

> ### domain-name

> 作成するドメインの名前です。ドメイン名は、スキーマ内のドメイン名の間で一意である必要があります。ドメイン名は、別名またはスキーマ名（マルチスキーマ・データベース内のみ）で修飾できます。

> ### FROM path-name

> リポジトリのフィールド定義のリポジトリ・パス名を指定します。SQLでは、このフィールドから定義を使用してドメインを作成し、ドメインにフィールド定義の名前を付けます。

> リポジトリのドメイン定義に基づいてドメインを作成するのは、多くのアプリケーションで同一の定義を共有する場合に便利です。一般定義への変更は、それを使用するすべてのアプリケーションに自動的に反映されます。

> FROM path-name句を使用してドメインを作成できるのは、リポジトリのフィールド定義が、最初に作成したリポジトリのCDOユーティリティを使用して作成されている場合のみです。たとえば、定義がSQLセッションの一部としてリポジトリに作成されている場合は、FROM path-name句ではドメインを作成できません。Oracle Rdbでは、CDOユーティリティのVALID IF式で参照されているフィールド名が、定義または変更されるグローバル・フィールド名と一致する必要があります。

> 注意 他のユーザーまたはアプリケーションによるリポジトリ内のフィールド定義の変更は、リポジトリがINTEGRATE DATABASE...ALTER FILES文に一致するようにデータベースを統合すると、ドメイン定義に影響します。

> FROM path-name句は、PATHNAMEを指定してデータベースがアタッチされている場合のみ使用できます。リポジトリ・パス名としてフルパス名または相対パス名のいずれかを指定できます。

> CREATE DOMAIN文のFROM path-name形式を使用する場合は、フォーマット句を指定できません。

> CREATE DATABASE文にCREATE DOMAIN文を埋め込む場合は、FROM path-name句は使用できません。

> ### IS data-type

> ### AS data-type

> 有効なSQLデータ型です。データ型の詳細は、第2.3節を参照してください。

> ### NO COLLATING SEQUENCE

> このドメインが、標準のデフォルト照合順番（ASCII）を使用するように指定します。NO COLLATING SEQUENCE句を使用して、CREATE DATABASE文またはALTER DATABASE文の中のデータベースに対して定義された照合順番をオーバーライドします。

> ### sql-and-dtr-clause

> オプションのSQLおよびDATATRIEVEフォーマット句です。フォーマット句の詳細は、第2.5節を参照してください。

> ### STORED NAME IS stored-name

> マルチスキーマ・データベースに作成したドメインへのアクセスに使用される名前を指定します。ストアド名を使用すると、Oracle Rdb管理ユーティリティであるOracle RMUなどのインタフェースを使用して、マルチスキーマ定義にアクセスできます。このユーティリティでは、1つのデータベース内で複数のスキーマを認識しません。複数のスキーマに対応しないデータベース内では、ドメインのストアド名は指定できません。ストアド名の詳細は、第2.2.18項を参照してください。

## 使用方法

> - 通常、表を作成するときは、次の理由からドメインを使用する必要があります。

>   - 複数の表にある類似した列を1つの基準で統一できます。たとえば、ドメインID_DOMを使用して列を定義すると、これらの列すべてのデータ型がCHAR(5)になります。

>   - ドメイン自体を変更することにより、そのドメインを使用して定義したすべての列のデータ型または書式設定を変更できます。たとえば、POSTAL_CODE_DOMドメインのデータ型をCHAR(5)からCHAR(10)に変更する場合、必要な処理はPOSTAL_CODE_DOMのデータ型の変更のみです。表COLLEGESおよびEMPLOYEESの列POSTAL_CODEのデータ型を変更する必要はありません。

>   - ドメインを使用して定義したすべての列のデフォルト値を指定できます。たとえば、NULLやNot Applicableなどの値を使用し、そのドメインに基づく列へのデータ挿入が行われないことを明確に示すことができます。通常、列に特定の値が含まれる場合は、その値をデフォルトとして使用できます。たとえば、従業員のほとんどが同じ州に住んでいる場合は、その州をSTATE_DOM列のデフォルト値にできます。
>     列に指定したデフォルト値は、ドメインに指定したデフォルト値より優先されます。

> - DEFAULT句で指定される値のデータ型は、そのデータ型が定義される列と同じデータ型である必要があります。データ型を指定しないと、SQLでは次の例に示すエラー・メッセージが表示されます。

>       SQL> CREATE DOMAIN TIME_DOM IS TIME ( 2 ) DEFAULT '00:00:00.00' ;
>       %SQL-F-DEFVALINC, You specified a default value for TIME_DOM which is
>       inconsistent with its data type
>       SQL> CREATE DOMAIN TIME_DOM IS TIME ( 2 ) DEFAULT TIME '00:00:00.00' ;

> - 次の場合は、表の作成時にドメインを使用しないことをお薦めします。

>   - 使用するアプリケーションがOracle RDBMSと互換性を持つ必要がある場合。

>   - 中間結果表を作成している場合。データベース内のドメインについて把握し、それらを定義するには時間がかかります。中間結果表はこの作業の妨げになる場合があります。

> - リポジトリを使用してフィールド構造を定義する際、その構造がOracle Rdbで許容されない可能性があります。
>   リポジトリは、多くのレイヤー製品および言語で使用可能なデータ構造体を保持できる汎用データ・リポジトリとされています。
>   このようなデータ構造体は、Oracle Rdbが使用するリレーショナル・データ・モデルに適用する際は、必ずしも有効でない場合があります。
>   リポジトリのデータ構造体とOracle Rdb間の一般的な非互換性には、次のものがあります。

>   - %CDD-E-PRSMISSNG, attribute value is missing
>     このエラーは、リポジトリのフィールド定義にFILLER句が含まれていると発生する場合があります。

>   - %CDD-E-INVALID_RDB_DTY, datatype of field is not supported by Oracle Rdb
>     このエラーは、リポジトリのフィールド定義にARRAY句が含まれていると発生する場合があります。

>   - %CDD-E-HAS_DIMENSION, Oracle Rdb fields cannot have dimension
>     このエラーは、リポジトリのフィールド定義にOCCURS句が含まれていると発生する場合があります。

> - NCHAR、NATIONAL CHAR、NCHAR VARYINGまたはNATIONAL CHAR VARYINGデータ型を使用すると、各国語キャラクタ・データ型を指定できます。各国語キャラクタ・データ型は、データベースの作成時に、データベース各国語キャラクタ・セットによって定義されます。各国語キャラクタ・データ型の詳細は、第2.3.1項を参照してください。

> - データ型の長さは、文字またはオクテットで指定できます。デフォルトでは、データ型はオクテットで指定されます。CREATE DOMAIN文をSET CHARACTER LENGTH 'CHARACTERS'文またはSET DIALECT 'MIA'文またはSET DIALECT 'SQL99'文とともに前に配置すると、長さを文字数に変更できます。詳細は、「SET CHARACTER LENGTH文」および「SET DIALECT文」を参照してください。

> - キャラクタ・セットを指定せずにキャラクタ・タイプ・ドメインを作成すると、データベースのデフォルト・キャラクタ・セットが割り当てられます。

> - ドメイン絞込み条件を作成すると、条件には副問合せが含まれなくなるため、別のドメインを参照できなくなります。

> - 各ドメインに対し、1件のみ絞込み条件を指定できます。

> - CHECK制約構文では、VALUEキーワードまたはドメイン名を参照できます。次に例を示します。

>       SQL> -- The CHECK constraint can reference the VALUE keyword.
>       SQL> --
>       SQL> CREATE DOMAIN D1 INTEGER
>       cont> CHECK (VALUE > 10)
>       cont> NOT DEFERRABLE;
>       SQL> SHOW DOMAIN D1;
>       D1                              INTEGER
>        Valid If:       (VALUE > 10)
>       SQL> ROLLBACK;
>       SQL> --
>       SQL> -- The CHECK constraint can reference the domain name.
>       SQL> --
>       SQL> CREATE DOMAIN D1 INTEGER
>       cont> CHECK (D1 > 10)
>       cont> NOT DEFERRABLE;
>       SQL> SHOW DOMAIN D1
>       D1                              INTEGER
>        Valid If:       (D1 > 10)

## 例

> 例1: 標準のEMPLOYEE_ID定義のドメインの作成

> 次の例では、従業員IDの列の標準として定義されるドメインID_DOMを作成します。

>     SQL> CREATE DOMAIN ID_DOM CHAR(5)
>     SQL> COMMENT IS
>     cont> 'standard definition of employee id';

> 例2: 標準日付のドメインの作成

> 次の例では、編集文字列DD-MMM-YYYYを含むSTANDARD_DATE_DOMドメインが作成されます。

>     SQL> CREATE DOMAIN STANDARD_DATE_DOM DATE
>     cont> EDIT STRING IS 'DD-MMM-YYYY'
>     SQL> COMMENT IS
>     cont> 'standard definition for complete dates';

> 例3: デフォルト値を使用したドメインの作成

> 次の例では、ADDRESS_DATA2_DOMおよびWORK_STATUS_DOMという2つのドメインが作成されます。ADDRESS_DATA2_DOMドメインは、デフォルト値NULLを含んでいます。WORK_STATUS_DOMドメインは、 フル・タイムのwork statusを示すデフォルト値1を含んでいます。

>     SQL> CREATE DOMAIN ADDRESS_DATA2_DOM CHAR(20)
>     cont> DEFAULT NULL;
>     SQL> --
>     SQL> CREATE DOMAIN WORK_STATUS_DOM SMALLINT
>     cont> DEFAULT 1;

> 例4: リポジトリ・フィールド定義に基づくドメインの作成

> 次の例は、CREATE DOMAIN文で定義のソースとしてリポジトリを使用する例を示しています。

>     $ SQL$
>     SQL> ATTACH 'PATHNAME CDD$TOP.SQL.RDB.TEST.DATE';
>     SQL> CREATE DOMAIN FROM DOMAIN_TEST;
>     SQL> SHOW DOMAIN
>     User domains in database with pathname
>             SYS$COMMON:[CDDPLUS]SQL.RDB.TEST.DATE;1
>     DOMAIN_TEST                     BIGINT

> 例5: 照合順番を持つドメインの作成