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;