組み込み関数
本章では、OpenFrame PL/Iの組み込み関数(built-in functions)、疑似変数(pseudo variables)、サブルーチン(subroutines)を宣言して呼び出す方法と、各分類の関数の使用方法について説明します。
1. 関数の宣言と呼び出し
本節では、関数を宣言し呼び出す方法について説明します。
1.1. 宣言
組み込み関数、疑似変数、サブルーチンは、コンテキストであるいは明示的に宣言することができます。組み込み関数の略語は、別の(明示的またはコンテキストによる)宣言と名前の有効範囲があります。
たとえば、以下の場合は多重宣言ではありません。
DCL (DIM, DIMENSION) BUILTIN;
以下の場合は、BINがBINARYの略語として使用可能です。
DCL BINARY FILE; X = BIN(Y,3,4);
1.1.1. BUILTIN属性
BUILTIN属性は、名前が組み込み関数、サブルーチン、疑似変数であることを指定します。

組み込まれた名前は、プログラマーが定義した名前として使用することができます。
以下は、BUILTIN属性の使用例です。
A : PROCEDURE; DECLARE SQRT FLOAT BINARY; /*宣言されたSQRTはプログラマーが指定した名前*/ X = SQRT; /*変数Xにユーザーが指定した名前のSQRTを代入*/ B : BEGIN; DECLARE SQRT BUILTIN; /*宣言されたSQRTはBUILTIN属性*/ Y = SQRT(Z); /*2行目に挿入された、ユーザーが指定したSQRTではなく、 組み込み関数で参照*/ END B; END A;
2. サブルーチン
組み込みサブルーチンは、組み込み関数のように必ずしも結果を返さなくてもいい、その他の作業を実行します。
以下は、サブルーチンについての説明です。詳細については、各節を参照してください。
関数 | 説明 |
---|---|
自動再起動機能をキャンセルします。 |
|
自動再起動のためのチェック・ポイントを指定します。 |
|
現在開かれているファイル、現在の位置への呼び出しパスなどの情報をダンプします。 |
|
メモリの内容を指定された値で埋めます。 |
|
割り当てられたヒープ領域を解放します。 |
|
メモリの内容を別のメモリ領域にコピーします。 |
|
プログラムを再実行します。 |
|
PL/Iリターンコードの値を設定します。 |
|
ProSortを使用して入力ファイルをソートし、出力ファイルを作成します。 |
|
ProSortを使用して、E15 PL/I終了プロシージャが提供する入力レコードをソートし、E35 PL/I終了プロシージャによってソートされたレコードを処理します。
|
|
システム時刻を取得します。 |
|
システム時刻を取得します。 |
2.2. PLICKPT
自動再起動のためのチェック・ポイントを指定します。
OpenFrame PL/Iでは、PLICKPTサブルーチンをサポートしておらず、エラーメッセージを出力した後、無視します。

-
引数
項目 説明 argument-1
ddname、check-idなどチェック・ポイントと関連する式
2.3. PLIDUMP
現在開かれているファイル、現在の位置への呼び出しパスなどについての情報をダンプします。プログラムで使用するストレージの選択部分の定様式ダンプを獲得することができます。
OpenFrame PL/Iでは、PLICKPTサブルーチンをサポートしておらず、エラーメッセージを出力した後、無視します。

-
引数
項目 説明 argument-1
文字列式
argument-2
文字列式
2.4. PLIFILL
メモリの内容を指定された値で埋めます。

-
引数
項目 説明 argument-1
メモリ位置情報を持つPOINTER型
argument-2
メモリに埋める文字値を持つCHAR(1) NONVARYING型
argument-3
埋めるサイズを持つ式
2.6. PLIMOVE
メモリの内容を別のメモリ領域にコピーします。コピー元のメモリとコピー先のメモリ領域が重なる場合、結果は保証されません。

-
引数
項目 説明 argument-1
コピー先のメモリ領域を指すPOINTER型
argument-2
コピー元のメモリ領域を指すPOINTER型
argument-3
コピーするサイズを指定した式
2.8. PLIRETC
このサブルーチンによって呼び出されたPL/Iプログラム、またはPLIRETV組み込み関数を介した別のPL/Iプロシージャで調べることができるリターンコードを設定します。

-
引数
項目 説明 argument-1
FIXED BINARY(31,0)を持つリターンコードを指定する式
2.9. PLISRTA
ProSortを使用して入力ファイルをソートし、出力ファイルを作成します。。

-
引数
項目 説明 argument-1
SORT、READステートメントなど、ソートに関連する式
3. 疑似変数
受信領域を表します。疑似変数は互いにネストすることはできません。
疑似変数は、以下の場合にのみ使用できます。
-
代入ステートメントの左側
-
DO仕様内にあるターゲットで、SUBSTRの場合
-
GETステートメントのデータ・リスト、またはPUTステートメントのSTRINGオプションである場合
-
KEYTOオプションまたはREPLYオプションの文字列名である場合
以下は、疑似変数についての説明です。詳細については、該当節を参照してください。
関数 | 説明 |
---|---|
CONVERSION条件の原因となる文字の値を設定します。 |
|
CONVERSION条件の原因となる文字列の値を設定します。 |
|
文字列の集合のすべてのエレメントの連結である文字列を割り当てます。 |
|
文字列の部分文字列を割り当てます。 |
|
値の内部表示であるビット文字列を割り当てます。 |
3.1. ONCHAR
CONVERSION条件の原因となる文字の値を設定します。

-
戻り値
-
ONCHAR疑似変数は、ONCHAR組み込み関数の現行値を設定します。割り当てられたエレメントの値は、長さ1の文字値に変換されます。新しい文字はデータの変換が再度行われる際に使用されます。
-
疑似変数はコンテキスト以外で使用できません。
-
3.2. ONSOURCE
CONVERSION条件の原因となる文字列の値を設定します。

-
戻り値
-
ONSOURCE疑似変数は、ONSOURCE組み込み関数の現行値を設定します。割り当てられたエレメントの値は文字列に変換されます。必要な場合は、CONVERSION条件が起こった領域の長さと一致させるために、右側が空白で埋められるか切り捨てられます。データが再変換される際にこの文字列が使用されます。
-
疑似変数はコンテキスト以外で使用できません。
-
変換が再試行される際、疑似変数に割り当てられた文字列は、単一データ項目として処理されます。
エラーの訂正処理は、GET LISTまたはGET DATAステートメントの実行時に変換が発生した場合、1つ以上のデータ項目を含む文字列を割り当てることはできません。文字列に空白またはコンマが存在する場合、CONVERSION条件が再発生します。
-
3.3. STRING
文字列の集合のすべてのエレメントの連結である文字列を割り当てます。

-
引数
項目 説明 argument-1
集合体参照式またはエレメント参照式
-
argument-1の各基本エレメントは、すべてビット文字列か、すべて文字列である必要があります。
-
-
戻り値
-
STRING疑似変数は、argument-1が文字列のスカラーであれば、argument-1を文字列に割り当てます。argument-1の残りの文字列は空白またはゼロ・ビットで埋められるか、可変長の場合は長さがゼロになります。
-
疑似変数はコンテキスト以外で使用できません。
-
3.4. SUBSTR
文字列の部分文字列を割り当てます。

-
引数
項目 説明 argument-1
文字列参照式
-
argument-1は数字であってはいけません。
argument-2
式
-
FIXED BINARY値に変換可能なargument-2は、argument-1の部分文字列の開始位置を指定します。
argument-3
式
-
argument-3は、argument-1の部分文字列の長さを指定します。実数の固定小数点の2進値に変換できます。
-
argument-3の値がゼロの場合は、ヌル文字列が返されます。argument-3が省略された場合、返される部分文字列は、argument-1の位置argument-2からargument-1の終わりまでです。
argument-1が配列の場合にのみ、argument-2とargument-3が配列であることが可能です。
-
-
戻り値
-
SUBSTR疑似変数は、argument-1で、argument-2およびargument-3で指定された文字列の値を部分文字列に割り当てます。
-
argument-1の過剰は変更されません。可変文字列への割り当ては、文字列の長さを変更しません。
-
4. 組み込み関数の種類
疑似変数とサブルーチンを除く組み込み関数を、その特性によって以下のように分類します。
本節では、組み込み関数の使用方法について説明します。
4.1. 算術組み込み関数
算術組み込み関数は、算術値の特性を判別し、ルーチンの算術演算を実行する関数です。
算術関数には、1つまたは複数の引数から結果のデータ・タイプを派生するものもあります。引数のデータ・タイプが異なる場合、データ変換のルールに基づいて変換されます。
以下は、算術組み込み関数についての説明です。詳細については、該当節を参照してください。
関数 | 説明 |
---|---|
値の絶対値を計算します。 |
|
ある値より大きいか等しい最小の整数を計算します。 |
|
ある値より小さいか等しい最大の整数を計算します。 |
|
2つ以上の値の最大値を計算します。 |
|
2つ以上の値の最小値を計算します。 |
|
ある値で別の値を除算したときの剰余を返します。 |
|
指定された桁で値を丸めます。 |
|
値が負数、ゼロ、または正数の場合に、それぞれ-1、ゼロまたは 1 を返します。 |
|
ある値を切り捨ててできる整数を計算します。 |
4.1.1. ABS
値の絶対値を計算します。

