組み込み関数

本章では、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属性は、名前が組み込み関数、サブルーチン、疑似変数であることを指定します。

figure builtin1

組み込まれた名前は、プログラマーが定義した名前として使用することができます。

以下は、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;

1.2. 呼び出し

1.2.1. 組み込み関数と疑似変数

以下は、組み込み関数と疑似変数の呼び出しに使用される構文です。

figure builtin2

1.2.2. 組み込みサブルーチン

以下は、組み込みサブルーチンの呼び出しに使用される構文です。

figure builtin3

2. サブルーチン

組み込みサブルーチンは、組み込み関数のように必ずしも結果を返さなくてもいい、その他の作業を実行します。

以下は、サブルーチンについての説明です。詳細については、各節を参照してください。

関数 説明

PLICANC

自動再起動機能をキャンセルします。

PLICKPT

自動再起動のためのチェック・ポイントを指定します。

PLIDUMP

現在開かれているファイル、現在の位置への呼び出しパスなどの情報をダンプします。

PLIFILL

メモリの内容を指定された値で埋めます。

PLIFREE

割り当てられたヒープ領域を解放します。

PLIMOVE

メモリの内容を別のメモリ領域にコピーします。

PLIREST

プログラムを再実行します。

PLIRETC

PL/Iリターンコードの値を設定します。

PLISRTA

ProSortを使用して入力ファイルをソートし、出力ファイルを作成します。

PLISRTD

ProSortを使用して、E15 PL/I終了プロシージャが提供する入力レコードをソートし、E35 PL/I終了プロシージャによってソートされたレコードを処理します。

  • E15 PL/I : ソート入力プロシージャ

  • E35 PL/I : ソート出力プロシージャ

PLISTCK

システム時刻を取得します。

PLISTCKF

システム時刻を取得します。

2.1. PLICANC

自動再起動機能をキャンセルします。

OpenFrame PL/Iでは、PLICANCサブルーチンをサポートしておらず、エラーメッセージを出力した後、無視します。

figure builtin plicanc

2.2. PLICKPT

自動再起動のためのチェック・ポイントを指定します。

OpenFrame PL/Iでは、PLICKPTサブルーチンをサポートしておらず、エラーメッセージを出力した後、無視します。

figure builtin plickpt
  • 引数

    項目 説明

    argument-1

    ddname、check-idなどチェック・ポイントと関連する式

2.3. PLIDUMP

現在開かれているファイル、現在の位置への呼び出しパスなどについての情報をダンプします。プログラムで使用するストレージの選択部分の定様式ダンプを獲得することができます。

OpenFrame PL/Iでは、PLICKPTサブルーチンをサポートしておらず、エラーメッセージを出力した後、無視します。

figure builtin4
  • 引数

    項目 説明

    argument-1

    文字列式

    argument-2

    文字列式

2.4. PLIFILL

メモリの内容を指定された値で埋めます。

figure builtin plifill
  • 引数

    項目 説明

    argument-1

    メモリ位置情報を持つPOINTER型

    argument-2

    メモリに埋める文字値を持つCHAR(1) NONVARYING型

    argument-3

    埋めるサイズを持つ式

2.5. PLIFREE

割り当てられたヒープ領域を解放します。

figure builtin plifree
  • 引数

    項目 説明

    argument-1

    解放するヒープ領域を指すロケーター式

2.6. PLIMOVE

メモリの内容を別のメモリ領域にコピーします。コピー元のメモリとコピー先のメモリ領域が重なる場合、結果は保証されません。

figure builtin plimove
  • 引数

    項目 説明

    argument-1

    コピー先のメモリ領域を指すPOINTER型

    argument-2

    コピー元のメモリ領域を指すPOINTER型

    argument-3

    コピーするサイズを指定した式

2.7. PLIREST

プログラムを再実行します。

OpenFrame PL/Iでは、PLIRESTサブルーチンをサポートしておらず、エラーメッセージを出力した後、無視します。

figure builtin plirest

2.8. PLIRETC

このサブルーチンによって呼び出されたPL/Iプログラム、またはPLIRETV組み込み関数を介した別のPL/Iプロシージャで調べることができるリターンコードを設定します。

figure builtin5
  • 引数

    項目 説明

    argument-1

    FIXED BINARY(31,0)を持つリターンコードを指定する式

2.9. PLISRTA

ProSortを使用して入力ファイルをソートし、出力ファイルを作成します。。

figure builtin6
  • 引数

    項目 説明

    argument-1

    SORT、READステートメントなど、ソートに関連する式

2.10. PLISRTD

ProSortを使用して、E15 PL/I終了プロシージャが提供する入力レコードをソートし、E35 PL/I終了プロシージャによってソートされたレコードを処理します。

figure builtin7
  • 引数

    項目 説明

    argument-1

    SORT、READステートメントなど、ソートに関連する式

2.11. PLISTCK

システム時刻を取得します。

figure builtin plistck
  • 引数

    項目 説明

    argument-1

    時刻を保存するUNSIGNED FIXED BINARY(64)型

2.12. PLISTCKF

システム時刻を取得します。

figure builtin plistckf
  • 引数

    項目 説明

    argument-1

    時刻を保存するUNSIGNED FIXED BINARY(64)型

3. 疑似変数

受信領域を表します。疑似変数は互いにネストすることはできません。

疑似変数は、以下の場合にのみ使用できます。

  • 代入ステートメントの左側

  • DO仕様内にあるターゲットで、SUBSTRの場合

  • GETステートメントのデータ・リスト、またはPUTステートメントのSTRINGオプションである場合

  • KEYTOオプションまたはREPLYオプションの文字列名である場合

以下は、疑似変数についての説明です。詳細については、該当節を参照してください。

関数 説明

ONCHAR

CONVERSION条件の原因となる文字の値を設定します。

ONSOURCE

CONVERSION条件の原因となる文字列の値を設定します。

STRING

文字列の集合のすべてのエレメントの連結である文字列を割り当てます。

SUBSTR

文字列の部分文字列を割り当てます。

UNSPEC

値の内部表示であるビット文字列を割り当てます。

3.1. ONCHAR

CONVERSION条件の原因となる文字の値を設定します。

