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