-
引数
項目 説明 argument-1
式
-
戻り値
-
引数(argument-1)の絶対値(引数の正の値)を返します。
-
結果は、argument-1の基数、スケール、精度を持ちます。
-
4.1.2. CEIL
ある値より大きいか等しい最小の整数を計算します。

-
引数
項目 説明 argument-1
式
-
戻り値
-
結果は、argument-1の基数、スケール、精度を持ちます。
-
結果の精度は以下のとおりです。(Nは使用できる最大桁数です)
(min(N, max(p-q+1)),0)
-
4.1.3. FLOOR
ある値より小さいか等しい最大の整数を計算します。

-
引数
項目 説明 argument-1
式
-
戻り値
-
結果は、argument-1の基数、スケール、精度を持ちます。
-
argument-1の精度が(p,q)である場合を除き、結果の精度は以下のとおりです。(nは使用できる最大桁数です)
(min(n,max(p-q+1,1))0)
-
4.1.4. MAX
2つ以上の値の最大値を計算します。

-
引数
項目 説明 argument-1
式
argument-2
式
すべての引数は実数でなければなりません。結果は、引数と共通の基数およびスケールを持つ実数です。許可される引数の最大個数は64です。
-
戻り値
-
2つ以上の式の集合から最大値を返します。
-
argument-2を省略し、argument-1のみ記述した場合、argument-1値を返します。
-
引数が(p1,q1),(p2,q2),...,(pn,qn)の精度を使用した固定小数点である場合、結果は以下のようになります。(Nは使用できる最大の桁数です)
(min(N,max(p1-q1,p2-q2,...,pn-qn) + max(q1,q2,...,qn)),max(q1,q2,...,qn))
-
引数がp1,p2,..,pnの精度を使用した浮動小数点である場合、結果は以下のようになります。
max(p1,p2,...,pn)
-
4.1.5. MIN
2つ以上の値の最小値を計算します。

-
引数
項目 説明 argument-1
式
argument-2
式
結果は 引数の共通の基数とスケールを持ちます。許容される引数の最大数は64です。
-
戻り値
-
2つ以上の式の集合から最小値を返します。
-
argument-2を省略し、argument-1のみ記述した場合、argument-1値を返します。
-
引数が(p1,q1),(p2,q2),...,(pn,qn)の精度を使用した固定小数点の場合、結果は以下のようになります。(Nは使用できる最大の桁数です)
(min(N,max(p1-q1,p2-q2,...,pn-qn) + max(q1,q2,...,qn)),max(q1,q2,...,qn))
-
引数がp1,p2,..,pnの精度を使用した浮動小数点の場合、結果は以下のようになります。
max(p1,p2,...,pn)
-
4.1.6. MOD
ある値で別の値を除算したときの剰余を返します。

-
引数
項目 説明 argument-1
式
argument-2
式
-
argument-2=0の場合はZERODIVIDE条件が起こります。
-
-
戻り値
-
(argument-1 - R)/argument-2 = nを満たす、負数以外の最小値Rを返します。
-
結果値Rは、引数と共通の基数とスケールを持つ実数です。
結果が浮動小数点の場合、精度はpargument-1とargument-2の大きい方になります。
結果が固定小数点の場合、精度は以下のとおりです。(p1,q1)と(p2,q2)は、それぞれargument-1とargument-2の精度です。
(min(n,p2-q2+max(q1,q2)),max(q1,q2))
-
argument-1とargument-2の位取り係数が異なる固定小数点の場合、Rが計算される前に、小さい位取り係数の引数が大きい位取り係数に変換されます。変換に失敗すると、結果は予測不可能になります。
-
4.1.7. ROUND
指定された桁で値を丸めます。

-
引数
項目 説明 argument-1
式
-
argument-1が負数の場合、絶対値が丸められ、符号が戻ります。
argument-2
オプションの符号付き整数
-
丸めが行われる桁数を指定します。
-
-
戻り値
-
argument-2で指定された桁で丸められたargument-1の値を返します。結果は、argument-1のモード、基数、スケールになります。
-
argument-1の精度が(p,q)の場合、FIXEDの結果の精度は以下のとおりです。
(max(1,min(p-q+1+argument-2,N)),argument-2)
Nは許可される桁数の最大値です。そのため、argument-2は結果の位取り係数を指定します。
-
argument-2はFIXEDデータの位取り係数の制限に従う必要があります。ゼロより大きい場合は、小数点の右からargument-2番目の桁が丸められ、ゼロまたは負数の場合は、小数点の左から(1 - arugmnet-2)番目の桁が丸められます。
-
4.1.8. SIGN
値が負数、ゼロ、正数の場合に、それぞれ-1、0、1を返します。

-
引数
項目 説明 argument-1
式
-
戻り値
-
argument-1が正数、ゼロ、負数であることを示すREAL FIXED BINARY値を返します。
-
4.1.9. TRUNC
ある値を切り捨ててできる整数を計算します。

-
引数
項目 説明 argument-1
式
-
戻り値
-
argument-1を切り捨ててできる整数値を返します。
-
argument-1が正数またはゼロの場合は、argument-1以下の最も大きい整数値であり、argument-1が負数の場合は、argument-1以上の最も小さい整数値です。
-
結果の基数、モード、スケール、精度は、argument-1と同じです。
argument-1が精度(p,q)を使用した固定小数点の場合、結果の精度は以下のとおりです。(Nは、使用できる最大の桁数です)
(min(N,max(p-q+1,1)),0)
-
4.2. 配列処理組み込み関数
配列処理組み込み関数(Array-handling built-in functions)は、配列引数を演算してエレメント値を返します。
以下は、配列処理組み込み関数についての説明です。詳細については、該当節を参照してください。
関数 | 説明 |
---|---|
配列のすべてのエレメントのビット単位のANDを計算します。 |
|
配列のすべてのエレメントのビット単位のORを計算します。 |
|
配列のある次元のエレメントの数を返します。 |
|
配列の次元の上限を返します。 |
|
配列の次元の下限を返します。 |
|
2つの一次元配列に対して、多項式の近似値を返します。 |
|
配列のすべてのエレメントの和を計算します。 |
4.2.1. ALL
配列のすべてのエレメントのビット単位のANDを計算します。

-
引数
項目 説明 argument-1
計算配列式
-
argument-1がビット文字列配列でない場合、ビット文字列配列に変換されます。
-
-
戻り値
-
argument-1の各エレメントに対応するビットが存在し、1の場合、各ビットが1のビット文字列を返します。
-
結果の長さは最も長いエレメントと同じです。
-
4.2.2. ANY
配列のすべてのエレメントのビット単位のORを計算します。

-
引数
項目 説明 argument-1
計算配列式
-
argument-1がビット文字列配列でない場合、ビット文字列配列に変換されます
-
-
戻り値
-
argument-1の任意のエレメントに対応するビットが存在し、1の場合は、各ビットが1のビット文字列を返します。
-
結果の長さは最も長いエレメントと同じです。
-
4.2.3. DIMENSION(略語 : DIM)
配列のある次元のエレメントの数を返します。

-
引数
項目 説明 argument-1
配列参照式
-
argument-1の次元数は、argument-2より小さくてはなりません。
argument-2
argument-1の特定の次元を指定する式
-
必要な場合、argument-2はFIXED BINARY(31,0)に変換されます。argument-2は1以上の値でなければなりません。
-
argument-2は、配列が1次の場合にのみ省略可能です。argument-2が省略された場合、デフォルト値は1です。
-
-
戻り値
-
argument-1の次元argument-2の現行エクステントを指定するFIXED BINARY(31,0)値を返します。
-
argument-2がargument-1の次元よりも大きい場合、DIMENSIOM関数は未定義の値を返します。DIMENSIONの代わりにLBOUNDとHBOUNDを使用することを推奨します。
-
現在の OpenFrame PL/Iでは、DIMENSION組み込み関数のargument-2が変数の場合はサポートされていません。 |
4.2.4. HBOUND
配列の次元の上限を返します。

-
引数
項目 説明 argument-1
配列参照式
-
argument-1の次元数は、argument-2より小さくてはなりません。
argument-2
argument-1の特定の次元を指定する式
-
必要な場合、argument-2はFIXED BINARY(31,0)に変換されます。argument-2は1以上の値でなければなりません。
-
argument-2は、配列が1次の場合にのみ省略可能です。argument-2が省略された場合、デフォルト値は1です。
-
-
戻り値
-
argument-1の次元argument-2の現行の上限を指定するFIXED BINARY値を返します。
-
現在の OpenFrame PL/Iでは、HBOUND組み込み関数のargument-2が変数の場合はサポートされていません。 |
4.2.5. LBOUND
配列の次元の下限を返します。