[id="figure_builtin8"
  • 戻り値

    • ONCHAR疑似変数は、ONCHAR組み込み関数の現行値を設定します。割り当てられたエレメントの値は、長さ1の文字値に変換されます。新しい文字はデータの変換が再度行われる際に使用されます。

    • 疑似変数はコンテキスト以外で使用できません。

3.2. ONSOURCE

CONVERSION条件の原因となる文字列の値を設定します。

figure builtin9
  • 戻り値

    • ONSOURCE疑似変数は、ONSOURCE組み込み関数の現行値を設定します。割り当てられたエレメントの値は文字列に変換されます。必要な場合は、CONVERSION条件が起こった領域の長さと一致させるために、右側が空白で埋められるか切り捨てられます。データが再変換される際にこの文字列が使用されます。

    • 疑似変数はコンテキスト以外で使用できません。

    • 変換が再試行される際、疑似変数に割り当てられた文字列は、単一データ項目として処理されます。

      エラーの訂正処理は、GET LISTまたはGET DATAステートメントの実行時に変換が発生した場合、1つ以上のデータ項目を含む文字列を割り当てることはできません。文字列に空白またはコンマが存在する場合、CONVERSION条件が再発生します。

3.3. STRING

文字列の集合のすべてのエレメントの連結である文字列を割り当てます。

figure builtin10
  • 引数

    項目 説明

    argument-1

    集合体参照式またはエレメント参照式

    • argument-1の各基本エレメントは、すべてビット文字列か、すべて文字列である必要があります。

  • 戻り値

    • STRING疑似変数は、argument-1が文字列のスカラーであれば、argument-1を文字列に割り当てます。argument-1の残りの文字列は空白またはゼロ・ビットで埋められるか、可変長の場合は長さがゼロになります。

    • 疑似変数はコンテキスト以外で使用できません。

3.4. SUBSTR

文字列の部分文字列を割り当てます。

figure builtin11
  • 引数

    項目 説明

    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の過剰は変更されません。可変文字列への割り当ては、文字列の長さを変更しません。

3.5. UNSPEC

値の内部表示であるビット文字列を割り当てます。

figure builtin12
  • 引数

    項目 説明

    argument-1

    参照式

  • 戻り値

    • UNSPEC疑似変数は、変換は行わずに、argument-1に直接ビット値を割り当てます。必要な場合、ビット値はargument-1の長さに合わせて右側が'0’Bで埋められます。

    • argument-1が可変長文字列の場合、2バイト接頭部はビット値が割り当てられるフィールドに含まれます。argument-1が区域の場合、制御情報は受信フィールドに含まれます。

UNSPECの使用は、プログラムの移植性に影響を与えることがあります。

4. 組み込み関数の種類

疑似変数とサブルーチンを除く組み込み関数を、その特性によって以下のように分類します。

本節では、組み込み関数の使用方法について説明します。

4.1. 算術組み込み関数

算術組み込み関数は、算術値の特性を判別し、ルーチンの算術演算を実行する関数です。

算術関数には、1つまたは複数の引数から結果のデータ・タイプを派生するものもあります。引数のデータ・タイプが異なる場合、データ変換のルールに基づいて変換されます。

以下は、算術組み込み関数についての説明です。詳細については、該当節を参照してください。

関数 説明

ABS

値の絶対値を計算します。

CEIL

ある値より大きいか等しい最小の整数を計算します。

FLOOR

ある値より小さいか等しい最大の整数を計算します。

MAX

2つ以上の値の最大値を計算します。

MIN

2つ以上の値の最小値を計算します。

MOD

ある値で別の値を除算したときの剰余を返します。

ROUND

指定された桁で値を丸めます。

SIGN

値が負数、ゼロ、または正数の場合に、それぞれ-1、ゼロまたは 1 を返します。

TRUNC

ある値を切り捨ててできる整数を計算します。

4.1.1. ABS

値の絶対値を計算します。

figure builtin13
  • 引数

    項目 説明

    argument-1

  • 戻り値

    • 引数(argument-1)の絶対値(引数の正の値)を返します。

    • 結果は、argument-1の基数、スケール、精度を持ちます。

4.1.2. CEIL

ある値より大きいか等しい最小の整数を計算します。

figure builtin23
  • 引数

    項目 説明

    argument-1

  • 戻り値

    • 結果は、argument-1の基数、スケール、精度を持ちます。

    • 結果の精度は以下のとおりです。(Nは使用できる最大桁数です)

      (min(N, max(p-q+1)),0)

4.1.3. FLOOR

ある値より小さいか等しい最大の整数を計算します。

figure builtin36
  • 引数

    項目 説明

    argument-1

  • 戻り値

    • 結果は、argument-1の基数、スケール、精度を持ちます。

    • argument-1の精度が(p,q)である場合を除き、結果の精度は以下のとおりです。(nは使用できる最大桁数です)

      (min(n,max(p-q+1,1))0)

4.1.4. MAX

2つ以上の値の最大値を計算します。

figure builtin45
  • 引数

    項目 説明

    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つ以上の値の最小値を計算します。

figure builtin46
  • 引数

    項目 説明

    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

ある値で別の値を除算したときの剰余を返します。

figure builtin47
  • 引数

    項目 説明

    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

指定された桁で値を丸めます。

figure builtin55
  • 引数

    項目 説明

    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を返します。

figure builtin56
  • 引数

    項目 説明

    argument-1

  • 戻り値

    • argument-1が正数、ゼロ、負数であることを示すREAL FIXED BINARY値を返します。

4.1.9. TRUNC

ある値を切り捨ててできる整数を計算します。

figure builtin66
  • 引数

    項目 説明

    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)は、配列引数を演算してエレメント値を返します。

以下は、配列処理組み込み関数についての説明です。詳細については、該当節を参照してください。

関数 説明

ALL

配列のすべてのエレメントのビット単位のANDを計算します。

ANY

配列のすべてのエレメントのビット単位のORを計算します。

DIMENSION

配列のある次元のエレメントの数を返します。

HBOUND

配列の次元の上限を返します。

LBOUND

配列の次元の下限を返します。

POLY

2つの一次元配列に対して、多項式の近似値を返します。

SUM

配列のすべてのエレメントの和を計算します。

4.2.1. ALL

配列のすべてのエレメントのビット単位のANDを計算します。

figure builtin17
  • 引数

    項目 説明

    argument-1

    計算配列式

    • argument-1がビット文字列配列でない場合、ビット文字列配列に変換されます。

  • 戻り値

    • argument-1の各エレメントに対応するビットが存在し、1の場合、各ビットが1のビット文字列を返します。

    • 結果の長さは最も長いエレメントと同じです。

4.2.2. ANY

配列のすべてのエレメントのビット単位のORを計算します。

figure builtin18
  • 引数

    項目 説明

    argument-1

    計算配列式

    • argument-1がビット文字列配列でない場合、ビット文字列配列に変換されます

  • 戻り値

    • argument-1の任意のエレメントに対応するビットが存在し、1の場合は、各ビットが1のビット文字列を返します。

    • 結果の長さは最も長いエレメントと同じです。

