下列範例顯示一個具有可呼叫 SQL 儲存程序的 DTW_SQL 函數定義的巨集。 它具有三種不同資料類型的參數。DTW_SQL 語言環境會將每一參數中的字串值轉換為正確的內部格式, 並依據 SQL 儲存程序的參照傳遞每一參數。當 SQL 儲存程序完成處理時, 更新的內部呈現將轉換為字串並置於對應的參數中。
%{***********************************************************
/* DEFINE BLOCK
/************************************************************%}
DEFINE {
MACRO_NAME = "TEST ALL TYPES"
DTW_HTML_TABLE = "YES"
Procedure = "NDLIB.TESTTYPE"
parm1 = "1" %{SMALLINT %}
parm2 = "11" %{INT %}
parm3 = "1.1" %{DECIMAL (2,1) %}
%}
%FUNCTION(DTW_SQL) CRTPROC(){
CREATE PROCEDURE $(Procedure)
( INOUT SMALLINT,
INOUT INT,
INOUT DECIMAL(2,1))
EXTERNAL NAME $(Procedure) LANGUAGE C SIMPLE CALL
%MESSAGE{
default : "$(DTW_DEFAULT_MESSAGE) : continuing.<br>": continue
%}
%}
%FUNCTION(DTW_SQL) myProc
(INOUT SMALLINT parm1,
INOUT INT parm2,
INOUT DECIMAL(2,1) parm3){
CALL $(Procedure)
%}
%HTML(REPORT){
<HEAD>
<TITLE>Net.Data : SQL 儲存程序:範例 '$(MACRO_NAME)'. <?TITLE>
</HEAD>
<BODY BGCOLOR="#BBFFFF" TEXT="#000000" LINK="#000000">
<p><p>
呼叫將建立儲存程序的函數。
<p><p>
@CRTPROC()
<hr>
<h2>
在呼叫儲存程序前 INOUT 參數的值:<p>
</h2>
<b>parm1 (SMALLINT)</b><br>
$(parm1)<p>
<b>parm2 (INT)</b><br>
$(parm2)<p>
<b>parm3 (DECIMAL)</b><br>
$(parm3)<p>
<p>
<hr>
<h2>
呼叫執行儲存程序的函數。
</h2>
<p><p>
@myProc(parm1,parm2,parm3)
<hr>
<h2>
在呼叫儲存程序後 INOUT 參數的值:<p>
</h2>
<b>parm1 (SMALLINT)</b><br>
$(parm1)<p>
<b>parm2 (INT)</b><br>
$(parm2)<p>
<b>parm3 (DECIMAL)</b><br>
$(parm3)<p>
</body>
%}
假定 Web 巨集儲存在程式庫 NETDATA, 檔案 SQLMAC 與成員 SQL1 中, 則會經由從瀏覽器中載入下列 URL 來參照巨集:
http://hostname/cgi-bin/db2www/qsys.lib/netdata.lib/sqlmac.file/ sql1.mbr/report