-
引数
項目 説明 argument-1
配列参照式
-
argument-1の次元数は、argument-2より小さくてはなりません。
argument-2
argument-1の特定の次元を指定する式
-
必要な場合、argument-2はFIXED BINARY(31,0)に変換されます。argument-2は1以上でなければなりません。
-
argument-2は、配列が1次の場合にのみ省略可能です。argument-2が省略された場合、デフォルト値は1です。
-
-
戻り値
-
argument-1の次元argument-2の現行の下限を指定するFIXED BINARY値を返します。
-
現在の OpenFrame PL/Iでは、LBOUND組み込み関数のargument-2が変数の場合はサポートされていません。 |
4.3. バッファー管理組み込み関数
バッファー管理組み込み関数(Buffer-management built-in functions)は、バイト数とアドレスを使用して指定するストレージであるバッファーで動作する関数です。
以下は、バッファー管理組み込み関数についての説明です。詳細については、該当節を参照してください。
関数 | 説明 |
---|---|
バッファーの値を16進数で表した文字列を返します。 |
|
バッファー内で文字列やバッファーの位置を検索します。 |
|
いずれかの文字列要素がバッファー内に存在しない位置を、左から検索します。 |
|
いずれかの文字列要素がバッファー内に存在しない位置を、右から検索します。 |
4.3.1. HEXIMAGE
ユーザーが指定した場所のストレージの内容を16進数で表した文字列を返します。

-
引数
項目 説明 argument-1
ポインター・タイプやオフセット・タイプのように位置情報を持つ制限された式(Restricted expression)
-
オフセット・タイプの式は、AREA属性を持ちます。
argument-2
式
-
計算タイプを保持している必要があり、FIXED BINARY(31,0)に変換されます。
argument-3
argument-3を指定する場合、CHARACTER(1) NONVARYINGタイプである必要があります。
-
-
戻り値
-
argument-3を指定しない場合
argument-1の位置に保存された変数値の[argument-2]バイトを16進数で変換して文字列を返します。返される文字列の長さは、2 * [argument-2]です。
-
argument-3を指定している場合
argument-3を指定しない場合と同様に16進数文字列を返しますが、16進数の8文字ごとに、後ろにargument-3の文字を追加した形式を文字列で返します。返される文字列の長さは、(2 * [argument-2]) + ([argument-2] - 1) / 4 です。
-
4.3.2. MEMINDEX
バッファー内で部分文字列やバッファーの先頭位置を検索して返します。

-
引数が3つの場合
項目 説明 argument-1
バッファーのアドレス
argument-2
バッファーの長さ
-
計算可能な型である必要があります。
argument-3
バッファー内で検索する文字列
-
-
引数が4つの場合
項目 説明 argument-1
バッファーのアドレス
argument-2
バッファーの長さ
-
計算可能な型である必要があります。
argument-3
argument-1バッファー内で検索するバッファのアドレス
argument-4
argument-3バッファーの長さ
-
計算可能な型である必要があります。
-
-
戻り値
-
argument-1バッファー内で argument-3の文字列またはargument-3のバッファーと一致する部分を検索し、開始位置を返します。
-
4.4. 条件処理組み込み関数
条件処理組み込み関数(Condition-handling built-in functions)を使用すると、発生した条件の原因を判別できます。条件処理組み込み関数の使用は、ONユニットまたは以下のように動的子孫の範囲内でのみ有効です。他での使用はすべてコンテキストによって無視されます。
-
組み込み関数への条件特定
-
暗黙処置として発生した際のERROR条件またはFINISH条件
以下は、条件処理組み込み関数についての説明です。詳細については、該当節を参照してください。
関数 | 説明 |
---|---|
NAME条件が発生したフィールド値を文字列で返します。 |
|
CONVERSION条件が発生した文字の値を返します。 |
|
条件コード値を返します。 |
|
条件に対するID値を返します。 |
|
条件が発生したファイル名を返します。 |
|
条件が発生したソースの行位置を返します。(未サポート) |
|
条件が発生したプロシージャ名を返します。 |
|
条件が発生したソースの行オフセットを返します。(未サポート) |
|
CONVERSION条件が発生した文字列の値を返します。 |
4.4.1. DATAFIELD
NAME条件が発生したフィールド値を文字列で返します。

-
戻り値
-
条件が発生したフィールドの値を文字列で返します。
-
DATAFIELD組み込み関数がコンテキストの外で使用される場合は、空白が返されます。
-
4.4.2. ONCHAR
変換条件が発生した文字の値を返します。

-
戻り値
-
CONVERSION条件が発生する原因となる文字を含む、character(1)文字列を返します。この関数は、CONVERSION条件の暗黙処置として発生したERROR条件またはFINISH条件のONユニット、あるいはCONVERSION条件のONユニットの中にあります。
-
ONCHAR組み込み関数がコンテキスト以外で使用される場合は、空白が返されます。
-
4.4.3. ONCODE
条件コード値を返します。

-
戻り値
-
条件コードである実数の固定小数点の2進数の値を返し文脈ます。ONユニットまたはその動的子孫のコンテキストにあります。
-
ONCODE 組み込み関数がコンテキスト外で使用される場合、0が返されます。検出されたエラーおよび条件に対応するコードの場合は、ユーザーガイドを参照してください。
-
4.4.4. ONCONDID
条件に対するID値を返します。

-
戻り値
-
条件に対するID値をFIXED BINARY(31,0)型として返します。
-
ONCONDID組み込み関数がコンテキスト外で使用される場合、0が返されます。
-
ONCONDIDが返す値は次のとおりです。
条件 戻り値 条件 戻り値 AREA
1
ATTENTION
2
CONDITION
3
CONVERSION
4
ENDFILE
5
ENDPAGE
6
ERROR
7
FINISH
8
FIXEDOVERFLOW
9
INVALIDOP
10
KEY
11
NAME
12
OVERFLOW
13
RECORD
14
SIZE
15
STORAGE
16
STRINGRANGE
17
STRINGSIZE
18
SUBSCRIPTRANGE
19
TRANSMIT
20
UNDEFINEDFILE
21
UNDERFLOW
22
ZERODIVIDE
23
-
4.4.5. ONFILE
条件が発生したファイル名を返します。

-
戻り値
-
入出力条件が発生したファイル名の文字列を返します。
-
ONFILE組み込み関数がコンテキスト外で使用される場合、空文字列が返されます。ONユニットまたは任意の動的サブルーチンのコンテキスト内にあります。
-
4.4.7. ONLOC
条件が発生したプロシージャ名を返します。

-
戻り値
-
条件が発生したプロシージャ名を返します。
-
ONLOC組み込み関数がコンテキスト外で使用される場合、空文字列が返されます。ONLOCは常にCALLまたはGOTOステートメントに現れる名前に関係なく、複数のラベルの中で最も左側にある名前を返します。ONユニットまたは任意の動的サブルーチンのコンテキスト内にあります。
-
4.5. 日付/時刻組み込み関数
日付/時刻組み込み関数(Date/time built-in functions)は、日付と時刻の情報を、日、秒、日付/タイム・スタンプで処理するか、あるいは返します。一部の関数では、使用される日付/時刻のパターンを指定することができます。このような機能の時間領域と正確度は、システムによって異なります。
本節では、日付/時刻のフォーマットとパターンについて説明します。
日付と時刻を表すフォーマットは以下のとおりです。
区分 | 説明 |
---|---|
YYYY |
4桁の年 |
YY |
2桁の年 |
ZY |
2桁の年(先行ゼロを消去) |
MM |
2桁の月 |
ZM |
2桁の月(先行ゼロを消去) |
MMM |
3文字の月(例: MON) |
Mmm |
3文字の月(例: Dec) |
DD |
該当月での2桁表示の日付 |
ZD |
該当月での2桁表示の日付(先行ゼロを消去) |
DDD |
該当年での日数 |
HH |
該当日での時間数 |
MI |
該当時間内の分数 |
SS |
該当分内の秒数 |
999 |
該当秒内のミリ秒の数 |
999999 |
該当秒内のマイクロ秒 |
「MMM」と「Mmm」の場合、大文字と小文字を正確に一致させる必要があります。「HH」、「MM」、「SS」、「999」を使用できる唯一のパターンは、「YYYYMMDDHHMISS999」のパターンです。 |
以下は、日付/時刻を表現するパターンです。
区分 | 4桁の年 | 2桁の年 |
---|---|---|
年から書き始める場合 |
YYYYMMDD YYYYMMMDD YYYYMmmDD YYYYDDD YYYYMM YYYYMMM YYYYMmm YYYY YYYYMMDDHHMISS999 YYYY-MM-DD-HH.MI.SS.999999 YYYY-MM-DD HH.MI.SS.999999 |
YYMMDD YYMMMDD YYMmmDD YYDDD YYMM YYMMM YYMmm YY |
月から書き始める場合 |
MMDDYYYY MMMDDYYYY MmmDDYYYY MMYYYY MMMYYYY MmmYYYY |
MMDDYY MMMDDYY MmmDDYY MMYY MMMYY MmmYY |
日から書き始める場合 |
DDMMYYYY DDMMMYYYY DDMmmYYYY DDDYYYY |
DDMMYY DDMMMYY DDMmmYY DDDYY |
DB2フォーマット |
YYYY-MM-DD MM/DD/YYYY DD.MM.YYYY |
YY-MM-DD MM/DD/YY DD.MM.YY |
ゼロなし |
ZY-ZM-ZD YY-ZM-ZD ZM/ZD/ZY ZM/ZD/YY ZD.ZM.ZY ZD.ZM.YY |
パターンから日が省略されている場合、値が1であると仮定します。月と日の両方が省略されている場合、両方とも値が1であると仮定します。入力で「ゼロなし」のパターンの日付値は8文字未満になることがあります。たとえば、2009年1月20日という日付は、パターン「ZY-ZM-ZD」に合わせると「9-1-20」と指定されます。出力では、「ゼロなし」のパターンの日付値は常に8文字になり、ゼロの代わりに空白を表示します。
以下は、日付/時刻組み込み関数についての説明です。詳細については、各節を参照してください。
関数 | 説明 |
---|---|
現在の日付をパターンYYMMDDで返します。 |
|
現在の日付と時刻をユーザーが指定したパターンまたはデフォルトのパターンYYYYMMDDHHMISS999で返します。 |
|
日付/時刻パターンの文字列形式の日付を示す数、または今日の日付を示す数を返します。 |
|
日数を日付/時刻パターンの文字列として返します。 |
|
あるパターンの日付値を、別のパターンの日付値に変換します。 |
|
本日の日付を基準とするか、日付/時刻パターン文字列の形式を持つ日付を基準として、総秒数を返します。 |
|
現在の時刻をパターンHHMISS999で返します。 |
|
現在時刻をYYYY-MM-DD-HH.MI.SS.999999パターンで返します。 |
|
文字列が有効な日付値であるかどうかを検査します。 |
|
現在の日付、または特定のDAYS値に該当する曜日を返します。 |
4.5.2. DATETIME
現在の日付と時刻をユーザーが指定したパターンまたはデフォルトのパターンYYYYMMDDHHMISS999で返します。

