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

戻る
戻る
 
次へ
次へ
 

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

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


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: 次の方法を示す例


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つの方法があります。

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

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

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

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


環境

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


形式











引数

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: 標準の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: 照合順番を持つドメインの作成