4.2.3. DIMENSION(略語 : DIM)

配列のある次元のエレメントの数を返します。

figure builtin31
  • 引数

    項目 説明

    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

配列の次元の上限を返します。

figure builtin37
  • 引数

    項目 説明

    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

配列の次元の下限を返します。

figure builtin40
  • 引数

    項目 説明

    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.2.6. POLY

2つの一次元配列に対して、多項式の近似値を返します。

figure builtin poly
  • 引数

    項目 説明

    argument-1

    配列参照式

    • 必ずFLOATである必要があります。

    argument-2

    要素式

  • 戻り値

    • argument-1とargument-2がx、yであり、argument-1の下限と上限がm、nの場合、戻り値は次の式の結果となります。

      x(m) + x(m+1)*y + x(m+2)*y**2 + ... + x(n)*y**(n-m)

4.2.7. SUM

配列のすべてのエレメントの和を計算します。

figure builtin61
  • 引数

    項目 説明

    argument-1

    配列式

    • argument-1のエレメントが文字列の場合、それらのエレメントは固定小数点の整数値に変換されます。

    • argument-1のエレメントが固定小数点の場合、結果の精度は(N,q)です。Nは許可される桁の最大数で、qはargument-1の位取り係数です。

    • argument-1のエレメントが浮動小数点の場合、結果の精度はargument-1と一致します。

  • 戻り値

    • argument-1のすべてのエレメントの和を返します。結果の基数、スケールは、argument-1と同じです。

4.3. バッファー管理組み込み関数

バッファー管理組み込み関数(Buffer-management built-in functions)は、バイト数とアドレスを使用して指定するストレージであるバッファーで動作する関数です。

以下は、バッファー管理組み込み関数についての説明です。詳細については、該当節を参照してください。

関数 説明

HEXIMAGE

バッファーの値を16進数で表した文字列を返します。

MEMINDEX

バッファー内で文字列やバッファーの位置を検索します。

MEMVERIFY

いずれかの文字列要素がバッファー内に存在しない位置を、左から検索します。

MEMVERIFYR

いずれかの文字列要素がバッファー内に存在しない位置を、右から検索します。

4.3.1. HEXIMAGE

ユーザーが指定した場所のストレージの内容を16進数で表した文字列を返します。

figure builtin heximage
  • 引数

    項目 説明

    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

バッファー内で部分文字列やバッファーの先頭位置を検索して返します。

figure builtin 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.3.3. MEMVERIFY

いずれかの文字列要素がバッファー内に存在しない場合を、左から検索します。

figure builtin memverify
  • 引数

    項目 説明

    argument-1

    バッファーのアドレス

    argument-2

    バッファーの長さ

    • 計算可能な型である必要があります。

    argument-3

    バッファー内で検索する文字列

  • 戻り値

    • argument-1バッファーの左からargument-3の文字列が存在しない位置を検索して返します。

4.3.4. MEMVERIFYR

いずれかの文字列要素がバッファー内に存在しない場合を、右から検索します。

figure builtin memverifyr
  • 引数

    項目 説明

    argument-1

    バッファーのアドレス

    argument-2

    バッファーの長さ

    • 計算可能な型である必要があります。

    argument-3

    バッファー内で検索する文字列

  • 戻り値

    • argument-1バッファーの右からargument-3の文字列が存在しない位置を検索して返します。

4.4. 条件処理組み込み関数

条件処理組み込み関数(Condition-handling built-in functions)を使用すると、発生した条件の原因を判別できます。条件処理組み込み関数の使用は、ONユニットまたは以下のように動的子孫の範囲内でのみ有効です。他での使用はすべてコンテキストによって無視されます。

  • 組み込み関数への条件特定

  • 暗黙処置として発生した際のERROR条件またはFINISH条件

以下は、条件処理組み込み関数についての説明です。詳細については、該当節を参照してください。

関数 説明

DATAFIELD

NAME条件が発生したフィールド値を文字列で返します。

ONCHAR

CONVERSION条件が発生した文字の値を返します。

ONCODE

条件コード値を返します。

ONCONDID

条件に対するID値を返します。

ONFILE

条件が発生したファイル名を返します。

ONLINE

条件が発生したソースの行位置を返します。(未サポート)

ONLOC

条件が発生したプロシージャ名を返します。

ONOFFSET

条件が発生したソースの行オフセットを返します。(未サポート)

ONSOURCE

CONVERSION条件が発生した文字列の値を返します。

4.4.1. DATAFIELD

NAME条件が発生したフィールド値を文字列で返します。

figure builtin datafield
  • 戻り値

    • 条件が発生したフィールドの値を文字列で返します。

    • DATAFIELD組み込み関数がコンテキストの外で使用される場合は、空白が返されます。

4.4.2. ONCHAR

変換条件が発生した文字の値を返します。

figure builtin8
  • 戻り値

    • CONVERSION条件が発生する原因となる文字を含む、character(1)文字列を返します。この関数は、CONVERSION条件の暗黙処置として発生したERROR条件またはFINISH条件のONユニット、あるいはCONVERSION条件のONユニットの中にあります。

    • ONCHAR組み込み関数がコンテキスト以外で使用される場合は、空白が返されます。

4.4.3. ONCODE

条件コード値を返します。

figure builtin50
  • 戻り値

    • 条件コードである実数の固定小数点の2進数の値を返し文脈ます。ONユニットまたはその動的子孫のコンテキストにあります。

    • ONCODE 組み込み関数がコンテキスト外で使用される場合、0が返されます。検出されたエラーおよび条件に対応するコードの場合は、ユーザーガイドを参照してください。

4.4.4. ONCONDID

条件に対するID値を返します。

figure builtin oncondid
  • 戻り値

    • 条件に対する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

条件が発生したファイル名を返します。

figure builtin onfile
  • 戻り値

    • 入出力条件が発生したファイル名の文字列を返します。

    • ONFILE組み込み関数がコンテキスト外で使用される場合、空文字列が返されます。ONユニットまたは任意の動的サブルーチンのコンテキスト内にあります。

4.4.6. ONLINE

条件が発生したソースの行位置を返します。

OpenFrame PL/IではONLINE組み込み関数はサポートされておらず、エラーメッセージを出力した後に無視されます。

figure builtin online

4.4.7. ONLOC

条件が発生したプロシージャ名を返します。

figure builtin51
  • 戻り値

    • 条件が発生したプロシージャ名を返します。

    • ONLOC組み込み関数がコンテキスト外で使用される場合、空文字列が返されます。ONLOCは常にCALLまたはGOTOステートメントに現れる名前に関係なく、複数のラベルの中で最も左側にある名前を返します。ONユニットまたは任意の動的サブルーチンのコンテキスト内にあります。

