anchor.diff:  			}
   		}
   	);
  +
   	blobIs.close();
   	clobReader.close();
   ----
  
positive.code: constructor you call the constructor on the superclass with the `DataSource` and the SQL
  that should be executed to retrieve the rows for this query. This SQL will be used to
  create a `PreparedStatement` so it may contain place holders for any parameters to be
  passed in during execution.You must declare each parameter using the `declareParameter`
  method passing in an `SqlParameter`. The `SqlParameter` takes a name and the JDBC type
  as defined in `java.sql.Types`. After you define all parameters, you call the
  `compile()` method so the statement can be prepared and later executed. This class is
  
negative.code: [source,java,indent=0]
  [subs="verbatim,quotes"]
  ----
  	public class TestItemStoredProcedure extends StoredProcedure {
  
  		public TestItemStoredProcedure(DataSource dataSource) {
  			...
  			declareParameter(new SqlOutParameter("item", OracleTypes.STRUCT, "ITEM_TYPE",
  				new SqlReturnType() {
  					public Object getTypeValue(CallableStatement cs, int colIndx, int sqlType, String typeName) throws SQLException {
  						STRUCT struct = (STRUCT) cs.getObject(colIndx);
  						Object[] attr = struct.getAttributes();
  						TestItem item = new TestItem();
  						item.setId(((Number) attr[0]).longValue());
  						item.setDescription((String) attr[1]);
  						item.setExpirationDate((java.util.Date) attr[2]);
  						return item;
  					}
  				}));
  			...
  		}
  ----
  
  You use the `SqlTypeValue` to pass in the value of a Java object like `TestItem` into a
  