在 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 敘述句內多次執行程序。只執行程序一次時不需要。 |
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 敘述句變更資料庫。查詢必須在單引號內,而且必須包含在一行中。指定儲存物件在資料庫中的方式 (例如在 Oracle 區分大小寫名稱的引號內) 區分大小寫的物件名稱。 SQLEXEC 'SELECT "col1" from "schema"."table"' |
{::nomarkdown} <pre class="pre codeblock"> PARAMS param_spec |
中文版 _ ENGLISH |
定義查詢是否接受參數。必須使用其中一個選項 (請參閱使用輸入和輸出參數 )。 |
如果要對位於與目前資料庫不同之資料庫的表格執行查詢,則必須使用表格指定不同的資料庫名稱。資料庫名稱與表格名稱之間的分界字元應為冒號 (:)。
以下是一些範例使用案例:
select col1 from db1:tab1
select col2 from db2:schema2.tab2
select col3 from tab3
select col3 from schema4.tab4