4.4.8. ONOFFSET

条件が発生したソースの行オフセットを返します。

OpenFrame PL/IではONOFFSET組み込み関数はサポートされておらず、エラーメッセージを出力した後に無視されます。

figure builtin onoffset

4.4.9. ONSOURCE

変換条件が発生した文字列の値を返します。

figure builtin9
  • 戻り値

    • CONVERSION条件が発生した際に、処理中のコンテキスト内にある文字列の値を返します。その値は、CONVERSION条件に対する暗黙的な動作として発生するERRORやFINISH条件、またはCONVERSION条件に対するONユニット内のコンテキストに属します。

    • ONSOURCE組み込み関数がコンテキスト外で使用される場合、ヌル文字列が返されます。

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文字になり、ゼロの代わりに空白を表示します。

以下は、日付/時刻組み込み関数についての説明です。詳細については、各節を参照してください。

関数 説明

DATE

現在の日付をパターンYYMMDDで返します。

DATETIME

現在の日付と時刻をユーザーが指定したパターンまたはデフォルトのパターンYYYYMMDDHHMISS999で返します。

DAYS

日付/時刻パターンの文字列形式の日付を示す数、または今日の日付を示す数を返します。

DAYSTODATE

日数を日付/時刻パターンの文字列として返します。

REPATTERN

あるパターンの日付値を、別のパターンの日付値に変換します。

SECS

本日の日付を基準とするか、日付/時刻パターン文字列の形式を持つ日付を基準として、総秒数を返します。

TIME

現在の時刻をパターンHHMISS999で返します。

TIMESTAMP

現在時刻をYYYY-MM-DD-HH.MI.SS.999999パターンで返します。

VALIDDATE

文字列が有効な日付値であるかどうかを検査します。

WEEKDAY

現在の日付、または特定のDAYS値に該当する曜日を返します。

4.5.1. DATE

現在の日付をパターンYYMMDDで返します。

figure builtin28
  • 戻り値

    • 日付を含む非可変文字(6)の文字列をYYMMDDパターンで返します。

4.5.2. DATETIME

現在の日付と時刻をユーザーが指定したパターンまたはデフォルトのパターンYYYYMMDDHHMISS999で返します。

figure builtin29
  • 引数

    項目 説明

    argument-1

    • argument-1が存在する場合、返される日付/時刻のパターンを指定します。

    • argument-1が存在しない場合、日付/時刻パターンはYYYYMMDDHHMISS999が使用されます。

    • argument-1は計算タイプおよび文字タイプを保持する必要があります。そうでない場合、文字に変換されます。

  • 戻り値

    • デフォルト・パターンまたはユーザーが指定したパターンで今日の日付の文字列タイム・スタンプを返します。

    • 許可されるパターンについては、日付/時刻パターンを参照してください。

4.5.3. DAYS

日付値に対応するリリアン形式の日数を返します。

  • リリアン日付

    1582年10月14日を基準に経過した日数を表します。つまり、1582年10月15日は1になります。

figure builtin days
  • 引数

    項目 説明

    argument-1

    日付を表す文字列式です。

    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

リリアン日付値を日付/時刻パターン形式の文字列として返します。

figure builtin daystodate
  • 引数

    項目 説明

    argument-1

    リリアン・フォーマットで表された日数

    argument-2

    日付/時刻パターン

    • 許可されるパターンについては、日付/時刻パターンを参照してください。

    • 計算可能な型である必要があります。

    • 文字列型の値でない場合は、文字列に変換されます。

    • 省略した場合は、YYYYMMDDHHMISS9999の値が使用されます。

    argument-3

    argument-2の年形式が「YY」の場合、実際の年の範囲を決定するために使用される世紀ウィンドウ値

  • 戻り値

    • リリアン日付値のargument-1を、argument-2で指定した日付/時刻パターンに変換した文字列を返します。

4.5.5. REPATTERN

あるパターンの日付値を入力として受け取り、指定した別のパターンに変換して返します。

figure builtin 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

日付値に対して、リリアン・フォーマットで表された秒数を返します。

figure builtin secs
  • 引数

    項目 説明

    argument-1

    日付を表す文字列式

    argument-2

    日付/時刻パターン

    • 許可されるパターンについては、日付/時刻パターンを参照してください。

    • 計算可能な型である必要があります。

    • 文字列型の値でない場合は、文字列に変換されます。

    • 省略した場合は、YYYYMMDDHHMISS9999の値が使用されます。

    argument-3

    argument-2の年形式が「YY」の場合、実際の年の範囲を決定するために使用される世紀ウィンドウ値

  • 戻り値

    • リリアン日付を基準として、argument-1の日付までに経過した秒数を表す値をFLOAT BINARY(53)型で返します。

4.5.7. TIME

現在の時刻をパターンHHMISS999で返します。

figure builtin64
  • 戻り値

    • 文字列タイム・スタンプをパターンHHMISS999で返します。

4.5.8. TIMESTAMP

現在時刻をYYYY-MM-DD-HH.MI.SS.999999パターンで返します。

figure builtin timestamp
  • 戻り値

    • タイムスタンプ文字列をYYYY-MM-DD-HH.MI.SS.999999パターンで返します。

4.5.9. VALIDDATE

入力された文字列が指定された日付/時刻パターンと一致するかどうかを検査した結果を返します。

figure builtin validdate
  • 引数

    項目 説明

    argument-1

    日付を表す文字列式

    argument-2

    日付/時刻パターン

    • 許可されるパターンについては、日付/時刻パターンを参照してください。

    • 計算可能な型である必要があります。

    • 文字列型の値でない場合は、文字列に変換されます。

    • 省略した場合は、YYYYMMDDHHMISS9999の値が使用されます。

    argument-3

    argument-2の年形式が「YY」の場合、実際の年の範囲を決定するために使用される世紀ウィンドウ値

  • 戻り値

    • argument-1の値がargument-2の日付/時刻パターンに一致するかを検査し、一致する場合は '1’Bのビット文字列を返します。

4.5.10. WEEKDAY

現在の日付、または特定のDAYS値に該当する曜日を返します。

figure builtin weekday
  • 引数

    項目 説明

    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)は、現行ファイルの状態を確認できる関数です。

以下は、入出力組み込み関数についての説明です。詳細については、各節を参照してください。

関数 説明

LINENO

指定したファイルの現在行を返します。

4.6.1. LINENO

指定したファイルの現在行を返します。

