In simple data manipulation, you retrieve or insert single rows
or update one or more rows based on a specific criterion.  In
most cases, the simple data manipulation technique is used to
support the random retrieval and/or change of specific rows.
The duration of locks can be minimized by making each data
manipulation operation a separate transaction.
In the following example, if the user wants to perform a DELETE
operation, the program performs the operation only if a single
row qualifies.  If no rows qualify or if more than one row
qualifies, the program displays a message.  Note that the host
variables in this case are designed to accommodate only a single
row.  In addition, two of the columns may contain null values,
so an indicator variable is used for these columns:
             EXEC SQL BEGIN DECLARE SECTION
             CHARACTER*16     PartNumber
             CHARACTER*30     PartName
             SQLIND           PartNameInd
             DOUBLE PRECISION SalesPrice
             SQLIND           SalesPriceInd
             EXEC SQL END DECLARE SECTION
             .
             .
             .
         SUBROUTINE DoQuery
   
       . This procedure accepts a part number from the user,
       . then executes a query to determine whether one or 
       . more rows containing that value actually exist.
   
          EXEC SQL SELECT  PartNumber, PartName, SalesPrice
        1            INTO :PartNumber,
        2                 :PartName :PartNameInd,
        3                 :SalesPrice :SalesPriceInd
        4            FROM  PurchDB.Parts
        5           WHERE  PartNumber = :PartNumber
   
          IF (SQLCode .EQ. 0) THEN
            CALL DisplayDelete
          ELSEIF (SQLCode .EQ.100) THEN
            CALL WriteOut ('Row Not Found!')
          ELSEIF (SQLCode .EQ. -10002) THEN
            CALL WriteOut ('WARNING: More than one row qualifies!')
          ELSE
             CALL SQLStatusCheck
          ENDIF
          .
          .
          .
          RETURN
          END
 | 
         SUBROUTINE DisplayDelete
   
       . The qualifying row is displayed for the user to
       . verify that it should be deleted before the following
       . command is executed:
   
              EXEC SQL DELETE FROM PurchDB.Parts
        1                  WHERE PartNumber = :PartNumber
          .
          .
          .
         RETURN
         END
 | 
Chapter 7 provides more details about simple data manipulation.