-
引数
項目 説明 argument-1
式
-
argument-1が存在する場合、返される日付/時刻のパターンを指定します。
-
argument-1が存在しない場合、日付/時刻パターンはYYYYMMDDHHMISS999が使用されます。
-
argument-1は計算タイプおよび文字タイプを保持する必要があります。そうでない場合、文字に変換されます。
-
-
戻り値
-
デフォルト・パターンまたはユーザーが指定したパターンで今日の日付の文字列タイム・スタンプを返します。
-
許可されるパターンについては、日付/時刻パターンを参照してください。
-
4.5.3. DAYS
日付値に対応するリリアン形式の日数を返します。
-
リリアン日付
1582年10月14日を基準に経過した日数を表します。つまり、1582年10月15日は1になります。

-
引数
項目 説明 argument-1
日付を表す文字列式です。
-
省略する場合、DATETIME()組み込み関数を実行時の戻り値が使用されます。
argument-2
日付/時刻パターンです。
-
サポートされているパターンについては、日付/時刻パターンを参照してください。
-
計算タイプおよび文字タイプを保持する必要があります。
-
そうでない場合は、文字に変換されます。
-
省略する場合、パターンYYYYMMDDHHMISS9999が使用されます。
argument-3
argument-2の年形式が「YY」の場合、実際の年の範囲を決定するために使用される世紀ウィンドウ値です。
-
argument-3の値が正数の場合
argument-3の値を世紀ウィンドウ値として使用します。つまり、argument-3の値を基準に実際の年の範囲を決定します。たとえば、argument-3値が1950の場合、「YY」年形式の実際の年の値の範囲は1950年から2049年までです。
-
argument-3の値が0または負数の場合
システムが提供する年の値にargument-3値を足した値を世紀ウィンドウ値として使用して、「YY」年値の実際の範囲を決定します。たとえば、現在のシステムが提供する年の値が2017であり、argument-3値が-3であれば、世紀ウィンドウ値は「2017 - 3 = 2014」であり、「YY」年形式の実際の年の範囲は2014年から2113年までになります。
-
argument-3の値を省略する場合
デフォルトの世紀ウィンドウ値として1950を使用します。
-
-
戻り値
-
リリアン日付の1日を基準に、argument-1の日付まで経過した日数をFIXED BINARY(31,0)値に変換して返します。
-
4.5.4. DAYSTODATE
リリアン日付値を日付/時刻パターン形式の文字列として返します。

-
引数
項目 説明 argument-1
リリアン・フォーマットで表された日数
argument-2
日付/時刻パターン
-
許可されるパターンについては、日付/時刻パターンを参照してください。
-
計算可能な型である必要があります。
-
文字列型の値でない場合は、文字列に変換されます。
-
省略した場合は、YYYYMMDDHHMISS9999の値が使用されます。
argument-3
argument-2の年形式が「YY」の場合、実際の年の範囲を決定するために使用される世紀ウィンドウ値
-
-
戻り値
-
リリアン日付値のargument-1を、argument-2で指定した日付/時刻パターンに変換した文字列を返します。
-
4.5.5. REPATTERN
あるパターンの日付値を入力として受け取り、指定した別のパターンに変換して返します。

-
引数
項目 説明 argument-1
リリアン・フォーマットで表された日数
argument-2
変換する日付/時刻パターン
-
許可されるパターンについては、日付/時刻パターンを参照してください。
argument-3
argument-1の日付/時刻パターン
-
許可されるパターンについては、日付/時刻パターンを参照してください。
argument-4
argument-2およびargument-3の年形式が「YY」の場合、実際の年の範囲を決定するために使用される世紀ウィンドウ値
-
-
戻り値
-
argument-3の日付/時刻パターンで表されたargument-1の値を、argument-2の日付/時刻パターンに変換して返します。
-
4.5.6. SECS
日付値に対して、リリアン・フォーマットで表された秒数を返します。

-
引数
項目 説明 argument-1
日付を表す文字列式
-
省略した場合は、DATETIME()組み込み関数の実行時に返される値が使用されます。
argument-2
日付/時刻パターン
-
許可されるパターンについては、日付/時刻パターンを参照してください。
-
計算可能な型である必要があります。
-
文字列型の値でない場合は、文字列に変換されます。
-
省略した場合は、YYYYMMDDHHMISS9999の値が使用されます。
argument-3
argument-2の年形式が「YY」の場合、実際の年の範囲を決定するために使用される世紀ウィンドウ値
-
-
戻り値
-
リリアン日付を基準として、argument-1の日付までに経過した秒数を表す値をFLOAT BINARY(53)型で返します。
-
4.5.8. TIMESTAMP
現在時刻をYYYY-MM-DD-HH.MI.SS.999999パターンで返します。

-
戻り値
-
タイムスタンプ文字列をYYYY-MM-DD-HH.MI.SS.999999パターンで返します。
-
4.5.9. VALIDDATE
入力された文字列が指定された日付/時刻パターンと一致するかどうかを検査した結果を返します。

-
引数
項目 説明 argument-1
日付を表す文字列式
argument-2
日付/時刻パターン
-
許可されるパターンについては、日付/時刻パターンを参照してください。
-
計算可能な型である必要があります。
-
文字列型の値でない場合は、文字列に変換されます。
-
省略した場合は、YYYYMMDDHHMISS9999の値が使用されます。
argument-3
argument-2の年形式が「YY」の場合、実際の年の範囲を決定するために使用される世紀ウィンドウ値
-
-
戻り値
-
argument-1の値がargument-2の日付/時刻パターンに一致するかを検査し、一致する場合は '1’Bのビット文字列を返します。
-
4.5.10. WEEKDAY
現在の日付、または特定のDAYS値に該当する曜日を返します。

-
引数
項目 説明 argument-1
式
-
計算タイプでなければなりません。必要な場合には、FIXED BINARY(31,0)に変換されます 。
-
省略する場合、DAYS()組み込み関数を実行時の戻り値が使用されます。
-
argument-1の値を省略したときに、現在の日付がシステムで使用できない値である場合は、ゼロが返されます。
-
-
戻り値
-
デフォルト値、またはargument-1値の曜日を表すFIXED BINARY(31,0)値を返します。
1 = 日曜日 2 = 月曜日 ... 7 = 土曜日
-
4.6. 入出力組み込み関数
入出力組み込み関数(Input/output built-in functions)は、現行ファイルの状態を確認できる関数です。
以下は、入出力組み込み関数についての説明です。詳細については、各節を参照してください。
関数 | 説明 |
---|---|
指定したファイルの現在行を返します。 |
4.7. 整数操作組み込み関数
整数操作組み込み関数(Integer manipulation built-in functions)は、整数変数に対する演算を実行し、演算結果を返す関数です。
以下は、整数操作組み込み関数についての説明です。詳細については、各節を参照してください。
関数 | 説明 |
---|---|
2つ以上の固定二進値に対してANDビット演算を実行します。 |
|
2つ以上の固定二進値に対してORビット演算を実行します。 |
|
固定二進値に対して左論理シフト演算を実行します。 |
|
固定二進値に対して右論理シフト演算を実行します。 |
4.7.1. IAND
入力された引数に対してAND ビット演算を実行した結果を返します。

-
引数
関数 説明 argument-1, argument-2
計算可能な式
-
戻り値
-
引数のうち、SIGNED属性を持つ値が1つでもある場合、UNSIGNED属性を持つ値はSIGNED属性に変換されます。
-
結果は、FIXED BIN( max(p1, p2, ...), 0)型として返されます。
-
4.7.2. IOR
入力された引数に対してOR ビット演算を実行した結果を返します。