figure builtin lineno
  • 引数

    関数 説明

    argument-1

    ファイル参照式

  • 戻り値

    • argument-1の現在行の値をREAL FIXED BINARYで返します。

    • ファイルは開かれていて、PRINT属性を持つ必要があります。ファイルが開かれていない場合やPRINT属性を持っていない場合は、0を返します。

4.7. 整数操作組み込み関数

整数操作組み込み関数(Integer manipulation built-in functions)は、整数変数に対する演算を実行し、演算結果を返す関数です。

以下は、整数操作組み込み関数についての説明です。詳細については、各節を参照してください。

関数 説明

IAND

2つ以上の固定二進値に対してANDビット演算を実行します。

IOR

2つ以上の固定二進値に対してORビット演算を実行します。

ISLL

固定二進値に対して左論理シフト演算を実行します。

ISRL

固定二進値に対して右論理シフト演算を実行します。

4.7.1. IAND

入力された引数に対してAND ビット演算を実行した結果を返します。

figure builtin iand
  • 引数

    関数 説明

    argument-1, argument-2

    計算可能な式

  • 戻り値

    • 引数のうち、SIGNED属性を持つ値が1つでもある場合、UNSIGNED属性を持つ値はSIGNED属性に変換されます。

    • 結果は、FIXED BIN( max(p1, p2, ...), 0)型として返されます。

4.7.2. IOR

入力された引数に対してOR ビット演算を実行した結果を返します。

figure builtin ior
  • 引数

    関数 説明

    argument-1, argument-2

    計算可能な式

  • 戻り値

    • 引数のうち、SIGNED属性を持つ値が1つでもある場合、UNSIGNED属性を持つ値はSIGNED属性に変換されます。

    • 結果は、FIXED BIN( max(p1, p2, ...), 0)型として返されます。

4.7.3. ISLL

左方向に論理シフト演算を実行し、右側に0を埋めて返します。

figure builtin isll
  • 引数

    関数 説明

    argument-1, argument-2

    計算可能な式

  • 戻り値

    • argument-1の値をargument-2分だけ左方向に論理シフト演算を実行して返します。

    • argument-2は正の値である必要があります。

    • argument-1がFIXED BIN(p,0)の場合、FIXED BIN(p,0)型として返されます。それ以外の場合はSIGNED FIXED BIN(p,0)型に変換されて返されます。

4.7.4. ISRL

右方向に論理シフト演算を実行し、左側に0を埋めて返します。

figure builtin isrl
  • 引数

    関数 説明

    argument-1, argument-2

    計算可能な式

  • 戻り値

    • argument-1の値をargument-2分だけ右方向に論理シフト演算を実行して返します。

    • argument-2は正の値である必要があります。

    • argument-1 FIXED BIN(p,0)の場合、FIXED BIN(p,0)型として返されます。それ以外の場合はSIGNED FIXED BIN(p,0)型に変換されて返されます。

4.8. 数学組み込み関数

数学組み込み関数(Mathematical built-in functions)は、浮動小数点の値で演算を行い、浮動小数点の結果を生成します。浮動小数点でない引数は変換されます。

以下は、数学組み込み関数についての説明です。詳細については、各節を参照してください。

関数 説明

ACOS

逆余弦(ARCCOS)の値を計算します。

ASIN

逆正弦(ARCSIN)の値を計算します。

ATAN

逆正接(ARCTAN)の値を計算します。

ATAND

逆正接(ARCTAN)の値を度で計算します。

COS

余弦(COS)の値を計算します。

COSD

余弦(COS)の値を度で計算します。

EXP

eの累乗を計算します。

LOG

自然対数を計算します。

LOG10

底10の常用対数を計算します。

SIN

正弦(SIN)の値を計算します。

SIND

正弦(SIN)の値を度で計算します。

SQRT

平方根を計算します。

TAN

正接(TAN)の値を計算します。

TAND

正接(TAN)の値を度で計算します。

4.8.1. ACOS

逆余弦(ARCCOS)の値を計算します。

figure builtin14
  • 引数

    項目 説明

    argument-1

    ABS(argument-1) ≤ 1の式

  • 戻り値

    • 引数(argument-1)のラジアンの逆余弦の近似を実数の浮動小数点の値で返します。

    • 結果の範囲は0 ≤ ACOS(argument-1) ≤ πで、argument-1の基数と精度になります。

4.8.2. ASIN

逆正弦(ARCSIN)の値を計算します。

figure builtin19
  • 引数

    項目 説明

    argument-1

    ABS(argument-1) ≤ 1の式

  • 戻り値

    • 引数(argument-1)のラジアンの逆正弦の近似を実数の浮動小数点の値で返します。

    • 結果の範囲は-π/2 ≤ ASIN(argument-1) ≤ π/2で、argument-1の基数と精度になります。

4.8.3. ATAN

逆正接(ARCTAN)の値を計算します。

figure builtin20
  • 引数

    項目 説明

    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)の値を度で計算します。

figure builtin21
  • 引数

    項目 説明

    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)の値を計算します。

figure builtin25
  • 引数

    項目 説明

    argument-1

    ラジアン値を使用した式

  • 戻り値

    • argument-1のモード、基数、精度の浮動小数点で、argument-1の余弦の近似値を返します。

4.8.6. COSD

余弦(COS)の値を度で計算します。

figure builtin26
  • 引数

    項目 説明

    argument-1

    度の値の式

  • 戻り値

    • argument-1の余弦の近似値であり、モード、基数、精度を持つ実数の浮動小数点値を返します。

4.8.7. EXP

eの累乗を計算します。

figure builtin33
  • 引数

    項目 説明

    argument-1

  • 戻り値

    • eの累乗の近似値である浮動小数点値を返します。

    • 結果は、argument-1の基数、モード、精度を持ちます。

4.8.8. LOG

自然対数を計算します。

figure builtin42
  • 引数

    項目 説明

    argument-1

    • argument-1はゼロより大きくなければなりません。

  • 戻り値

    • argument-1の自然対数(底e)の近似値である浮動小数点値を返します。

    • 結果は、argument-1の基数、モード、精度を持ちます。

4.8.9. LOG10

底10の対数を計算します。

figure builtin43
  • 引数

    項目 説明

    argument-1

    • argument-1はゼロより大きくなければなりません。

  • 戻り値

    • argument-1の常用対数(底10)の近似値である実数型浮動小数点値を返します。

    • 結果は、argument-1の基数、精度を持ちます。

4.8.10. SIN

正弦(SIN)の値を計算します。

figure builtin57
  • 引数

    項目 説明

    argument-1

    ラジアン値の式

  • 戻り値

    • argument-1の正弦の近似値であり、argument-1のモード、基数、精度を持つ浮動小数点値を返します。

