在 TABLE 或 MAP 语句中应用 SQLEXEC
在 TABLE 或 MAP 语句中使用时,SQLEXEC 可以传递和接受参数。它可用于过程和查询,但不能用于数据库命令。
语法
此语法在 TABLE 或 MAP 语句中执行过程。
SQLEXEC (SPNAME *sp_name*,
[ID *logical_name*,]
{PARAMS *param_spec* | NOPARAMS})
| — | — |
SPNAME |
用于开始子句以执行存储过程的必需关键字。 |
ID logical_name |
定义过程的逻辑名称。使用此选项可在 TABLE 或 MAP 语句中多次执行该过程。仅执行一次过程时不是必需的。 |
语法
此语法在 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 语句更改数据库。查询必须位于单引号内,并且必须全部包含在一行中。指定区分大小写的对象名称在数据库中的存储方式,例如在 Oracle 区分大小写名称的引号内。 SQLEXEC 'SELECT "col1" from "schema"."table"' |
如果要对驻留在与当前数据库不同的数据库上的表执行查询,则必须对该表指定不同的数据库名称。数据库名称与表名之间的分隔符应为冒号 (:)。
以下是一些示例用例:
select col1 from db1:tab1
select col2 from db2:schema2.tab2
select col3 from tab3
select col3 from schema4.tab4