IBM Books

OS/400 版管理及程式設計指南

執行 SQL 陳述式

您可以執行動態 SQL 支援的任何 SQL 陳述式。

若要執行 SQL 陳述式,請定義一個函數,來使用 SQL (DTW_SQL) 語言環境,並在函數的語言環境可執行區段中含有 SQL 陳述式。

範例:執行 SQL SELECT 陳述式的 SQL 函數:

%function(DTW_SQL) getOrders() {
   SELECT cust, custid, custorder FROM mylibrary.customers
%}

確定控制

依據預設值,SQL 語言環境會在確定控制下執行,並遵循所有管理確定控制的規則。

異動管理的詳細資訊,請參閱"管理 Net.Data 應用程式中的異動"

OUT 及 INOUT 表格

如果您在函數定義上指定 OUT 或 INOUT Net.Data 表格, 且 SQL 陳述式傳回結果集合,則 SQL 語言環境會將每一結果集合儲存在指定的表格中。 然後,您可以在巨集中使用表格。如果未指定 OUT 表格,則 SQL 語言環境將使用預設表格。

巢狀 SQL 陳述式

您可以從另一個 SQL 函數的 ROW 區塊內呼叫其他 SQL 函數。 在每一 SQL 函數中使用唯一的 Net.Data 表格名稱,否則,可能會發生無法預期的結果。

範例:從另一個 SQL 函數的 ROW 區塊呼叫 SQL 函數

%define mytable1 = %TABLE
%define mytable2 = %TABLE
%FUNCTION(DTW_SQL) sql2 (IN p1, OUT t2) {
   select * from NETDATA.STAFFINF where projno='$(p1)'
%REPORT {
  %ROW { $(N1) is $(V1) %}
 %}
%}
%FUNCTION(DTW_SQL) sql1 (OUT t1) {
   select * from NETDATA.STAFFINF
%REPORT {
   %ROW { @sql2(V1, mytable2) %}
 %}
%}
%HTML(netcall1) { @sql1(mytable1) %}

支援的語言環境變數

SQL 語言環境支援為了支援 DB2 而設計的變數。 例如,DATABASE 變數指定當執行 SQL 陳述式時,SQL 語言環境將連接的資料來源。下列列示指定 SQL 語言環境支援的變數。 請參閱 Net.Data 參考手冊,取得這些變數的說明、語法及範例。

支援的資料類型

SQL 語言環境支援表 5中所示的資料類型

表 5. 資料類型

BLOB(1) DOUBLE SMALLINT
CHAR DOUBLEPRECISION TIME
CLOB(1) FLOAT TIMESTAMP
DATE GRAPHIC VARCHAR
DBCLOB(1) INTEGER VARGRAPHIC
DECIMAL REAL

(1) 這些資料類型無法以參數形式傳遞到儲存程序。 若要瞭解儲存程序支援的資料類型,請參閱"儲存程序語法"

請參閱"資料類型注意事項",瞭解 LOB 及 DATALINK 資料類型的特殊注意事項。

SQL 語言環境限制

當規劃您的環境時,請考慮下列限制:


[ 頁面頂端 | 前一頁 | 下一頁 | 目錄 | 索引 ]