4.8.11. SIND

正弦(SIN)の値を度で計算します。

figure builtin58
  • 引数

    項目 説明

    argument-1

    度で示される値を持つ式

  • 戻り値

    • argument-1の正弦の近似値であり、argument-1のモード、基数、精度を持つ浮動小数点値を返します。

4.8.12. SQRT

平方根を計算します。

figure builtin60
  • 引数

    項目 説明

    argument-1

    • argument-1が実数の場合、ゼロより大きくなければなりません。

  • 戻り値

    • argument-1の平方根の近似値であり、argument-1のモード、基数、精度を持つ浮動小数点値を返します。

4.8.13. TAN

正接(TAN)の値を計算します。

figure builtin62
  • 引数

    項目 説明

    argument-1

    ラジアン値の式

  • 戻り値

    • argument-1の正接の近似値であり、argument-1のモード、基数、精度を持つ浮動小数点値を返します。

4.8.14. TAND

正接(TAN)の値を度で計算します。

figure builtin63
  • 引数

    項目 説明

    argument-1

    度で示される値を持つ式

  • 戻り値

    • argument-1の正接の近似値であり、argument-1の基数、精度を持つ浮動小数点値を返します。

4.9. その他の組み込み関数

その他の組み込み関数(Miscellaneous built-in function)とは、これまでのカテゴリーに該当しない関数です。

以下は、その他の組み込み関数についての説明です。詳細については、各節を参照してください。

関数 説明

CHARVAL

整数値に対応する文字を返します。

PLIRETV

PL/Iのリターンコード値を返します。

PROCEDURENAME

プロシージャ名を返します。

RANK

文字に対応する整数値を返します。

STRING

文字列の集合のすべてのエレメントを連結した文字列を返します。

UNSPEC

値の内部表示のビット文字列を返します。

4.9.1. CHARVAL

整数値に対応する文字を返します。

figure builtin charval
  • 引数

    項目 説明

    argument-1

    文字に変換する式

  • 戻り値

    • argument-1のエレメントに対応する整数値のEBCDIC文字を返します。

    • 戻り値の属性は、CHARACTER(1)です。

4.9.2. PLIRETV

PL/Iのリターンコード値を返します。

figure builtin52
  • 戻り値

    • PL/IのリターンコードであるFIXED BINARY(31,0)の値を返します。

    • PL/Iのリターンコードの値は、CALL PLIRETCステートメントで指定された最新の値です。

4.9.3. PROCEDURENAME(略語: PROCNAME)

組み込み関数が呼び出されたプロシージャ名を文字列で返します。

figure builtin procedurename
  • 戻り値

    • プロシージャ名を不変文字列形式で返します。

    • プロシージャが複数のラベルを使用する場合、CALL文やGOTO文に使用されているかどうかに関係なく、左端の名前を返します。

4.9.4. RANK

文字に対応する整数値を返します。

figure builtin rank
  • 引数

    項目 説明

    argument-1

    数字に変換する式

    • 必ずCHARACTER(1) NONVARYINGを持つ必要があります。

  • 戻り値

    • argument-1のエレメントに対応するEBCDIC文字の整数値を返します。

4.9.5. STRING

文字列の集合のすべてのエレメントを連結した文字列を返します。

figure builtin10
  • 引数

    項目 説明

    argument-1

    集計参照式またはエレメント参照式

  • 戻り値

    • argument-1 のすべての要素を結合した文字列を返します。

    • STRING組み込み関数には以下の制限があります。

      • 組合せを含む組合せや構造には適用できません。

      • スカラーに適用する場合、スカラーは文字列である必要があります。

      • 構造に適用する場合、構造はパディングバイトを含んではいけません。構造のエレメントはすべて、非整列ビット文字列であるか、すべて文字列である必要があります。

      • 配列に適用する場合、配列内のすべてのエレメントは上記の制限に従う必要があります。

4.9.6. UNSPEC

値の内部表示のビット文字列を返します。

figure builtin12
  • 引数

    項目 説明

    argument-1

    スカラー、配列、構造または組合せ式

  • 戻り値

    • argument-1の内部コードであるビット文字列を返します。

    • UNSPEC組み込み関数は、USAGE(UNSPEC(IBM))コンパイラー・オプションで使用する場合、構造には適用できず、配列に対してはBIT型の配列を返します。

UNSPECの使用は、プログラムの移植性に影響を与えることがあります。

4.10. 精度処理組み込み関数

精度処理組み込み関数(Precision-handling built-in functions)は、変数の精度を指定どおりに変更し、その結果を返します。

以下は、精度処理組み込み関数についての説明です。詳細については、各節を参照してください。

関数 説明

ADD

指定した精度で、2つの値を加算します。

BINARY

値を2進数に変換します。

DECIMAL

値を10進数に変換します。

DIVIDE

指定した精度で、2つの値を除算します。

FIXED

値を固定小数点に変換します。

FLOAT

値を浮動小数点に変換します。

MULTIPLY

指定した精度で、2つの値を乗算します。

PRECISION

値を指定の精度に変換します。

4.10.1. ADD

指定された精度で、2つの値を加算します。

figure builtin15
  • 引数

    項目 説明

    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進数に変換します。

figure builtin22
  • 引数

    項目 説明

    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進数に変換します。

figure builtin30
  • 引数

    項目 説明

    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つの値を除算します。

figure builtin32
  • 引数

    項目 説明

    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

値を固定小数点に変換します。

figure builtin34
  • 引数

    項目 説明

    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

値を浮動小数点に変換します。

figure builtin35
  • 引数

    項目 説明

    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つの値を乗算します。

figure builtin48
  • 引数

    項目 説明

    argument-1

    argument-2

    argument-3

    この演算で維持される桁数を指定する制限付き式

    argument-4

    結果の位取り係数を指定する制限付き式

    • 結果が固定小数点の場合、argument-4が省略されると、位取り係数はゼロと見なされます。

    • 結果が浮動小数点の場合、argument-4は省略します。

  • 戻り値

    • argument-1とargument-2の積を、argument-3とargument-4で指定された精度で返します。

    • 結果の基数、スケール、モードは、PRECTYPEコンパイラー・オプションによって規則が変更されない限り、式の評価規則によって決定されます。

4.10.8. PRECISION

値を指定の精度に変換します。

figure builtin53
  • 引数

    項目 説明

    argument-1

    argument-2

    argument-1が変換後に持つ式の値である桁数を指定する制限付き式

    argument-3

    結果の位取り係数を指定する制限付き式

    • 結果が固定小数点の場合、argument-3が省略されると、位取り係数はゼロと見なされます。

    • 結果が浮動小数点の場合、argument-3は省略します。

  • 戻り値

    • argument-1の値を、argument-3とargument-4で指定された精度で返します。

    • 戻り値の基数、モード、スケールは、argument-1の場合と同じです。

