Apply SQLEXEC within a TABLE or MAP Statement
When used within a TABLE or MAP statement, SQLEXEC can pass and accept parameters. It can be used for procedures and queries, but not for database commands.
Syntax
This syntax executes a procedure within a TABLE or MAP statement.
SQLEXEC (SPNAME *sp_name*,
[ID *logical_name*,]
{PARAMS *param_spec* | NOPARAMS})
| — | — |
SPNAME |
Required keyword that begins a clause to execute a stored procedure. |
sp_name |
Specifies the name of the stored procedure to execute. |
ID logical_name |
Defines a logical name for the procedure. Use this option to execute the procedure multiple times within a TABLE or MAP statement. Not required when executing a procedure only once. |
Syntax
This syntax executes a query within a TABLE or MAP statement.
SQLEXEC (ID *logical_name*, QUERY ' *query* ',
{PARAMS *param_spec* | NOPARAMS})
| — | — |
ID logical_name |
Defines a logical name for the query. A logical name is required in order to extract values from the query results. ID logical_name references the column values returned by the query. |
QUERY ' sql_query ' |
Specifies the SQL query syntax to execute against the database. It can either return results with a SELECT statement or change the database with an INSERT, UPDATE, or DELETE statement. The query must be within single quotes and must be contained all on one line. Specify case-sensitive object names the way they are stored in the database, such as within quotes for Oracle case-sensitive names. SQLEXEC 'SELECT "col1" from "schema"."table"' |
{::nomarkdown} <pre class="pre codeblock">PARAMS param_spec |
NOPARAMS</code></pre> {:/} |
Defines whether or not the query accepts parameters. One of these options must be used (see Using Input and Output Parameters). |
If you want to execute a query on a table residing on a different database than the current database, then the different database name has to be specified with the table. The delimiter between the database name and the tablename should be a colon (:).
The following are some example use cases:
select col1 from db1:tab1
select col2 from db2:schema2.tab2
select col3 from tab3
select col3 from schema4.tab4