intra-mart Accel Platform IM-LogicDesigner仕様書 第24版 2024-04-01

4.2.5.1.4. ストアド

処理種別(タイプ)ストアドは、ユーザ定義タスクとしてストアドプロシージャ、ストアドファンクションを実行するタスクを定義します。

注意

SQL Server の仕様によりSQL Server を SelectMethod=cursor で利用時には ストアド定義タスクでユーザ定義関数を実行できません。

4.2.5.1.4.1. 入力値/返却値

処理種別(タイプ)ストアドでは、入力値/返却値をそれぞれ以下のように定義します。
各パラメータのデータ型は、後述の「データベースに関して対応しているデータ型」を確認の上、データベースのデータ型に対応している IM-LogicDesignerのデータ型を正しく設定してください。

4.2.5.1.4.1.1. 入力値

SQLに定義した2WaySQLの入力パラメータ、または入出力パラメータを定義します。
入力値に定義したパラメータは、SQLに定義したパラメータとキー名で紐付きます。
出力値に同一キー名のパラメータがある場合、ストアド実行時は入出力パラメータとして扱われます。

4.2.5.1.4.1.2. 返却値

実行するストアドプロシージャ、ストアドファンクションの返却値の形式に合わせて、「outParameters」オブジェクト・「resultSets」オブジェクトの直下に返却値を定義します。
  • outParameters
    SQLに定義した2WaySQLの出力・入出力パラメータを定義します。
    出力値に定義したパラメータは、SQLに定義したパラメータとキー名で紐付きます。
    入力値に同一キー名のパラメータがある場合、ストアド実行時は入出力パラメータとして扱われます。

    出力パラメータが「カーソル型」の場合は、オブジェクトの配列として定義します。
    オブジェクト配下の項目のパラメータ名は、カーソル型レコードが戻す各カラムの名称と同一にします。
  • resultSets
    ストアドの実行結果がパラメータ以外で戻される結果セットの場合は、「resultSets」オブジェクト直下に返却値を定義します。
    複数の結果セットが返却される場合は、 返却される結果セット順 に結果セット数分の出力値を定義します。
    結果セットの出力値のキー名には任意の名前を設定します。
    結果セットの出力値がオブジェクトの場合は、オブジェクト配下の項目のキー名は、結果セットレコードが戻す各カラムの名称と同一にします。

4.2.5.1.4.2. データベース種別

定義したSQLの実行先を定義します。
データベース種別として定義可能な値は以下の通りです。
  • TENANT
    • テナントDBでストアドプロシージャ、ストアドファンクションを実行します。
  • SHARED
    • シェアードDBでストアドプロシージャ、ストアドファンクションを実行します。
    • 実行するシェアードDBの接続IDを同時に定義します。

4.2.5.1.4.3. SQL

処理種別(タイプ)ストアドにおいて、ユーザ定義タスクの実行処理部分のSQLを定義します。
[記載例]
2つの入力パラメータ(param1、param2)と 戻り値としての1つの出力パラメータ(param3)があるストアドファンクション my_func を実行するケース
{ /*param3*/ = call my_func(/*param1*/, /*param2*/) }
SQL文に埋め込まれたパラメータ(上記例ではparam1、param2、param3) は必ず入力値または返却値に定義されている必要があります。

4.2.5.1.4.4. データベースに関して対応しているデータ型

以下のデータベース型に対応しています。
IM-LogicDesignerのデータ型は、「PostgreSQL」、「Oracle Database」、「SQL Server」のデータベース型とそれぞれ対応しています。
PostgreSQLのデータ型 Oracle Databaseのデータ型 SQL Serverのデータ型 IM-LogicDesignerのデータ型
VARCHAR
CHAR [1]
CHARACTER [1]
TEXT
VARCHAR
CHAR
NCHAR
LONG
NVARCHAR
LONG VARCHAR
VARCHAR
NVARCHAR
CHAR
NCHAR
TEXT
string
NUMERIC
NUMERIC
SMALLINT
INTEGER
FLOAT
DOUBLE PRECISION
NUMBER
REAL
DECIMAL
NUMERIC
bigdecimal
BYTEA [2]
BLOB
RAW
BINARY
VARBINARY
TIMESTAMP
binary
-
CLOB
NCLOB
- sqlclob
- - TINYINT byte
SMALLINT - SMALLINT short
INTEGER - INT integer
BIGINT - BIGINT long
DOUBLE PRECISION - FLOAT double
TIMESTAMP WITH TIME ZONE
TIMESTAMP
DATE
DATETIME sqltimestamp
- - DATE sqldate
BOOLEAN
BIT [3]
- BIT boolean

注釈

[1](1, 2)
出力パラメータには指定できません。
ただし、出力パラメータがオブジェクト型またはオブジェクト型の配列の場合は、配下の項目としての指定が可能です。
[2]
配列は利用できません。
[3]
入力パラメータには指定できません。