4.11. ストレージ制御組み込み関数

ストレージ制御組み込み関数(Storage control built-in functions)により、ストレージ所要量と変数の位置を判別して、特殊値の区域とロケーター変数への割り当て、オフセット値とポインター値間の変換の実行、被制御変数の世代番号の取得、オブジェクトとクラスのデータおよび手法の参照が可能です。

以下は、ストレージ制御組み込み関数についての説明です。詳細については、各節を参照してください。

関数 説明

ADDR

変数のアドレスを返します。

ALLOCATION

被制御変数の世帯番号を返します。

BINARYVALUE

ポインターとオフセットの値を整数に変換します。

CURRENTSIZE

変数の現行サイズを返します。

CURRENTSTORAGE

CURRENTSIZEの同義語です。

NULL

ヌル・ポインター値を返します。

OFFSET

ポインターをオフセットに変換します。

POINTER

オフセットをポインターに変換します。

POINTERADD

引数の和であるポインター値を返します。

SIZE

変数の最大サイズを返します。

STORAGE

SIZEの同義語です。

4.11.1. ADDR

変数のアドレスを返します。

figure builtin16
  • 引数

    項目 説明

    argument-1

    参照式

    データ・タイプ変数、データ構成変数、位置合わせ変数、ストレージ・クラス変数を参照します。ただし、以下のものは除きます。

    • 位置合わせされていない固定長のビット文字列である変数への添え字付き参照式

    • DEFINED変数またはBASED変数、あるいは位置合わせされていない固定長のビット文字列の単純パラメータへの参照式

    • 最初の基本エレメントが位置合わせされていない固定長のビット文字列である小構造体または共用体

    • DEFINED属性を持つ大構造体か共用体、またはパラメータである大構造体か共用体で、位置合わせされていない固定長のビット文字列を最初のエレメントとするもの

    • 連結ストレージを参照しない参照式

    argument-1の参照先と結果は以下のとおりです。

    • 集計パラメータの場合はCONNECTED属性を保持している必要があります。

    • 集計の場合、戻り値は最初のエレメントを識別します。

    • コンポーネントまたはセクション間の集合の場合は、戻り値では添え字および構造体または共用体の修飾が考慮されます。

    • 可変文字列の場合、戻り値は2バイトの接頭部を識別します。

    • 区域の場合、戻り値は制御情報を識別します。

    • 現行プログラムに割り当てられていない制御変数の場合は、ヌル・ポインター値が返されます。

    • 基底付き変数の場合、結果は明示的にargument-1を修飾するポインターの値か、その宣言でargument-1に関連付けられたポインター、またはヌル・ポインターの値です。

    • パラメータであり、仮引数が作成されている場合、戻り値は仮引数を識別します。

  • 戻り値

    • 引数(argument-1)の世代を識別するポインター値を返します。

4.11.2. ALLOCATION(略語: ALLOCN)

被制御変数の世帯番号を返します。

figure builtin allocation
  • 引数

    項目 説明

    argument-1

    レベル1の被制御変数

  • 戻り値

    • 引数(argument-1)の世帯値を返します。

4.11.3. BINARYVALUE(略語: BINVALUE)

ポインターとオフセットの値を整数に変換します。

figure builtin binaryvalue
  • 引数

    項目 説明

    argument-1

  • 戻り値

    • argument-1の値をFIXED BINARY(31,0)に変換します。argument-1は、ポインターまたはオフセットです。

4.11.4. CURRENTSIZE

変数の現行サイズを返します。

figure builtin27
  • 引数

    項目 説明

    argument-1

    任意のデータ・タイプ、データ構成、ストレージ・クラスを持つ変数です。ただし、以下のものは除きます。

    • 位置合わせされていない固定長ビット文字列であるBASED変数、DEFINED変数、パラメータ変数、添え字付き変数、構造変数、または共用体基底付き変数

    • 最初または最後の基本エレメントが位置合わせされていない固定長のビット文字列である小構造体または共用体

    • BASED属性、DEFINED属性、またはパラメータ属性を持つ大構造体か共用体、またはパラメータである大構造体か共用体で、位置合わせされていない固定長のビット文字列を最初または最後のエレメントとするもの

    • 連結ストレージにない変数

  • 戻り値

    • argument-1の要求に対し、実装環境定義ストレージを与えるFIXED BINARY値をバイト単位で返します。

    • 変数が割り当てられていない場合、CURRENTSIZE組み込み関数を調節可能エクステントと共に、BASED変数上で使用してはなりません。

4.11.5. CURRENTSTORAGE(略語: CSTG)

CURRENTSIZEの同義語です。詳細については、CURRENTSIZEを参照してください。

4.11.6. NULL

ヌル・ポインター値を返します。

figure builtin49
  • 戻り値

    • ヌル・ポインター値を返します。ヌル・ポインター値は変数の生成を識別しません。ヌル・ポインター値は、ハンドルに割り当てられ、ハンドルと比較されます。

    • オフセット変数に組み込み関数の値を割り当てることで、OFFSETに変換されます。

4.11.7. OFFSET

ポインターをオフセットに変換します。

figure builtin offset
  • 引数

    項目 説明

    argument-1

    ポインター参照式

    argument-2

    区域参照式

  • 戻り値

    • 区域argument-2からのポインターargument-1の相対位置をオフセット値で返します。

    • argument-1がヌル・ポインターの場合は、ヌル・オフセットを返します。

4.11.8. POINTER(略語: PTR)

オフセットをポインターに変換します。

figure builtin pointer
  • 引数

    項目 説明

    argument-1

    オフセット参照式

    argument-2

    区域参照式

  • 戻り値

    • 区域argument-2からオフセットargument-1が離れた位置をポインター値で返します。

    • argument-1がヌル・オフセットの場合は、ヌル・ポインターを返します。

4.11.9. POINTERADD(略語: PTRADD)

引数の和であるポインター値を返します。

figure builtin pointeradd
  • 引数

    項目 説明

    argument-1

    ポインター式

    argument-2

    • 計算タイプを保持する必要がある式。FIXED BINARY(31,0)に変換されます。

  • 戻り値

    • argument-1のポインター値とargument-2値を併せたポインター値を返します。

4.11.10. SIZE

変数の最大サイズを返します。

