L'esempio che segue riporta una macro con una definizione di funzione DTW_SQL che chiama una procedura memorizzata SQL. Esso contiene tre parametri di tipi di dati differenti. L'ambiente di linguaggio DTW_SQL converte i valori della stringa di caratteri in ogni parametro sul formato interno corretto e trasferisce ogni parametro facendo riferimento alla procedura memorizzata SQL. Quando la procedura SQL memorizzata completa l'elaborazione, la rappresentazione interna aggiornata viene convertita su una stringa di caratteri e posizionata nel parametro corrispondente.
%{***********************************************************
/* 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 Stored Procedure: Example '$(MACRO_NAME)'. <?TITLE>
</HEAD>
<BODY BGCOLOR="#BBFFFF" TEXT="#000000" LINK="#000000">
<p><p>
Chiamare la funzione per creare la procedura memorizzata.
<p><p>
@CRTPROC()
< hr>
<h2>
Valori dei parametri INOUT prima di chiamare la procedura
memorizzata:<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>
Chiamare la funzione che esegue la procedura memorizzata.
</h2>
<p><p>
@myProc(parm1,parm2,parm3)
< hr>
<h2>
Valori dei parametri INOUT dopo
la chiamata alla procedura memorizzata:<p>
</h2>
<b>parm1 (SMALLINT)</b><br>
$(parm1)<p>
<b>parm2 (INT)</b><br>
$(parm2)<p>
<b>parm3 (DECIMAL)</b><br>
$(parm3)<p>
</body>
%}
Se si considera che la macro Web è memorizzata nella libreria NETDATA, file SQLMAC e membro SQL1, si fa riferimento alla macro caricando dal browser il seguente URL:
http://hostname/cgi-bin/db2www/qsys.lib/netdata.lib/sqlmac.file/ sql1.mbr/report