TABLE文またはMAP文内でのSQLEXECの適用

TABLE文またはMAP文内で使用する場合、SQLEXECでパラメータを受け渡したり、受け入れたりすることができます。プロシージャおよび問合せに使用できますが、データベース・コマンドには使用できません。

構文

この構文は、TABLE文またはMAP文内でプロシージャを実行します。

SQLEXEC (SPNAME *sp_name*,
[ID *logical_name*,]
{PARAMS *param_spec* | NOPARAMS})
引数 摘要

| — | — |

SPNAME
ストアド・プロシージャを実行するための句を開始する必須キーワード。
sp_name
実行するストアド・プロシージャの名前を指定します。
ID logical_name
プロシージャの論理名を定義します。このオプションを使用して、TABLE文またはMAP文内でプロシージャを複数回実行します。プロシージャを1回のみ実行する場合は不要です。
PARAMS param_spec | NOPARAMS
プロシージャでパラメータを受け入れるかどうかを指定します。これらのオプションのいずれかを使用する必要があります(「入力パラメータと出力パラメータの使用」を参照)。

構文

この構文は、TABLE文またはMAP文内で問合せを実行します。

SQLEXEC (ID *logical_name*, QUERY ' *query* ',
{PARAMS *param_spec* | NOPARAMS})
引数 摘要

| — | — |

ID logical_name
問合せの論理名を定義します。問合せの結果から値を抽出するには、論理名が必要です。ID logical_nameは、問合せから返された列値を参照します。
QUERY ' sql_query '

データベースに対して実行するSQL問合せの構文を指定します。これにより、SELECT文を使用して結果を戻すか、INSERT文、UPDATE文またはDELETE文を使用してデータベースを変更することが可能になります。問合せは、一重引用符で囲み、全体を1行で記述する必要があります。大/小文字が区別されるオブジェクト名を、データベースに格納されているとおりに指定します。たとえば、Oracleの大/小文字が区別される名前の場合は引用符で囲みます。

SQLEXEC 'SELECT "col1" from "schema"."table"'
{::nomarkdown} <pre class="pre codeblock">PARAMS param_spec NOPARAMS</code></pre> {:/} 問合せでパラメータを受け入れるかどうかを定義します。これらのオプションのいずれかを使用する必要があります(「入力パラメータと出力パラメータの使用」を参照)。

現在のデータベースではなく、異なるデータベースにある表で問合せを実行する場合は、異なるデータベース名を表で指定する必要があります。データベース名および表名の間の区切り記号はコロン(:)にする必要があります。

次に、ユース・ケースの例を示します。

select col1 from db1:tab1
select col2 from db2:schema2.tab2
select col3 from tab3
select col3 from schema4.tab4