figure builtin59
  • 引数

    項目 説明

    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)は、ビット、文字列、漢字文字列、ワイド文字列の処理を簡素化します。文字列の引数は、関数の記述で与えられた規則、あるいはデータ変換規則に基づいて、文字列に変換される算術式で表されます。

関数 説明

CHARACTER

値を文字列に変換します。

EDIT

ピクチャー指定に変換された値で構成される文字列を返します。

HIGH

指定した数の0xFF文字を持つ文字列を返します。

INDEX

文字列中にある1つの文字列の位置を検出します。

LEFT

文字列値を左揃えにして返します。

LENGTH

文字列の現行の長さを返します。

LOW

指定した数の0x00文字を持つ文字列を返します。

LOWERCASE

文字列のすべてのアルファベットを小文字に変換して返します。

REPEAT

指定した文字列を指定した回数+1回コピーした文字列を返します。

RIGHT

文字列値を右揃えにして返します。

SEARCH

ある文字列を構成する文字が他の文字列に含まれているかどうかを左から右の方向に検索して、最初に出現した位置を返します。

SEARCHR

ある文字列を構成する文字が他の文字列に含まれているかどうかを右から左の方向に検索して、最初に出現した位置を返します。

SUBSTR

文字列の部分文字列を割り当てます。

TRANSLATE

2つの変換文字列に基づいて文字列を変換します。

TRIM

文字列の左端と右端を取り除いた文字列を返します。

UPPERCASE

文字列のすべてのアルファベットを大文字に変換して返します。

VERIFY

ある文字列にないエレメントが、他の文字列で一番最初に検索される位置を返します。左から右に検索します。

VERIFYR

ある文字列にないエレメントが、他の文字列で一番最初に検索される位置を返します。右から左に検索します。

4.12.1. CHARACTER(略語 : CHAR)

値を文字列に変換します。

figure builtin24
  • 引数

    項目 説明

    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

ピクチャー指定に変換された値で構成される、ピクチャー指定と同じ長さの文字列を返します。

figure builtin edit
  • 引数

    項目 説明

    argument-1

    • 計算タイプでなければなりません。

    argument-2

    文字列式

    • 文字タイプを保持し、有効なピクチャー文字を含んでいる必要があります。

    • 有効なピクチャー指定を含んでいない場合は、ERROR条件が発生します。

  • 戻り値

    • argument-1をargument-2のピクチャー指定に変換した、argument-2の長さの文字列を返します。

4.12.3. HIGH

指定した数の0xFF文字を持つ文字列を返します。

figure builtin38
  • 引数

    項目 説明

    argument-1

    • 必要な場合、argument-1は正の実数固定小数点の2進数の値に変換されます。

    • argument-1=0の場合、結果はヌル文字列です。

  • 戻り値

    • 照合順序の最上位の文字(16進数のFF)で、長さargument-1の文字列を返します。

4.12.4. INDEX

文字列中にある1つの文字列の位置を検出します。

figure builtin39
  • 引数

    項目 説明

    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

文字列を指定された長さの空の文字列の左端に挿入した後、その右側を指定した文字で埋めて返します。

figure builtin 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

文字列の現行の長さを返します。

figure builtin41
  • 引数

    項目 説明

    argument-1

    文字列式

    • argument-1が2進数の場合はビット文字列に変換されます。それ以外の場合、他の文字列に変換されます。

  • 戻り値

    • argument-1の現行の長さを指定するスケールのないREAL FIXED BINARY値を返します。

4.12.7. LOW

指定した数の0x00文字を持つ文字列を返します。

figure builtin44
  • 引数

    項目 説明

    argument-1

    • 必要な場合、argument-1は正の実数固定小数点の2進数の値に変換されます。

    • argument-1=0の場合、結果はヌル文字列です。

  • 戻り値

    • 照合順序の最下位の文字(16進数の00)で、長さargument-1の文字列を返します。

4.12.8. LOWERCASE

文字列のすべてのアルファベットを小文字に変換して返します。

figure builtin lowercase
  • 引数

    項目 説明

    argument-1

    変換する式

    • 必要に応じて文字列に変換されます。

  • 戻り値

    • 小文字に変換されたargument-1の文字列を返します。

4.12.9. REPEAT

指定した文字列を指定した回数+1回コピーした文字列を返します。

figure builtin54
  • 引数

    項目 説明

    argument-1

    繰り返されるビット、文字、漢字、またはワイド文字の式

    • argument-1が演算式の場合は変換が発生します。

    • 2進数の場合はビット文字列に変換され、10進数の場合は文字列に変換されます。

    argument-1

    • 必要な場合、argument-2は実数の固定小数点の2進数の値に変換されます。

  • 戻り値

    • argument-2で指定された数だけ連結したargument-1のビット文字列、文字列、漢字文字列、またはワイド文字列を返します。つまり、argument-1の(argument-2 + 1)オカレンスがあります。

4.12.10. RIGHT

文字列を指定された長さの空の文字列の右端に挿入した後、その左側を指定した文字で埋めて返します。

figure builtin 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の長さを持つ文字列を返します。

ある文字列を構成する文字が他の文字列に含まれているかどうかを左から右の方向に検索して、最初に出現した位置を返します。

  • 引数

    項目 説明

    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

ある文字列を構成する文字が他の文字列に含まれているかどうかを右から左の方向に検索して、最初に出現した位置を返します。

figure builtin 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

文字列の部分文字列を割り当てます。

figure builtin11
  • 引数

    項目 説明

    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つの変換文字列に基づいて文字列を変換します。

figure builtin65
  • 引数

    項目 説明

    argument-1

    変換できる文字があるかどうかを検索する文字式

    argument-2

    文字の変換値を含む文字式

    argument-3

    変換される文字を含む文字式

    • argument-3が省略された場合、デフォルトはCOLLATE()です。

  • 戻り値

    • argument-1と同じ長さの文字列を返します。

    • TRANSLATE組み込み関数は、算術引数またはビット引数を文字に変換し、GRAPHICまたはWIDECHARのデータはサポートしません。

4.12.15. TRIM

文字列の左端と右端を取り除いた文字列を返します。

figure builtin 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

文字列のすべてのアルファベットを大文字に変換して返します。

figure builtin uppercase
  • 引数

    項目 説明

    argument-1

    変換する式

    • 必要に応じて文字列に変換されます。

  • 戻り値

    • 大文字に変換されたargument-1の文字列を返します。

4.12.17. VERIFY

ある文字列にないエレメントが他の文字列で検索される位置を返します。

figure builtin67
  • 引数

    項目 説明

    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組み込み関数と同様に動作します。

figure builtin verifyr
  • 引数

    項目 説明

    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の値がゼロの場合は、ゼロが返されます。