オブジェクト・データ・マネージャー
オブジェクト・データ・マネージャー (ODM) は、 システム情報の保管を目的とするデータ・マネージャーです。 情報は、オブジェクトとして、関連する特性とともに保管され維持されます。
ODM は、アプリケーション・プログラムのデータを管理する場合にも使用することができます。
ODM が管理するシステム・データには、以下のものがあります。
- 入出力装置構成情報
- SMIT (メニュー、セレクター、およびダイアログ) の表示情報
- インストールおよび更新手順の重要プロダクト・データ
- 通信構成情報
- システム・リソース情報
ODM では、オブジェクトおよびオブジェクト・クラスの、作成、追加、ロック、保管、 変更、獲得、表示、削除、およびドロップを行うことができます。 ODM コマンドは、これらの関数へのコマンド・ライン・インターフェースとして機能します。 ODM サブルーチンは、 これらの関数にアプリケーション・プログラム内からアクセスします。
オブジェクト・クラスによっては、システムに付属しているものもあります。 これらのオブジェクト・クラスについては、それを提供している特定のシステム・プロダクトの文書で説明してあります。
ODM オブジェクト・クラスおよびオブジェクトの保管
ODM の基本的なコンポーネントは、オブジェクト・クラスおよびオブジェクトです。 オブジェクト・クラスおよびオブジェクトを管理するには、 ODM コマンドおよびサブルーチンを使用します。 具体的には、これらのインターフェースの作成と追加機能を用いて、 ユーザー独自のデータの保管と管理に関するオブジェクト・クラスおよびオブジェクトを作成します。
| 用語 | 説明 |
|---|---|
| オブジェクト・クラス | 同じ定義のオブジェクトのグループ。 オブジェクト・クラスは、1 つ以上のディスクリプターで構成されます。 これは、テーブルに似ています。 odmcreate コマンドまたは odm_create_class サブルーチンで作成する各オブジェクト・クラスは、 構造体の配列の C 言語定義として、ファイル内に保管されます。 |
| オブジェクト (object) | オブジェクト・クラスのメンバー。 これは、データの保管および管理を必要とするエンティティーです。 これは、データベース内の論理レコードに似ています。 odmadd コマンドまたは odm_add_obj サブルーチンによってオブジェクト・クラスに追加する各オブジェクトは、同じファイルの C 言語構造体として保管されます。 ユーザーは、オブジェクト・クラスの作成時に、 このファイルに保管するディレクトリーを決めます。 |
各オブジェクトが配列のエレメントである構造体の場合、 オブジェクト・クラスは、概念としては構造体の配列に似ています。 オブジェクトがオブジェクト・クラスに追加されるときに、値が、 オブジェクトのディスクリプターに関連付けられます。 オブジェクトのディスクリプターとその関連する値は、ODM 機能によって探し出し、変更することができます。
以下は、オブジェクト・クラスとオブジェクトの操作の例を示しています。
- 以下のオブジェクト・クラスを作成します。Fictional_Characters次のように入力します。
class Fictional_Characters { char Story_Star[20]; char Birthday[20]; short Age; char Friend[20]; };この例では、 Fictional_Charactersオブジェクト・クラスには、次の 4 つの記述子Story_Star,BirthdayおよびFriend記述子のタイプが文字で、最大長が 20 文字の場合。Age記述子タイプが short の場合。 ODM が 必要とするオブジェクト・クラス・ファイルを作成するには、odmcreate コマンド、 もしくは odm_create_class サブルーチンを用いて、このファイルを処理します。
- オブジェクト・クラスの作成が済むと、odmadd
コマンド、または、odm_add_obj サブルーチンを用いて、
オブジェクトをそのクラスに追加することができます。 例えば、オブジェクトを追加するには、 odmadd コマンドを使用して以下のコードを入力します。CinderellaおよびSnow White:NONE.Fictional_Charactersオブジェクト・クラス、およびそれらが継承するディスクリプターの値:
Fictional_Characters: Story_Star = "Cinderella" Birthday = "Once upon a time" Age = 19 Friend = "mice" Fictional_Characters: Story_Star = "Snow White" Birthday = "Once upon a time" Age = 18 Friend = "Fairy Godmother"「Fictional_Characters」表には、以下の概念図が表示されます。Fictional_Characters2 つのオブジェクトが追加されたオブジェクト・クラスCinderellaおよびSnow White.
表 1. Fictional Characters Story Star (char) Birthday (char) Age (short) Friend (char) Cinderella Once upon a time 19 Mice Snow White Once upon a time 18 Fairy Godmother Retrieved data for 'Story_Star = "Cinderella"' Cinderella: Birthday = Once upon a time Age = 19 Friend = Mice - 構成リフレッシュがFictional_Charactersオブジェクト・クラスが作成され、オブジェクトがCinderellaおよびSnow White検索されたデータが追加されます。'Story_Star = "Cinderella"':
Cinderella: Birthday = Once upon a time Age = 19 Friend = mice
ODM コマンドの使用
odmcreate または odmdrop コマンドを使用してオブジェクト・クラスを作成またはドロップする場合は、以下のいずれかを使用して、クラス定義ファイルがアクセスされるディレクトリーを指定します。
- $ODMDIRで示されるデフォルト・ディレクトリーにファイルを保管します。これは /etc/objrepos ディレクトリーです。
- export コマンドを使用して ODMDIR 環境変数を設定し、ストレージ用のディレクトリーを指定します。
- unset コマンドを使用して ODMDIR 環境変数を設定解除し、 cd コマンドを使用して現行ディレクトリーをオブジェクト・クラスを保管するディレクトリーに変更します。 次に、そのディレクトリーで ODM コマンドを実行します。 オブジェクト・クラスを定義するファイルは、 現行ディレクトリーに保管されます。
odmdeleteを使用する場合、 odmadd、 odmchange、 odmshow、または odmget コマンドは、クラスおよびオブジェクトを処理するために、以下のいずれかを使用して、オブジェクト・クラスを含むディレクトリーを指定します。
- $ODMDIR によって示されたデフォルト・ディレクトリーである /etc/objrepos ディレクトリーのオブジェクト・クラスを処理する。
- export コマンドを 使用して、ODMDIR 環境変数を設定し、 ディレクトリーを指定する。
- コマンド・ラインから、export コマンドを用いて、ODMPATH
環境変数を、
オブジェクト・クラスの検索を行うディレクトリーのコロンで区切ったリストが入った文字列に設定する。 次に例を示します。
$ODMPATH 内のディレクトリーが検索される のは、$ODMDIR が指示するディレクトリーにオブジェクト・クラスがない場合に限られます。$ export ODMPATH = /usr/lib/objrepos:/tmp/myrepos
オブジェクト・クラスの作成
注意: システム・オブジェクト・クラスとオブジェクトを定義したファイルに変更を加えると、システム問題が発生することがあります。 /usr/lib/objrepos ディレクトリーをオブジェクト・クラスおよびオブジェクトの保管用ディレクトリーとして使用する場合は、 システム管理者に相談してください。
- ASCII ファイルの 1 つまたは複数のオブジェクト・クラスに定義を作成する。 ODM サンプル・コードおよび出力 は、いくつかのオブジェクト・クラス定義を含む ASCII ファイルを示しています。
- 生成されたオブジェクトを保管するディレクトリーを指定する。
「ODM オブジェクト・クラスおよび Object Storage」 では、生成されたオブジェクト・クラスおよびオブジェクトを保管するディレクトリーを決定するためにオブジェクト・クラス作成時に使用される基準について説明しています。 システム・オブジェクト・クラスおよびオブジェクトは、ほとんどが /usr/lib/objrepos ディレクトリーに保管されます。
ClassDescriptionFile 入力ファイルとして指定されたオブジェクト・クラス定義の ASCII ファイルを使用して odmcreate コマンドを実行することにより、空のオブジェクト・クラスを生成します。
オブジェクト・クラスへのオブジェクトの追加
注意: システム・オブジェクト・クラスとオブジェクトを定義したファイルに変更を加えると、システム問題が発生することがあります。 /usr/lib/objrepos ディレクトリーをオブジェクト・クラスおよびオブジェクトの保管用ディレクトリーとして使用する場合は、 システム管理者に相談してください。
- オブジェクトを追加するオブジェクト・クラスを作成する。 オブジェクト・クラスの作成手順については、 オブジェクト・クラスの作成 を参照してください。
- 1 つまたは複数のオブジェクトに定義を作成する。 ODM サンプル・コードおよび出力 は、いくつかのオブジェクト定義を含む ASCII ファイルを示しています。
- 生成されたオブジェクトの保管先となる
オブジェクト・クラスを含むディレクトリーを指定する。
「ODM オブジェクト・クラスおよび Object Storage」 では、生成されたオブジェクト・クラスおよびオブジェクトを保管するディレクトリーを決定するためにオブジェクト・クラスの作成時に使用される基準について説明しています。 システム・オブジェクト・クラスおよびオブジェクトは、ほとんどが /usr/lib/objrepos ディレクトリーに保管されます。
- 入力ファイル 入力ファイルとして指定されたオブジェクト定義の ASCII ファイルを使用して オムド コマンドを実行することにより、オブジェクト・クラスにオブジェクトを追加します。
オブジェクト・クラスのロック
ODM は、オブジェクト・クラスもしくはオブジェクトを暗黙的にはロックしません。 ロックおよびアンロックの調整は、 オブジェクト・クラスにアクセスするアプリケーションが行います。 しかし、ODM には、アプリケーション・プログラムによってオブジェクト・クラスのロックおよびアンロックを制御する、 odm_lock および odm_unlock サブルーチンがあります。
| サブルーチン | 説明 |
|---|---|
| odm_lock | パス名であり、オブジェクト・クラス・ファイルもしくはオブジェクト・クラスのディレクトリーで解決できる文字列を処理する。 ロック ID を戻し、指定されたオブジェクト・クラス、 またはパス名によって定義されたクラスが使用中であることを示すフラグを設定します。 |
odm_lock サブルーチンは、ロック・フラグを設定した場合、 他のプロセスがそのオブジェクト・クラスを使用できないようにはしません。 使用上衝突が起こりえる場合、アプリケーション・プログラムは、 明示的にクラスへのロックを認可されるまで待ってからクラスを使用する必要があります。
ロックが有効な間は、別のアプリケーションは、 同じパス名でロックを獲得することはできません。 しかし、ディレクトリー名をロックしても、サブディレクトリーや、 そのディレクトリー内のファイルへのロックを別のアプリケーションが獲得できないようにすることはできません。
ロックされたオブジェクト・クラスをアンロックするには、 odm_lock サブルーチンによって戻されたロック ID でコールした odm_unlock サブルーチンを使用します。
オブジェクト・クラスおよびオブジェクトの保管
odmcreate コマンドまたは odm_create_class サブルーチンで作成する各オブジェクト・クラスは、 構造体の配列の C 言語定義として、ファイル内に保管されます。 odmadd コマンドまたは odm_add_obj サブルーチンによってオブジェクト・クラスに追加する各オブジェクトは、同じファイルの C 言語構造体として保管されます。
ユーザーは、オブジェクト・クラスの作成時に、 このファイルに保管するディレクトリーを決めます。
保管の方法は、オブジェクト・クラスおよびオブジェクトの作成に、コマンドとサブルーチンのどちらを使用するかによって異なります。
注意: システム・オブジェクト・クラスとオブジェクトを定義したファイルに変更を加えると、システム問題が発生することがあります。 /usr/lib/objrepos ディレクトリーをオブジェクト・クラスおよびオブジェクトの保管用ディレクトリーとして使用する場合は、 システム管理者に相談してください。
odm_create_class または odm_add_obj サブルーチンの使用
odm_create_class または odm_add_obj サブルーチンは、オブジェクト・クラスおよびオブジェクトを作成するために使用されます。
- アプリケーションが ODMDIR
環境変数に指定された以外のオブジェクト・クラスを保管する際に特定の要件がある場合は、
odm_set_path サブルーチンを用いてパスをリセットする。 アプリケーションからオブジェクト・クラスもしくはオブジェクトを作成するときは常に、
このサブルーチンを用いて保管用パスを明示的に設定することを強くお勧めします。
または
- アプリケーションの実行前に、コマンド・ラインから
set コマンドを用いて ODMDIR 環境変数を設定し、
保管用のディレクトリーを指定する。
または
- 多くのシステム・オブジェクト・クラス ( /usr/lib/objrepos ディレクトリー) を保管するために使用されるオブジェクト・リポジトリーにファイルを保管します。
ODM ディスクリプター
オブジェクト・データ・マネージャー (ODM) ディスクリプターは、概念的には、 名前および型を持つ変数に似ています。 オブジェクト・クラスが作成される際、そのディスクリプターが、 関連する ODM ディスクリプター・タイプを持つ変数名のように定義されます。 オブジェクトは、オブジェクト・クラスに追加される際、 そのオブジェクト・クラスのディスクリプターのすべてのコピーを獲得します。 値も、既に述べたオブジェクト・ディスクリプターに関連付けられます。
ODM は、以下の複数のディスクリプター・タイプをサポートします。
| ディスクリプター | 定義 |
|---|---|
| 端末記述子 | 文字または数値データ型を定義する。 |
| リンク・ディスクリプター | オブジェクト・クラス間の関連を定義する。 |
| メソッド・ディスクリプター (method descriptor) | オブジェクトの操作またはメソッドを定義する。 |
オブジェクト・クラスから個々のオブジェクトを検索する基準を定義する場合は、 オブジェクトのディスクリプターとその関連する値を使用します。 ODM 「オブジェクト検索」で定義されているように、 ODM に渡す選択基準をフォーマット設定します。 binary 端末ディスクリプターは、 その長さが任意であるため、検索基準には使用しないでください。
ODM 端末ディスクリプター
端末ディスクリプター は、ODM が使用する、 最も根本的なデータ型を定義します。 端末ディスクリプターは、基本的には ODM 端末ディスクリプター・タイプにより定義された変数です。 ODM が提供する端末ディスクリプター・タイプを、以下に示します。
| ディスクリプター | 定義 |
|---|---|
| 簡略 | 符号付き 2 バイト数を指定。 |
| long | 符号付き 4 バイト数を指定。 |
| ulong | 符号なし 4 バイト数を指定。 |
| binary | 固定長ビット文字列を指定。 バイナリー端末ディスクリプター・タイプは、ODM 作成時にユーザーが定義します。 バイナリー端末ディスクリプター・タイプは、選択基準には使用できません。 |
| CHAR | 固定長、null 終了文字列を指定。 |
| vchar | 可変長、null 終了文字列を指定。 vchar 端末ディスクリプター・タイプは、 選択基準に使用することができます。 |
| long64/ODM_LONG_LONG/int64 | 符号付き 8 バイト数を指定。 |
| ulong64/ODM_ULONG_LONG/uint64 | 符号なし 8 バイトを指定。 |
ODM リンク・ディスクリプター
ODM リンク・ディスクリプター は、 オブジェクト・クラス内のオブジェクトと別のオブジェクト・クラス内のオブジェクト間の関係を確立します。 リンク・ディスクリプターは、ODM リンク・ディスクリプター・タイプで定義された変数です。
例えば、次のコードを ODM 作成機能が処理して、 Friend_Table および Fictional_Characters オブジェクト・クラスを生成することができます。
class Friend_Table {
char Friend_of[20];
char Friend[20];
};
class Fictional_Characters {
char Story_Star[20];
char Birthday[20];
short Age;
link Friend_Table Friend_Table Friend_of Friends_of;
};Ictional_Characters オブジェクト・クラスは、リンク記述子を使用して、 Friends_of 記述子リンクをFriend_Tableオブジェクト・クラス。 リンクを解決するため、 Friends_of ディスクリプターは、 Friend_of ディスクリプター内の一致するデータを使って、 Friend_Table オブジェクト・クラスのオブジェクトを検索します。 Fictional_Characters オブジェクト・クラス内のリンク・ディスクリプターは、 Fictional_Characters オブジェクト・クラス内のリンク先のクラス (Friend_Table)、リンク先のディスクリプター (Friend_of)、ならびにリンク・ディスクリプターの名前 (Friends_of) を定義します。
次のコードを使用して、Fictional_Characters および Friend_Table オブジェクト・クラスにオブジェクトを追加することができます。
Fictional_Characters:
Story_Star = "Cinderella"
Birthday = "Once upon a time"
Age = 19
Friends_of = "Cinderella" Fictional_Characters:
Story_Star = "Snow White"
Birthday = "Once upon a time"
Age = 18
Friends_of = "Snow White" Friend_Table:
Friend_of = "Cinderella"
Friend = "Fairy Godmother" Friend_Table:
Friend_of = "Cinderella"
Friend = "mice" Friend_Table:
Friend_of = "Snow White"
Friend = "Sneezy" Friend_Table:
Friend_of = "Snow White"
Friend = "Sleepy" Friend_Table:
Friend_of = "Cinderella"
Friend = "Prince" Friend_Table:
Friend_of = "Snow White"
Friend = "Happy"次の表は、Fictional_Characters および Friend_Table オブジェクト・クラス、クラスに追加されるオブジェクト、 およびそれらのオブジェクト間のリンク関係の概念図を示しています。
| Story_Star (char) | Birthday (char) | Age (short) | Friends_of (link) |
|---|---|---|---|
| Cinderella | Once upon a time | 19 | Cinderella |
| Snow White | Once upon a time | 18 | Snow White |
Retrieved data for 'Story_Star = "Cinderella"
Cinderella:
Birthday = Once upon a time
Age = 19
Friends_of = Cinderella
Friend_of = Cinderella
2 つのテーブルの Friends_of と Friend_of の列は直接リンクしています。 以下の表は、2 つのオブジェクト・クラスのリンク関係の概念図を示しています。
| Friend_of (char) | Friend (char) |
|---|---|
| Cinderella | Fairy Godmother |
| Cinderella | mice |
| Snow White | Sneezy |
| Snow White | Sleepy |
| Cinderella | Prince |
| Snow White | Happy |
Ictional_Characters オブジェクト・クラスおよび Friend_Table オブジェクト・クラスが作成され、オブジェクトが追加されると、取得されるデータは以下のようになります。Story_Star = 'Cinderella'次のようになります
Cinderella:
Birthday = Once upon a time
Age = 19
Friends_of = Cinderella
Friend_of = Cinderellaリンクされたオブジェクト・クラス間の拡張関係を表示するには、Friend_Table オブジェクト・クラスでodmgetコマンドを使用します。 以下のために取得されたデータFriend_of = 'Cinderella'オブジェクト・クラスは次のとおりです。
Friend_Table:
Friend_Of = "Cinderella"
Friend = "Fairy Godmother"
Friend_Table:
Friend_of = "Cinderella"
Friend= "mice"
Friend_Table:
Friend_of = "Cinderella"
Friend = "Prince"ODM メソッド・ディスクリプター
ODM メソッド・ディスクリプター は、 関連するメソッドまたは 操作を持つことができるオブジェクトについてオブジェクト・クラスを定義します。 メソッド・ディスクリプターは、ODM メソッド・ディスクリプター・タイプで定義された変数です。
オブジェクトの操作またはメソッド・ディスクリプター値は、メソッド呼び出しによって 実行されるコマンド、プログラム、あるいはシェル・スクリプトのいずれの場合もある 文字列です。 オブジェクト・クラス内のオブジェクトごとに、 異なるメソッドまたは操作を定義することができます。 操作自体は ODM の一部ではなく、アプリケーション・プログラマーによって定義され、 コーディングされます。
オブジェクトのメソッドは、 odm_run_method サブルーチンの呼び出しによって呼び出されます。 メソッドの呼び出しは、同期式イベントであり、ODM 操作はこの操作が完了するまで一時停止します。
例えば、次のコードを ODM 作成機能に入力して Supporting_Cast_Ratings オブジェクト・クラスを生成することができます。
class Supporting_Cast_Ratings {
char Others[20];
short Dexterity;
short Speed;
short Strength;
method Do_This;
};この例では、Do_Thisdescriptor は、 Supporting_Cast_Ratings オブジェクト・クラスに定義されたメソッド記述子です。 メソッド・ディスクリプターの値は、 odm_run_method サブルーチンによる将来の呼び出しのためのコマンド、プログラム、またはシェル・スクリプトを指定するストリングにすることができます。
次のコードは、 オブジェクトを Supporting_Cast_Ratings オブジェクト・クラスに追加する例です。
Supporting_Cast_Ratings:
Others = "Sleepy"
Dexterity = 1
Speed = 1
Strength = 3
Do_This = "echo Sleepy has speed of 1" Supporting_Cast_Ratings:
Others = "Fairy Godmother"
Dexterity = 10
Speed = 10
Strength = 10
Do_This = "odmget -q "Others='Fairy Godmother'" Supporting_Cast_Ratings"以下の表は、以下の表の概念図を示しています。Supporting_Cast_Ratingsオブジェクト・クラスDo_Thisクラス内の個々のオブジェクトに関連付けられたメソッド記述子および操作。
| Others (char) | Dexterity (short) | Speed (short) | Stength (short) | Do_This (method) |
|---|---|---|---|---|
| Sleepy | 1 | 1 | 3 | echo Sleepy has speed of 1 |
| Fairy Godmother | 10 | 10 | 10 | odmget —q "Others='Fairy Godmother'"Supporting_Cast_Ratings" |
odm_run_method run of Sleepy's method displays
(using echo):
"Sleepy has speed of 1"構成リフレッシュがSupporting_Cast_Ratingsオブジェクト・クラスが作成され、オブジェクトが追加されます。これは、 odm_run_method サブルーチンによる、定義されたメソッドの呼び出しです。Sleepyこれにより、 echo コマンドは次のように表示されます。
Sleepy has speed of 1ODM オブジェクト検索
ODM ルーチンでは、多くの場合、指定されたオブジェクト・クラスの 1 つまたは複数の オブジェクトを処理用に選択する必要があります。 オブジェクトを特定のルーチンで選択するときは、 検索基準を修飾子の形式で組み込むことができます。
- qualifier
- 検索するオブジェクトの修飾基準を指定する、ODM サブルーチン・コール上の null 終了文字列パラメーター。
このパラメーターによって指定されたディスクリプター名および修飾基準によって、 後の処理用に選択されるオブジェクト・クラス内のオブジェクトが決まります。 修飾子ごとに、論理演算子で接続された 1 つまたは複数の述部 が入っています。 各述部は、ディスクリプター名、比較演算子、および定数から構成されます。
2 つの論理演算子が結合する 3 つの述部の修飾子を次に示します。
SUPPNO=30 AND (PARTNO>0 AND PARTNO<101)この例の場合は、文字列全体が修飾子と見なされます。 3 つの述部は以下のとおりです。SUPPNO=30,PARTNO>0およびPARTNO<101AND 論理演算子を使用して、述部を結合します。 最初の述部では、SUPPNOオブジェクト内のディスクリプターの名前です。=(等号) は比較演算子であり、かつ、30記述子の値を比較する対象の定数です。
各述部は、オブジェクト・クラス内のオブジェクトごとに 定義されたディスクリプターに適用されるテストを指定します。 テストは、オブジェクトのディスクリプターの値と、指定された定数間の比較です。 この例の最初の述部は、記述子の値の間の = (等しい) 比較を示しています。(SUPPNO)定数(30).
以下に括弧内の修飾子の部分を示します。
PARTNO>0 AND PARTNO<101上記には、AND 論理演算子によって結合された 2 つの述部が入っています。 このPARTNO記述子は、最初の述部で 0 より大きい値についてテストされた後、より小さい値についてテストされます。1012 番目の述部。 次に 2 つの述部を論理的に連結して、修飾子のその部分の値を判別します。 例えば、PARTNO企業インベントリー内の部品番号の記述子名です。修飾子のこの部分は、0 より大きく 101 より小さい部品番号を持つすべての製品の選択を定義します。
もう 1 つの例で、修飾子
lname='Smith' AND Company.Dept='099' AND Salary<2500は、部門が 099、給与が $2500 未満で、 姓が Smith の全員 (ODM ではあらゆるオブジェクト) を 選択する場合に使用することができます。 以下のことに注意してください。Dept記述子名がその名前で修飾されているCompany固有の記述子を作成するためのオブジェクト・クラス。
ODM 述部のディスクリプター名
ODM では、ディスクリプター名は必ずしも固有ではありません。 ディスクリプター名は、複数のオブジェクト・クラスで使用することができます。 このような場合は、述部内のディスクリプター名と一緒にオブジェクト・クラス名を指定して、ディスクリプターに対す る固有の参照を作成します。
ODM 述部の比較演算子
以下に、有効な比較演算子を示します。
| オペレーター | 定義 |
|---|---|
| = | 等しい |
| != | 等しくない |
| > | より大きい |
| >= | より大きいか等しい |
| < | より小さい |
| <= | よりも小さいか等しい |
| いいね | 類似。文字列データ内のパターンを検出 |
比較を行えるのは、互換データ型の間に限られます。
LIKE 比較演算子
LIKE 演算子では、CHAR ディスクリプター・タイプ内のパターンの検索が可能になります。 述部の例を以下に示します。
NAME LIKE 'ANNE'値の検索を定義しますANNE合計のNAME指定されたオブジェクト・クラス内の各オブジェクトの記述子。 この場合、この例は次のものと同じです。
NAME = 'ANNE'LIKE 演算子は、以下のパターン・マッチング文字および 規則とともに使用することもできます。
- 「?」を使用します。 (疑問符) を使用して、任意の単一文字を表す。 以下に述部の例を示します。
A を値の 2 番目の文字として持つ 3 文字のストリングの検索を定義します。NAMEオブジェクトの記述子。 記述子の値PAM,DANおよびPATすべてがこの検索条件を満たしています。NAME LIKE '?A?' - ゼロ個以上の文字の任意のストリングを表すには、* (アスタリスク) を使用します。 以下に述部の例を示します。
値を含む任意のストリングの検索を定義します。ANNE合計のNAMEオブジェクトの記述子。 記述子の値LIZANNE,ANNETTEおよびANNEすべてがこの検索条件を満たしています。NAME LIKE '*ANNE*' - [] (大括弧) を使用して、大括弧で囲まれた任意の文字と一致させます。 以下に述部の例を示します。
S または T で始まる記述子値の検索を定義します。NAMEオブジェクトの記述子。NAME LIKE '[ST]*'- (負符号) を使用して、文字の範囲を指定する。 以下に述部の例を示します。
上記は、 A、D、E、F、G、S または T の文字で始まるすべてのディスクリプターの検索を定義します。NAME LIKE '[AD-GST]*' - [!] (感嘆符で囲まれた大括弧) は、大括弧で囲まれた文字の 1 つを除き、任意の単一文字と一致させるために使用します。 以下に述部の例を示します。
S または T で始まる記述子値を除き、記述子値の検索を定義します。NAMEオブジェクトの記述子。NAME LIKE '[!ST]*'パターン・マッチング文字と規則は、 文字列でどのように組み合わせても使用することができます。
ODM 述部の定数
指定する定数は、数値定数でも、文字列定数でも構いません。
- ODM 述部の数値定数は、オプショナルの符号とその後に続く数値 (小数点が付く場合も、
付かない場合もある) で構成され、その後に、
オプショナルで E または e
の文字でマークされた指数が付く場合もあります。 文字 E または e を使用する場合は、
符号を付けられる指数をその後に付ける必要があります。
有効な数値定数のいくつかを次に示します。
2 2.545 0.5 -2e5 2.11E0 +4.555e-10 4E0 -10 999 +42指数を指定しないときは E0 指数を使用することができます。
文字列定数は、単一引用符で囲む必要があります。
'smith' '91'文字列定数は、すべて可変長であると見なされます。 文字列定数内の単一引用符を表すときは、2 つの単一引用符を使用します。 次に例を示します。
'DON''T GO'上記は、次のように解釈されます。
DON'T GO
述部の AND 論理演算子
AND 論理演算子は、述部付きで使用することができます。 AND 論理演算子には、AND または and を使用します。
AND 論理演算子は、複数の述部を接続します。 以下に修飾子の例を示します。
predicate1 AND predicate2 AND predicate3指定するpredicate1論理的に連結されるpredicate2論理的に連結された結果が後に続きます。predicate3.