-
引数
関数 説明 argument-1, argument-2
計算可能な式
-
戻り値
-
引数のうち、SIGNED属性を持つ値が1つでもある場合、UNSIGNED属性を持つ値はSIGNED属性に変換されます。
-
結果は、FIXED BIN( max(p1, p2, ...), 0)型として返されます。
-
4.8. 数学組み込み関数
数学組み込み関数(Mathematical built-in functions)は、浮動小数点の値で演算を行い、浮動小数点の結果を生成します。浮動小数点でない引数は変換されます。
以下は、数学組み込み関数についての説明です。詳細については、各節を参照してください。
関数 | 説明 |
---|---|
逆余弦(ARCCOS)の値を計算します。 |
|
逆正弦(ARCSIN)の値を計算します。 |
|
逆正接(ARCTAN)の値を計算します。 |
|
逆正接(ARCTAN)の値を度で計算します。 |
|
余弦(COS)の値を計算します。 |
|
余弦(COS)の値を度で計算します。 |
|
eの累乗を計算します。 |
|
自然対数を計算します。 |
|
底10の常用対数を計算します。 |
|
正弦(SIN)の値を計算します。 |
|
正弦(SIN)の値を度で計算します。 |
|
平方根を計算します。 |
|
正接(TAN)の値を計算します。 |
|
正接(TAN)の値を度で計算します。 |
4.8.1. ACOS
逆余弦(ARCCOS)の値を計算します。

-
引数
項目 説明 argument-1
ABS(argument-1) ≤ 1の式
-
戻り値
-
引数(argument-1)のラジアンの逆余弦の近似を実数の浮動小数点の値で返します。
-
結果の範囲は0 ≤ ACOS(argument-1) ≤ πで、argument-1の基数と精度になります。
-
4.8.2. ASIN
逆正弦(ARCSIN)の値を計算します。

-
引数
項目 説明 argument-1
ABS(argument-1) ≤ 1の式
-
戻り値
-
引数(argument-1)のラジアンの逆正弦の近似を実数の浮動小数点の値で返します。
-
結果の範囲は-π/2 ≤ ASIN(argument-1) ≤ π/2で、argument-1の基数と精度になります。
-
4.8.3. ATAN
逆正接(ARCTAN)の値を計算します。

-
引数
項目 説明 argument-1
式
argument-2
式
-
戻り値
-
argument-1ラジアンまたは比率argument-1/argument-2の逆正接の近似を浮動小数点の値で返します。
-
argument-1が単独で指定されている場合、結果はargument-1の基数と精度になり、その範囲は-π/2 ≤ ATAN(argument-1) ≤ π/2です。
-
argument-1とargument-2が指定されている場合、それぞれ実数でなければなりません。両方ともゼロの場合は、エラーになります。ゼロ以外のargument-1、argument-2の値の結果は、長い方の引数の精度、式の規則で決まる基数、および以下の式で指定される値が含まれます。
-
argument-2>0の場合は、ATAN(argument-1/argument-2)値が含まれます。
-
argument-2=0でargument-1>0の場合は、π/2値が含まれます。
-
argument-2=0でargument-1<0の場合は、-π/2値が含まれます。
-
argument-2<0でargument-1≥0の場合は、π + ATAN(argument-1/argument-2)値が含まれます。
-
argument-2<0でargument-1<0の場合は、-π + ATAN(argument-1/argument-2)値が含まれます。
-
-
4.8.4. ATAND
逆正接(ARCTAN)の値を度で計算します。

-
引数
項目 説明 argument-1
式
argument-2
式
-
戻り値
-
argument-1ラジアンまたは比率argument-1/argument-2の逆正接の近似を実数の浮動小数点の値で返します。
-
argument-1が単独で指定されている場合、実数でなければなりません。結果はargument-1の基数と精度になり、その範囲は-90 ≤ ATAND(argument-1) ≤ 90です。
-
argument-1とargument-2が両方指定されている場合、それぞれ実数でなければなりません。結果の範囲は(180/π) * ATAN(argument-1,argument-2)です。
-
引数の要件および属性については、ATANを参照してください。
-
4.8.5. COS
余弦(COS)の値を計算します。

-
引数
項目 説明 argument-1
ラジアン値を使用した式
-
戻り値
-
argument-1のモード、基数、精度の浮動小数点で、argument-1の余弦の近似値を返します。
-
4.8.6. COSD
余弦(COS)の値を度で計算します。

-
引数
項目 説明 argument-1
度の値の式
-
戻り値
-
argument-1の余弦の近似値であり、モード、基数、精度を持つ実数の浮動小数点値を返します。
-
4.8.7. EXP
eの累乗を計算します。

-
引数
項目 説明 argument-1
式
-
戻り値
-
eの累乗の近似値である浮動小数点値を返します。
-
結果は、argument-1の基数、モード、精度を持ちます。
-
4.8.8. LOG
自然対数を計算します。

-
引数
項目 説明 argument-1
式
-
argument-1はゼロより大きくなければなりません。
-
-
戻り値
-
argument-1の自然対数(底e)の近似値である浮動小数点値を返します。
-
結果は、argument-1の基数、モード、精度を持ちます。
-
4.8.9. LOG10
底10の対数を計算します。

-
引数
項目 説明 argument-1
式
-
argument-1はゼロより大きくなければなりません。
-
-
戻り値
-
argument-1の常用対数(底10)の近似値である実数型浮動小数点値を返します。
-
結果は、argument-1の基数、精度を持ちます。
-
4.8.10. SIN
正弦(SIN)の値を計算します。

-
引数
項目 説明 argument-1
ラジアン値の式
-
戻り値
-
argument-1の正弦の近似値であり、argument-1のモード、基数、精度を持つ浮動小数点値を返します。
-
4.8.11. SIND
正弦(SIN)の値を度で計算します。

-
引数
項目 説明 argument-1
度で示される値を持つ式
-
戻り値
-
argument-1の正弦の近似値であり、argument-1のモード、基数、精度を持つ浮動小数点値を返します。
-
4.8.12. SQRT
平方根を計算します。

-
引数
項目 説明 argument-1
式
-
argument-1が実数の場合、ゼロより大きくなければなりません。
-
-
戻り値
-
argument-1の平方根の近似値であり、argument-1のモード、基数、精度を持つ浮動小数点値を返します。
-
4.9. その他の組み込み関数
その他の組み込み関数(Miscellaneous built-in function)とは、これまでのカテゴリーに該当しない関数です。
以下は、その他の組み込み関数についての説明です。詳細については、各節を参照してください。
関数 | 説明 |
---|---|
整数値に対応する文字を返します。 |
|
PL/Iのリターンコード値を返します。 |
|
プロシージャ名を返します。 |
|
文字に対応する整数値を返します。 |
|
文字列の集合のすべてのエレメントを連結した文字列を返します。 |
|
値の内部表示のビット文字列を返します。 |
4.9.1. CHARVAL
整数値に対応する文字を返します。

-
引数
項目 説明 argument-1
文字に変換する式
-
戻り値
-
argument-1のエレメントに対応する整数値のEBCDIC文字を返します。
-
戻り値の属性は、CHARACTER(1)です。
-
4.9.2. PLIRETV
PL/Iのリターンコード値を返します。

-
戻り値
-
PL/IのリターンコードであるFIXED BINARY(31,0)の値を返します。
-
PL/Iのリターンコードの値は、CALL PLIRETCステートメントで指定された最新の値です。
-
4.9.3. PROCEDURENAME(略語: PROCNAME)
組み込み関数が呼び出されたプロシージャ名を文字列で返します。

-
戻り値
-
プロシージャ名を不変文字列形式で返します。
-
プロシージャが複数のラベルを使用する場合、CALL文やGOTO文に使用されているかどうかに関係なく、左端の名前を返します。
-
4.9.4. RANK
文字に対応する整数値を返します。

-
引数
項目 説明 argument-1
数字に変換する式
-
必ずCHARACTER(1) NONVARYINGを持つ必要があります。
-
-
戻り値
-
argument-1のエレメントに対応するEBCDIC文字の整数値を返します。
-
4.9.5. STRING
文字列の集合のすべてのエレメントを連結した文字列を返します。

-
引数
項目 説明 argument-1
集計参照式またはエレメント参照式
-
戻り値
-
argument-1 のすべての要素を結合した文字列を返します。
-
STRING組み込み関数には以下の制限があります。
-
組合せを含む組合せや構造には適用できません。
-
スカラーに適用する場合、スカラーは文字列である必要があります。
-
構造に適用する場合、構造はパディングバイトを含んではいけません。構造のエレメントはすべて、非整列ビット文字列であるか、すべて文字列である必要があります。
-
配列に適用する場合、配列内のすべてのエレメントは上記の制限に従う必要があります。
-
-
4.10. 精度処理組み込み関数
精度処理組み込み関数(Precision-handling built-in functions)は、変数の精度を指定どおりに変更し、その結果を返します。
以下は、精度処理組み込み関数についての説明です。詳細については、各節を参照してください。
関数 | 説明 |
---|---|
指定した精度で、2つの値を加算します。 |
|
値を2進数に変換します。 |
|
値を10進数に変換します。 |
|
指定した精度で、2つの値を除算します。 |
|
値を固定小数点に変換します。 |
|
値を浮動小数点に変換します。 |
|
指定した精度で、2つの値を乗算します。 |
|
値を指定の精度に変換します。 |
4.10.1. ADD
指定された精度で、2つの値を加算します。

