式のオペランドによってサポートされるデータ・タイプ

表 1 は、各単項演算子に使用できるオペランドのタイプと結果の タイプを説明しています。 表 2 は、各 2 項演算子に使用できるオペランドのタイプと結果 のタイプを説明しています。 表 3 は、各組み込み関数に使用できるオペランドのタイプと結果 のタイプを説明しています。 プロトタイプ・プロシージャーは、プロトタイプ定義で定義されていればどのデータ・タイプもサポート します。

表 1. 単項演算にサポートされるタイプ
命令 オペランド・タイプ 結果のタイプ
- (否定) 数値 数値
+ 数値 数値
NOT 標識 標識
表 2. 2 項演算にサポートされるオペランド
演算子 オペランド 1 タイプ オペランド 2 タイプ 結果のタイプ
+ (加算) 数値 数値 数値
+ (加算) 日付 期間 日付
+ (加算) 時刻 期間 時刻
+ (加算) タイム・スタンプ 期間 タイム・スタンプ
- (減算) 数値 数値 数値
- (減算) 日付 期間 日付
- (減算) 時刻 期間 時刻
- (減算) タイム・スタンプ 期間 タイム・スタンプ
* (乗算) 数値 数値 数値
/ (除算) 数値 数値 数値
** (指数) 数値 数値 数値
変更の始まり+ (連結) 変更の終わり 変更の始まり文字、図形、UCS-2変更の終わり 変更の始まり文字、図形、UCS-2変更の終わり 変更の始まり文字、図形、UCS-2変更の終わり
+ (ポインターへのオフの加算) 基底ポインター 数値 基底ポインター
- (減算ポインター) 基底ポインター 基底ポインター 数値
- (ポインターからのオフセットの減算) 基底ポインター 数値 基底ポインター
注: 次の演算の場合は、オペランドは任意のタイプとすることができますが、 2 つのオペランドは同じタイプでなければなりません。
= (等しい) 任意 任意 標識
>= (より大きいか等しい) 任意 任意 標識
> (より大) 任意 任意 標識
<= (より小さいか等しい) 任意 任意 標識
< (より小) 任意 任意 標識
<> (等しくない) 任意 任意 標識
AND (論理 AND) 標識 標識 標識
OR (論理 OR) 標識 標識 標識
表 3. 組み込み関数にサポートされるタイプ
命令 オペランド 結果のタイプ
%ABS 数値 数値
%ALLOC 数値 ポインター
%BITAND 文字:文字 {: 文字... } 文字
%BITAND 数値:数値 {: 数値... } 数値
%BITNOT 文字 文字
%BITNOT 数値 数値
%BITOR 文字:文字 {: 文字... } 文字
%BITOR 数値:数値 {:数値... } 数値
%BITXOR 文字:文字 文字
%BITXOR 数値:数値 数値
変更の始まり%CHAR変更の終わり 変更の始まり文字、図形、UCS-2 {: ccsid }変更の終わり 変更の始まり指定された CCSID の可変長文字変更の終わり
変更の始まり%CHAR変更の終わり 変更の始まり数値変更の終わり 変更の始まりジョブ CCSID の可変長文字変更の終わり
変更の始まり%CHAR変更の終わり 変更の始まり日付、時刻またはタイム・スタンプ {: 日付、時刻、またはタイム・スタンプの形式 }変更の終わり 変更の始まりジョブ CCSID の文字変更の終わり
%CHECK 文字、図形、または UCS-2 {: 数値 } 数値
%CHECKR 文字、図形、または UCS-2 {: 数値 } 数値
%DATE {文字、数値、またはタイム・スタンプ {: 日付の形式 } } 日付
%DAYS 数値 数値 (期間)
%DEC 文字 : 数値定数 : 数値定数 数値 (パック)
%DEC 数値 {: 数値定数 : 数値定数 } 数値 (パック)
%DEC 日付、時刻、またはタイム・スタンプ {: 形式 } 数値 (パック)
%DECH 文字 : 数値定数 : 数値定数 数値 (パック)
%DECH 数値 : 数値定数 : 数値定数 数値 (パック)
%DECPOS 数値 数値 (符号なし)
%DIFF 変更の始まり日付、時刻、またはタイム・スタンプ : 日付、 時刻、またはタイム・スタンプ : 単位 {: 秒の小数部の桁数 }変更の終わり 数値 (期間) (双方に互換性のある)
%DIV 数値 : 数値 数値
%EDITC 非浮動数値 : 長さ 1 の 文字定数 {:*CURSYM | *ASTFILL | 文字通貨記号 } 文字 (固定長)
%EDITFLT 数値 文字 (固定長)
%EDITW 非浮動数値 : 文字定数 文字 (固定長)
%EOF {ファイル名 } 標識
%EQUAL {ファイル名 } 標識
%ERROR   標識
%FLOAT 文字 数値 (浮動)
%FLOAT 数値 数値 (浮動)
%FOUND {ファイル名 } 標識
変更の始まり%GRAPH変更の終わり 変更の始まり文字、図形、または UCS-2 {: ccsid }変更の終わり 変更の始まり指定された CCSID のグラフィック変更の終わり
%HOURS 数値 数値 (期間)
%INT 文字 数値 (整数)
%INT 数値 数値 (整数)
%INTH 文字 数値 (整数)
%INTH 数値 数値 (整数)
%LEN 任意 数値 (符号なし)
%LOOKUPxx 任意 : 任意の配列 {: 数値 {: 数値 } } 数値 (符号なし)
%MINUTES 数値 数値 (期間)
%MONTHS 数値 数値 (期間)
%MSECONDS 数値 数値 (期間)
%OCCUR 複数オカレンス・データ構造 複数オカレンス・データ構造
%OPEN ファイル名 標識
%PARMS   数値 (整数)
%REALLOC ポインター : 数値 ポインター
%REM 数値 : 数値 数値
%REPLACE 文字 : 文字 {: 数値 {: 数値 } } 文字
%REPLACE 図形 : 図形 {: 数値 {: 数値 } } グラフィック
%REPLACE UCS-2 : UCS-2 {: 数値 {: 数値 } } UCS-2
変更の始まり%SCAN変更の終わり 変更の始まり文字 : 文字 {: 数値 {: 長さ]}変更の終わり 変更の始まり数値 (符号なし)変更の終わり
変更の始まり%SCAN変更の終わり 変更の始まり図形 : 図形 {: 数値 {: 長さ}}変更の終わり 変更の始まり数値 (符号なし)変更の終わり
変更の始まり%SCAN変更の終わり 変更の始まりUCS-2 : UCS-2 {: 数値 {: 長さ}}変更の終わり 変更の始まり数値 (符号なし)変更の終わり
変更の始まり%SCANR変更の終わり 変更の始まり文字 : 文字 {: 数値 {: 長さ]}変更の終わり 変更の始まり数値 (符号なし)変更の終わり
変更の始まり%SCANR変更の終わり 変更の始まり図形 : 図形 {: 数値 {: 長さ}}変更の終わり 変更の始まり数値 (符号なし)変更の終わり
変更の始まり%SCANR変更の終わり 変更の始まりUCS-2 : UCS-2 {: 数値 {: 長さ}}変更の終わり 変更の始まり数値 (符号なし)変更の終わり
%SCANRPL 文字 : 文字 : 文字 {: 数値 {: 数値 } } 文字
%SCANRPL 図形 : 図形 : 図形 {: 数値 {: 数値 } } グラフィック
%SCANRPL UCS-2 : UCS-2 : UCS-2 {: 数値 {: 数値 } } UCS-2
%SECONDS 数値 数値 (期間)
%SHTDN   標識
%SQRT 数値 数値
%STATUS {ファイル名 } 数字 (ゾーン 10 進)
%STR 基底ポインター {: 数値 } 文字
注: %STR が式の左辺に付いている場合、第 2 オペランドが必要です。
%SUBARR 任意: 数値 {:数値 } 任意 (第 1 オペランドと同じタイプ)
%SUBDT 日付、時刻、またはタイム・スタンプ : 単位 数値 (符号なし)
変更の始まり%SUBDT変更の終わり 変更の始まり日付、時刻、またはタイム・スタンプ : 単位 : 桁数 { : 秒の小数部の桁数 }変更の終わり 変更の始まり数値 (パック 10 進数)変更の終わり
%SUBST 文字 : 数値 {: 数値 } 文字
%SUBST 図形 : 数値 {: 数値 } グラフィック
%SUBST UCS-2 : 数値 {: 数値 } UCS-2
%THIS   オブジェクト
%TIME {文字、数値、あるいはタイム・スタンプ {: 時刻の形式 } } 時刻
%TIMESTAMP 変更の始まり{文字、数値 {: タイム・スタンプ形式 { : 秒の小数部の桁数 } } }変更の終わり タイム・スタンプ
変更の始まり%TIMESTAMP変更の終わり 変更の始まり{*SYS、タイム・スタンプ、日付 { 秒の小数部の桁数 } }変更の終わり 変更の始まりタイム・スタンプ変更の終わり
%TLOOKUPxx 任意のテーブル: 任意のテーブル {: 任意 } 標識
%TRIM 文字 { : 文字 } 文字
%TRIM 図形 { : 図形 } グラフィック
%TRIM UCS-2 { : UCS-2 } UCS-2
%TRIML 文字 { : 文字 } 文字
%TRIML 図形 { : 図形 } グラフィック
%TRIML UCS-2 { : UCS-2 } UCS-2
%TRIMR 文字 { : 文字 } 文字
%TRIMR 図形 { : 図形 } グラフィック
%TRIMR UCS-2 { : UCS-2 } UCS-2
%UCS2 文字、図形、または UCS-2 {: ccsid } 指定された CCSID の可変長 UCS-2 値
%UNS 文字 数値 (符号なし)
%UNS 数値 数値 (符号なし)
%UNSH 文字 数値 (符号なし)
%UNSH 数値 数値 (符号なし)
%XFOOT 数値 数値
%XLATE 文字、図形、または UCS-2 : 文字、図形、または UCS-2 : 文字、図形、または UCS-2 {: 数値 } 文字、図形、または UCS-2
%YEARS 数値 数値 (期間)
注: 次の組み込み関数の場合は、引数はリテラル、名前付き定数、または変 数でなければなりません。
%PADDR 文字 プロシージャーまたはプロトタイプ・ポインター
%SIZE 任意 {: *ALL } 数値 (符号なし)
注: 次の組み込み関数の場合は、引数は変数でなければなりません。 しかし、配列指標が指定された場合には、有効な任意の数値式とすることができ ます。
%ADDR 任意 基底ポインター
%ELEM 任意 数値 (符号なし)
%NULLIND 任意 標識
注: 次の組み込み関数は値を戻さないため、正確には組み込み関数ではありません。これらは、一部の自由形式演算で使用されます。
%FIELDS 任意{: 任意 {: 任意 ... } 該当せず
%HANDLER プロトタイプ名: 任意 該当せず
%KDS データ構造 {: 数値 } 該当せず
%XML 文字、または UCS-2 { : 文字 } 該当せず