docs: public void exists(String tableName, String columnName, String jdbcType, boolean ignoreCase) throws SQLException
  	{
  		if (tableName == null) throw new SQLException("TableName was null.  You must specify a valid table name.");
  		if (columnName == null) throw new SQLException("Column name was null.  You must specify a valid column name.");
  
  		ResultSet columns = getColumns(tableName);
  
  		if(columns == null)
  		{
  			//columns not in the cache, look them up and cache
  			PreparedStatement checkTable = null;
  			try
  			{
  				//System.out.println("DBUtility: looking up table: " + tableName);
  				//System.out.println("Select * from " + tableName + " where 1=0");
  				checkTable = m_connection.prepareStatement("Select * from " + tableName + " where 1=0");
  				columns = checkTable.executeQuery();
  				putColumns(tableName, columns);
  			}
  			catch(SQLException sqle)
  			{
  				if (sqle.getMessage().startsWith(m_ORA_EXCEPTION_1000) || sqle.getMessage().startsWith(m_ORA_EXCEPTION_604))
  				{
  					System.out.println("Exceeded available Oracle cursors.  Resetting connection and trying the SQL statement again...");
  					resetConnection();
  					exists(tableName, columnName, jdbcType, ignoreCase);
  				}
  				else
  				{
  					//System.out.println(sqle.getMessage());
  					throw sqle;
  				}
  			}	
  		}
  		
  		ResultSetMetaData rsMeta = columns.getMetaData();
  		int iColumns = rsMeta.getColumnCount();
  		int jdbcTypeConst = this.getJdbcType(jdbcType);
  		for(int i = 1; i <= iColumns; i++)
  		{
  			if(ignoreCase)
  			{
  				//ignore case while testing
  				if(columnName.equalsIgnoreCase(rsMeta.getColumnName(i)))
  				{
  					//The column exists, does the type match?
  					if(jdbcTypeConst != rsMeta.getColumnType(i))
  					{
  						throw new SQLException("The column '" + tableName + "." + columnName + "' is of type '" + rsMeta.getColumnTypeName(i) + "' and cannot be mapped to the jdbc type '" + jdbcType + "'.");
  					}
  					else
  					{
  						return;	
  					}
  				}
  			}
  			else
  			{
  				//enforce case-sensitive compare
  				if(columnName.equals(rsMeta.getColumnName(i)))
  				{
  					//The column exists, does the type match?
  					if(jdbcTypeConst != rsMeta.getColumnType(i))
  					{
  						throw new SQLException("The column '" + tableName + "." + columnName + "' is of type '" + rsMeta.getColumnTypeName(i) + "' and cannot be mapped to the jdbc type '" + jdbcType + "'.");
  					}
  					else
  					{
  						return;	
  					}
  				}				
  				
  			}
  			
  			//System.out.println("Found column: " + rsMeta.getColumnName(i));
  		}
  
  		throw new SQLException("The column '" + columnName + "' was not found in table '" + tableName + "'.");
  
  	}