Example: Dynamic SQL in an ILE RPG application that uses SQL

Here is an example of using dynamic SQL in ILE RPG.

//**************************************************
//* Declare program variables.                     *
//* STMT initialized to the                        *
//* listed SQL statement.                          *
//**************************************************
DCL-S EMPNUM CHAR(6);
DCL-S NAME CHAR(15);
DCL-S STMT CHAR(500)
  INZ('SELECT LASTNAME FROM CORPDATA.EMPLOYEE +
       WHERE EMPNO = ?');
...
//*************************************************************
//* Prepare STMT as initialized in declare section            *
//*************************************************************
EXEC SQL PREPARE S1 FROM :STMT;

//*************************************
//* Declare Cursor for STMT           *
//*************************************
EXEC SQL DECLARE C1 CURSOR FOR S1;

//*****************************************************
//* Assign employee number to use in select statement *
//*****************************************************
EMPNUM = '000110';

//**********************
//* Open Cursor        *
//**********************
EXEC SQL OPEN C1 USING :EMPNUM;

//***********************************************
//* Fetch record and put value of               *
//* LASTNAME into NAME                          *
//***********************************************
EXEC SQL FETCH C1 INTO :NAME;

//********************************
//* Program processes NAME here  *
//********************************
...
//******************
//* Close cursor   *
//******************
EXEC SQL CLOSE C1;