-
引数
項目 説明 argument-1
式
argument-2
式
argument-3
制限付き式
-
この演算で維持される桁数を指定します。
argument-4
結果の位取り係数を指定する制限付き式
-
結果が固定小数点の場合、argument-4が省略されると、位取り係数ゼロがデフォルト値になります。
-
結果が浮動小数点の場合、argument-4は省略します 。
-
-
戻り値
-
argument-1とargument-2の和をargument-3とargument-4で指定された精度で返します。
-
結果の基数、スケール、モードは、PRECTYPEコンパイラー・オプションによって規則が変更されない限り、式の評価規則に基づいて決定されます。
-
ADDは、減算されるオペランドの接頭部に負符号を付けて、減算に使用できます。
-
4.10.2. BINARY
値を2進数に変換します。

-
引数
項目 説明 argument-1
式
argument-2
制限付き式
-
この演算で維持される桁数を指定します。実行の限界を超えることはできません。
argument-3
結果の位取り係数を指定する制限付き式
-
結果が固定小数点の場合、argument-2が指定されます。argument-3が省略される場合、位取り係数ゼロがデフォルト値になります。
-
結果が浮動小数点の場合、argument-3は省略します。
-
-
戻り値
-
argument-2とargument-3で指定される精度で、argument-1の2進数の値を返します。
-
argument-2とargument-3が省略された場合、結果の精度は基数変換の規則に基づいて決定されます。
-
4.10.3. DECIMAL
値を10進数に変換します。

-
引数
項目 説明 argument-1
式
argument-2
この演算で維持される桁数を指定する制限付き式
argument-3
結果の位取り係数を指定する制限付き式
-
結果が固定小数点の場合、argument-2が指定されます。argument-3が省略される場合、位取り係数はゼロと見なされます。
-
結果が浮動小数点の場合、argument-3は省略します。
-
-
戻り値
-
argument-2とargument-3で指定される精度で、argument-1の10進数の値を返します。結果には、argument-1のモードとスケールが含まれています。
-
argument-2とargument-3が省略された場合、結果の精度は基数変換の規則に基づいて決定されます。
-
4.10.4. DIVIDE
指定された精度で、2つの値を除算します。

-
引数
項目 説明 argument-1
式
argument-2
式
-
argument-2=0の場合、ZERODIVIDE条件が起こります。
argument-3
この演算で維持される桁数を指定する制限付き式
argument-4
結果の位取り係数を指定する制限付き式
-
結果が固定小数点の場合、argument-4が省略されると、位取り係数はゼロと見なされます。
-
結果が浮動小数点の場合、argument-4は省略します。
-
-
戻り値
-
argument-1/argument-2の商を、argument-3とargument-4で指定された精度で返します。
-
結果の基数、スケール、モードは、PRECTYPEコンパイラー・オプションによって規則が変更されない限り、式の評価規則に基づいて決定されます。
-
4.10.5. FIXED
値を固定小数点に変換します。

-
引数
項目 説明 argument-1
式
argument-2
結果の桁数を指定する制限付き式
-
実行の限界を超えてはいけません。
argument-3
結果の位取り係数を指定する制限付き式
-
argument-3が省略された場合、位取り係数はゼロと見なされます。
-
-
戻り値
-
argument-2とargument-3で指定される精度で、argument-1の固定小数点の値を返します。結果には、argument-1の基数とモードが含まれています。
-
argument-2とargument-3の両方が省略された場合、2進数の結果は(15,0)、10進数の結果は(5,0)がデフォルト値になります。
-
4.10.6. FLOAT
値を浮動小数点に変換します。

-
引数
項目 説明 argument-1
式
argument-2
結果の最小桁数を指定する制限付き式
-
argument-2が省略された場合、結果の精度は基数変換の規則に基づいて決定されます。
-
argument-2が省略された場合、2進数の結果は15、10進数の結果は5がデフォルト値になります。
-
-
戻り値
-
argument-2で指定される精度で、argument-1の浮動小数点の近似値を返します。結果には、argument-1の基数とモードが含まれています。
-
argument-2とargument-3の両方が省略された場合、2進数の結果は(15,0)、10進数の結果は(5,0)がデフォルト値になります。
-
4.10.7. MULTIPLY
指定された精度で、2つの値を乗算します。

-
引数
項目 説明 argument-1
式
argument-2
式
argument-3
この演算で維持される桁数を指定する制限付き式
argument-4
結果の位取り係数を指定する制限付き式
-
結果が固定小数点の場合、argument-4が省略されると、位取り係数はゼロと見なされます。
-
結果が浮動小数点の場合、argument-4は省略します。
-
-
戻り値
-
argument-1とargument-2の積を、argument-3とargument-4で指定された精度で返します。
-
結果の基数、スケール、モードは、PRECTYPEコンパイラー・オプションによって規則が変更されない限り、式の評価規則によって決定されます。
-
4.11. ストレージ制御組み込み関数
ストレージ制御組み込み関数(Storage control built-in functions)により、ストレージ所要量と変数の位置を判別して、特殊値の区域とロケーター変数への割り当て、オフセット値とポインター値間の変換の実行、被制御変数の世代番号の取得、オブジェクトとクラスのデータおよび手法の参照が可能です。
以下は、ストレージ制御組み込み関数についての説明です。詳細については、各節を参照してください。
関数 | 説明 |
---|---|
変数のアドレスを返します。 |
|
被制御変数の世帯番号を返します。 |
|
ポインターとオフセットの値を整数に変換します。 |
|
変数の現行サイズを返します。 |
|
CURRENTSIZEの同義語です。 |
|
ヌル・ポインター値を返します。 |
|
ポインターをオフセットに変換します。 |
|
オフセットをポインターに変換します。 |
|
引数の和であるポインター値を返します。 |
|
変数の最大サイズを返します。 |
|
SIZEの同義語です。 |
4.11.1. ADDR
変数のアドレスを返します。

-
引数
項目 説明 argument-1
参照式
データ・タイプ変数、データ構成変数、位置合わせ変数、ストレージ・クラス変数を参照します。ただし、以下のものは除きます。
-
位置合わせされていない固定長のビット文字列である変数への添え字付き参照式
-
DEFINED変数またはBASED変数、あるいは位置合わせされていない固定長のビット文字列の単純パラメータへの参照式
-
最初の基本エレメントが位置合わせされていない固定長のビット文字列である小構造体または共用体
-
DEFINED属性を持つ大構造体か共用体、またはパラメータである大構造体か共用体で、位置合わせされていない固定長のビット文字列を最初のエレメントとするもの
-
連結ストレージを参照しない参照式
argument-1の参照先と結果は以下のとおりです。
-
集計パラメータの場合はCONNECTED属性を保持している必要があります。
-
集計の場合、戻り値は最初のエレメントを識別します。
-
コンポーネントまたはセクション間の集合の場合は、戻り値では添え字および構造体または共用体の修飾が考慮されます。
-
可変文字列の場合、戻り値は2バイトの接頭部を識別します。
-
区域の場合、戻り値は制御情報を識別します。
-
現行プログラムに割り当てられていない制御変数の場合は、ヌル・ポインター値が返されます。
-
基底付き変数の場合、結果は明示的にargument-1を修飾するポインターの値か、その宣言でargument-1に関連付けられたポインター、またはヌル・ポインターの値です。
-
パラメータであり、仮引数が作成されている場合、戻り値は仮引数を識別します。
-
-
戻り値
-
引数(argument-1)の世代を識別するポインター値を返します。
-
4.11.2. ALLOCATION(略語: ALLOCN)
被制御変数の世帯番号を返します。

-
引数
項目 説明 argument-1
レベル1の被制御変数
-
戻り値
-
引数(argument-1)の世帯値を返します。
-
4.11.3. BINARYVALUE(略語: BINVALUE)
ポインターとオフセットの値を整数に変換します。

-
引数
項目 説明 argument-1
式
-
戻り値
-
argument-1の値をFIXED BINARY(31,0)に変換します。argument-1は、ポインターまたはオフセットです。
-
4.11.4. CURRENTSIZE
変数の現行サイズを返します。

-
引数
項目 説明 argument-1
任意のデータ・タイプ、データ構成、ストレージ・クラスを持つ変数です。ただし、以下のものは除きます。
-
位置合わせされていない固定長ビット文字列であるBASED変数、DEFINED変数、パラメータ変数、添え字付き変数、構造変数、または共用体基底付き変数
-
最初または最後の基本エレメントが位置合わせされていない固定長のビット文字列である小構造体または共用体
-
BASED属性、DEFINED属性、またはパラメータ属性を持つ大構造体か共用体、またはパラメータである大構造体か共用体で、位置合わせされていない固定長のビット文字列を最初または最後のエレメントとするもの
-
連結ストレージにない変数
-
-
戻り値
-
argument-1の要求に対し、実装環境定義ストレージを与えるFIXED BINARY値をバイト単位で返します。
-
変数が割り当てられていない場合、CURRENTSIZE組み込み関数を調節可能エクステントと共に、BASED変数上で使用してはなりません。
-
4.11.5. CURRENTSTORAGE(略語: CSTG)
CURRENTSIZEの同義語です。詳細については、CURRENTSIZEを参照してください。
4.11.6. NULL
ヌル・ポインター値を返します。

