<%@page import="java.sql.*, Examples, oracle.xml.sql.query.*" %> <% Connection cn = Examples.getConnection(); String code = request.getParameter("find"); // First try an exact match on the airport 3-letter code String qry = "SELECT tla as \"Code\", description as \"Name\""+ " FROM airport "+ " WHERE tla = UPPER('" + code + "')"; OracleXMLQuery oxq = new OracleXMLQuery( cn, qry); // Signal a catch-able exception when no data found oxq.setRaiseNoRowsException(true); // Setting RowsetTag to "" omits it from the result. oxq.setRowsetTag(""); oxq.setRowTag("Airport"); try { out.println(oxq.getXMLString()); } catch (oracle.xml.sql.OracleXMLSQLNoRowsException e) { // If no rows found, try a "fuzzy" match on the airport description qry = "SELECT tla as \"Code\", description as \"Name\""+ " FROM airport "+ " WHERE UPPER(description) LIKE UPPER('%"+ code + "%')"+ " ORDER BY UPPER(description)"; OracleXMLQuery oxq2 = new OracleXMLQuery(cn,qry); oxq2.setRowsetTag("Error"); oxq2.setRowTag("Airport"); out.println(oxq2.getXMLString()); } cn.close(); %> |