-
戻り値
-
ヌル・ポインター値を返します。ヌル・ポインター値は変数の生成を識別しません。ヌル・ポインター値は、ハンドルに割り当てられ、ハンドルと比較されます。
-
オフセット変数に組み込み関数の値を割り当てることで、OFFSETに変換されます。
-
4.11.7. OFFSET
ポインターをオフセットに変換します。

-
引数
項目 説明 argument-1
ポインター参照式
argument-2
区域参照式
-
戻り値
-
区域argument-2からのポインターargument-1の相対位置をオフセット値で返します。
-
argument-1がヌル・ポインターの場合は、ヌル・オフセットを返します。
-
4.11.8. POINTER(略語: PTR)
オフセットをポインターに変換します。

-
引数
項目 説明 argument-1
オフセット参照式
argument-2
区域参照式
-
戻り値
-
区域argument-2からオフセットargument-1が離れた位置をポインター値で返します。
-
argument-1がヌル・オフセットの場合は、ヌル・ポインターを返します。
-
4.11.9. POINTERADD(略語: PTRADD)
引数の和であるポインター値を返します。

-
引数
項目 説明 argument-1
ポインター式
argument-2
式
-
計算タイプを保持する必要がある式。FIXED BINARY(31,0)に変換されます。
-
-
戻り値
-
argument-1のポインター値とargument-2値を併せたポインター値を返します。
-
4.11.10. SIZE
変数の最大サイズを返します。

-
引数
項目 説明 argument-1
任意のデータ・タイプ、データ構成、位置合わせ、ストレージ・クラスを持つ変数です。ただし、以下のものは除きます。
-
BASED変数、DEFINED変数、パラメータ変数、添え字付き変数、構造変数、または共用体基底付き変数
-
最初または最後の基本エレメントが位置合わせされていない固定長のビット文字列である小構造体または共用体(ただし、その小構造体を含んでいる大構造体または共用体の最初または最後のエレメントになっている場合を除く)
-
BASED属性、DEFINED属性、またはパラメータ属性を持つ大構造体か共用体、またはパラメータである大構造体か共用体で、位置合わせされていない固定長のビット文字列を最初または最後のエレメントとするもの
-
連結ストレージにない変数
-
-
戻り値
-
argument-1に割り当てられた実装環境定義ストレージを与えるFIXED BINARY値をバイト単位で返します。
-
変数が割り当てられていない場合、SIZE組み込み関数を調節可能エクステントと共に、BASED変数上で使用してはなりません。
-
4.11.11. STORAGE(略語: STG)
SIZEの同義語です。詳細については、SIZEを参照してください。
4.12. 文字列処理組み込み関数
文字列処理組み込み関数(String-handling built-in functions)は、ビット、文字列、漢字文字列、ワイド文字列の処理を簡素化します。文字列の引数は、関数の記述で与えられた規則、あるいはデータ変換規則に基づいて、文字列に変換される算術式で表されます。
関数 | 説明 |
---|---|
値を文字列に変換します。 |
|
ピクチャー指定に変換された値で構成される文字列を返します。 |
|
指定した数の0xFF文字を持つ文字列を返します。 |
|
文字列中にある1つの文字列の位置を検出します。 |
|
文字列値を左揃えにして返します。 |
|
文字列の現行の長さを返します。 |
|
指定した数の0x00文字を持つ文字列を返します。 |
|
文字列のすべてのアルファベットを小文字に変換して返します。 |
|
指定した文字列を指定した回数+1回コピーした文字列を返します。 |
|
文字列値を右揃えにして返します。 |
|
ある文字列を構成する文字が他の文字列に含まれているかどうかを左から右の方向に検索して、最初に出現した位置を返します。 |
|
ある文字列を構成する文字が他の文字列に含まれているかどうかを右から左の方向に検索して、最初に出現した位置を返します。 |
|
文字列の部分文字列を割り当てます。 |
|
2つの変換文字列に基づいて文字列を変換します。 |
|
文字列の左端と右端を取り除いた文字列を返します。 |
|
文字列のすべてのアルファベットを大文字に変換して返します。 |
|
ある文字列にないエレメントが、他の文字列で一番最初に検索される位置を返します。左から右に検索します。 |
|
ある文字列にないエレメントが、他の文字列で一番最初に検索される位置を返します。右から左に検索します。 |
4.12.1. CHARACTER(略語 : CHAR)
値を文字列に変換します。

-
引数
項目 説明 argument-1
式
-
argument-1は計算タイプでなければなりません。
-
argument-1がグラフィックでない場合、CHARACTERは文字に変換されたargument-1を返します。argument-1がグラフィックの場合、CHARACTERはSBCS文字に変換して返します。
-
DBCS文字がSBCS等価なものに変換できない場合、CONVERSION条件が起こります。
-
argument-1の値はチェックされません。
argument-2
式
-
必要な場合、実数の固定小数点の2進数の値に変換されます。
-
argument-2が省略された場合、長さはタイプ変換の規則によって決定されます。
-
argument-2は負数以外でなければなりません。argument-2=0の場合、結果はヌル文字列です。
-
-
戻り値
-
argument-2で指定された長さで、文字値argument-1を返します。また、CHARACTERは、グラフィックから文字タイプへの変換もサポートします。
-
結果は、argument-1のモード、基数、スケール、精度になります。
-
ただし、argument-1が精度(p,q)の固定小数点の場合、結果の精度は以下のとおりです。
(min(N, max(p-q+1)), 0)
Nは使用できる最大桁数です。
-
4.12.2. EDIT
ピクチャー指定に変換された値で構成される、ピクチャー指定と同じ長さの文字列を返します。

-
引数
項目 説明 argument-1
式
-
計算タイプでなければなりません。
argument-2
文字列式
-
文字タイプを保持し、有効なピクチャー文字を含んでいる必要があります。
-
有効なピクチャー指定を含んでいない場合は、ERROR条件が発生します。
-
-
戻り値
-
argument-1をargument-2のピクチャー指定に変換した、argument-2の長さの文字列を返します。
-
4.12.3. HIGH
指定した数の0xFF文字を持つ文字列を返します。

-
引数
項目 説明 argument-1
式
-
必要な場合、argument-1は正の実数固定小数点の2進数の値に変換されます。
-
argument-1=0の場合、結果はヌル文字列です。
-
-
戻り値
-
照合順序の最上位の文字(16進数のFF)で、長さargument-1の文字列を返します。
-
4.12.4. INDEX
文字列中にある1つの文字列の位置を検出します。

-
引数
項目 説明 argument-1
検索される文字列式
argument-2
検索元の文字列式
argument-3
-
argumnet-1内で処理を開始する位置を指定します。
-
計算タイプを保持している必要があり、FIXED BINARY(31,0)に変換されます。
-
-
戻り値
-
argument-2と等しい部分文字列のargument-1内の開始位置を示すスケールのないREAL FIXED BINARY値を返します。また、処理を開始するargument-1内の位置を指定することもできます。
-
argument-1内でargument-2が発生しない場合や、argument-1またはargument-2のいずれかの長さがゼロである場合は、値ゼロが返されます。
-
argument-3が1より小さい場合、またはargument-3が1+length(argument-1)より大きい場合、STRINGRANGE条件が発生し、結果は0になります。
-
4.12.5. LEFT
文字列を指定された長さの空の文字列の左端に挿入した後、その右側を指定した文字で埋めて返します。

-
引数
項目 説明 argument-1
式
-
計算タイプおよび文字タイプを保持している必要があります。そうでない場合は、CHARACTERタイプに変換されます。
argument-2
式
-
計算タイプおよび文字タイプを保持している必要があります。FIXED BINARY(31,0)属性を持たない場合は、FIXED BINARY(31,0)属性に変換されます。
argument-3
式
-
argument-2の長さを持つ空の文字列の左端にargument-1の文字列を挿入した後に残りの空間を埋めるために使用されます。
-
CHARACTER(1) NONVARYINGタイプでなければなりません 。
-
省略する場合、空白文字が使用されます。
-
-
戻り値
-
左端にargument-1の文字列が挿入され、その右側にはargument-3の文字が挿入された、argument-2の長さを持つ文字列を返します。
-
4.12.6. LENGTH
文字列の現行の長さを返します。

-
引数
項目 説明 argument-1
文字列式
-
argument-1が2進数の場合はビット文字列に変換されます。それ以外の場合、他の文字列に変換されます。
-
-
戻り値
-
argument-1の現行の長さを指定するスケールのないREAL FIXED BINARY値を返します。
-
4.12.7. LOW
指定した数の0x00文字を持つ文字列を返します。

-
引数
項目 説明 argument-1
式
-
必要な場合、argument-1は正の実数固定小数点の2進数の値に変換されます。
-
argument-1=0の場合、結果はヌル文字列です。
-
-
戻り値
-
照合順序の最下位の文字(16進数の00)で、長さargument-1の文字列を返します。
-
4.12.8. LOWERCASE
文字列のすべてのアルファベットを小文字に変換して返します。

-
引数
項目 説明 argument-1
変換する式
-
必要に応じて文字列に変換されます。
-
-
戻り値
-
小文字に変換されたargument-1の文字列を返します。
-
4.12.9. REPEAT
指定した文字列を指定した回数+1回コピーした文字列を返します。

-
引数
項目 説明 argument-1
繰り返されるビット、文字、漢字、またはワイド文字の式
-
argument-1が演算式の場合は変換が発生します。
-
2進数の場合はビット文字列に変換され、10進数の場合は文字列に変換されます。
argument-1
式
-
必要な場合、argument-2は実数の固定小数点の2進数の値に変換されます。
-
-
戻り値
-
argument-2で指定された数だけ連結したargument-1のビット文字列、文字列、漢字文字列、またはワイド文字列を返します。つまり、argument-1の(argument-2 + 1)オカレンスがあります。
-
4.12.10. RIGHT
文字列を指定された長さの空の文字列の右端に挿入した後、その左側を指定した文字で埋めて返します。

-
引数
項目 説明 argument-1
式
-
計算タイプを保持している必要があります。文字タイプを保持することもできます。そうでない場合は、CHARACTERタイプに変換されます。
argument-2
式
-
計算タイプを保持している必要があり、FIXED BINARY(31,0)に変換されます。
argument-3
式
-
argument-2の長さを持つ空の文字列の右端にargument-1の文字列を挿入した後に残りの空間を埋めるために使用されます。
-
CHARACTER(1) NONVARYINGタイプでなければなりません 。
-
省略する場合、空白文字が使用されます 。
-
-
戻り値
-
右端にargument-1の文字列が挿入され、その左側にはargument-3の文字が挿入された、argument-2の長さを持つ文字列を返します。
-
4.12.11. SEARCH
ある文字列を構成する文字が他の文字列に含まれているかどうかを左から右の方向に検索して、最初に出現した位置を返します。

-
引数
項目 説明 argument-1
文字列式
argument-2
文字列式
-
argument-1文字列で検索する文字、ビット、グラフィック、またはワイド文字を含む文字列です。
argument-3
式
-
検索を開始するargument-1内の位置です。
-
計算タイプを保持している必要があり、FIXED BINARY(31,0)に変換されます。
-
省略する場合、ゼロが使用されます。
-
-
戻り値
-
argument-1文字列で、argument-2文字列を構成する文字を、argument-3の開始位置から右方向に検索した後、最初に登場する文字の位置をスケールのないREAL FIXED BINARY値で返します。
-
argument-1またはargument-2が空の文字列である場合は、0を返します。
-
argument-1文字列内にargument-2を構成する文字が存在しない場合は、0を返します。
-
4.12.12. SEARCHR
ある文字列を構成する文字が他の文字列に含まれているかどうかを右から左の方向に検索して、最初に出現した位置を返します。

-
引数
項目 説明 argument-1
文字列式
argument-2
文字列式
-
argument-1文字列で検索する文字、ビット、グラフィック、またはワイド文字を含む文字列です。
argument-3
式
-
検索を開始するargument-1内の位置です。
-
計算タイプを保持している必要があり、FIXED BINARY(31,0)に変換されます。
-
省略する場合、LENGTH(argument-1)が使用されます。
-
-
戻り値
-
argument-1文字列で、argument-2文字列を構成する文字を、argument-3の開始位置から左方向に検索した後、最初に登場する文字の位置をスケールのないREAL FIXED BINARY値で返します。
-
argument-1またはargument-2が空の文字列である場合は、0を返します。
-
argument-1文字列内にargument-2を構成する文字が存在しない場合は、0を返します。
-
4.12.13. SUBSTR
文字列の部分文字列を割り当てます。

-
引数
項目 説明 argument-1
文字列式
-
部分文字列が抽出される文字列を指定します。
-
argument-1が文字列でない場合、文字に変換されます。
argument-2
FIXED BINARY(31,0)に変換される式
-
argument-2は、argument-1の部分文字列の開始位置を指定します。
argument-3
FIXED BINARY(31,0)に変換される式
-
argument-3は、argument-1の中の部分文字列の長さを指定します。
-
ゼロの場合、ヌル文字列が返されます。ゼロが省略された場合は、返される部分文字列はargument-1の位置argument-2からargument-1の終わりまでです。
-
-
戻り値
-
argument-2とargument-3によって指定されたargument-1の部分文字列を返します。
-
argument-3が負の値である場合、またはargument-2とargument-3の値が現在のargument-1の長さの範囲内に存在しない部分文字列を指定した場合、STRINGRANGE条件が発生します。
-
argument-2がLENGTH(argument-1)+1で、argument-3が0の場合は、STRINGRANGE条件は発生しません。
-
4.12.14. TRANSLATE
2つの変換文字列に基づいて文字列を変換します。

-
引数
項目 説明 argument-1
変換できる文字があるかどうかを検索する文字式
argument-2
文字の変換値を含む文字式
argument-3
変換される文字を含む文字式
-
argument-3が省略された場合、デフォルトはCOLLATE()です。
-
-
戻り値
-
argument-1と同じ長さの文字列を返します。
-
TRANSLATE組み込み関数は、算術引数またはビット引数を文字に変換し、GRAPHICまたはWIDECHARのデータはサポートしません。
-
4.12.15. TRIM
文字列の左端と右端を取り除いた文字列を返します。

-
引数
項目 説明 argument-1
文字列式
argument-2
左端から切り出す文字列式
-
argument-2が省略された場合、デフォルト値は空白を持つCHAR(1) NONVARYINGです。
argument-3
右端から切り出す文字列式
-
argument-3が省略された場合、デフォルト値は空白を持つCHAR(1) NONVARYINGです。
-
-
戻り値
-
argument-1からargument-2の文字が出現しなくなるまで左端から文字列を切り出し、argument-3の文字が出現しなくなるまで右端から文字列を切り出した文字列を返します。
-
argument-1は計算型を持つ必要があり、文字列でない場合は文字列に変換されます。
-
4.12.16. UPPERCASE
文字列のすべてのアルファベットを大文字に変換して返します。

-
引数
項目 説明 argument-1
変換する式
-
必要に応じて文字列に変換されます。
-
-
戻り値
-
大文字に変換されたargument-1の文字列を返します。
-
4.12.17. VERIFY
ある文字列にないエレメントが他の文字列で検索される位置を返します。

-
引数
項目 説明 argument-1
文字列式
argument-2
文字列式
argument-3
検索を開始するargument-1内の位置を指定する式
-
計算タイプを保持している必要があり、FIXED BINARY(31,0)に変換されます。
-
省略する場合、デフォルト値は1です。
-
-
戻り値
-
argument-2文字列にないargument-1の文字のうち、左端の文字、ワイド文字、グラフィック、またはビットのargument-1内での位置を示すスケールのないREAL FIXED BINARY値を返します。検索を開始するargument-1内の位置を指定できます。
-
argument-1のすべての文字、ワイド文字、グラフィック、またはビットがargument-2文字列にある場合は、ゼロが返されます。argument-1がヌル文字列の場合は、ゼロが返されます。argument-1がヌル文字列ではなく、argument-2がヌル文字列の場合は、argument-3の値が返されます。
-
argument-3の値が1とLENGTH(argument-1)+1の間になく、STRINGRANGE条件が有効である場合、STRINGRANGE条件が起こります。このような場合、基本的にゼロが返されます。
-
argument-3の値がLENGTH(argument-1)+1の場合は、ゼロが返されます。
-
4.12.18. VERIFYR
ある文字列にないエレメントが他の文字列で検索される位置を返します。検索を右から左に行うことや、argument-3のデフォルト値がargument-1の長さであることを除けば、基本的にVERIFY組み込み関数と同様に動作します。

-
引数
項目 説明 argument-1
文字列式
argument-2
文字列式
argument-3
検索を開始するargument-1内の位置を指定する式
-
計算タイプを保持している必要があり、FIXED BINARY(31,0)に変換されます。
-
省略する場合、デフォルト値はLENGTH(argument-1)です 。
-
-
戻り値
-
argument-2文字列にないargument-1の文字のうち、右端の文字、ワイド文字、グラフィック、またはビットのargument-1内での位置を示すスケールのないREAL FIXED BINARY値を返します。検索を開始するargument-1内の位置を指定できます。
-
argument-1のすべての文字、ワイド文字、グラフィック、またはビットがargument-2文字列にある場合は、ゼロが返されます。argument-1がヌル文字列の場合は、ゼロが返されます。argument-1がヌル文字列ではなく、argument-2がヌル文字列の場合は、argument-3の値が返されます。
-
argument-3の値がゼロとLENGTH(argument-1)の間になく、STRINGRANGE条件が有効である場合、STRINGRANGE条件が起こります。このような場合、基本的にゼロが返されます。
-
argument-3の値がゼロの場合は、ゼロが返されます。
-