This section describes the data types specific to geocoding functions and procedures.
The SDO_GEO_ADDR object type is used to describe an address. When a geocoded address is output by an SDO_GCDR function or procedure, it is stored as an object of type SDO_GEO_ADDR.
Table 11-6 lists the attributes of the SDO_GEO_ADDR type. Not all attributes will be relevant in any given case. The attributes used for a returned geocoded address depend on the geographical context of the input address, especially the country.
Table 11-6 SDO_GEO_ADDR Type Attributes
Attribute | Data Type | Description |
---|---|---|
Id |
NUMBER |
(Not used.) |
AddressLines |
SDO_KEYWORDARRAY |
Address lines. (The SDO_KEYWORDARRAY type is described in SDO_KEYWORDARRAY Type.) |
PlaceName |
VARCHAR2(200) |
Point of interest (POI) name. Example: CALIFORNIA PACIFIC MEDICAL CTR |
StreetName |
VARCHAR2(200) |
Street name, including street type. Example: MAIN ST |
IntersectStreet |
VARCHAR2(200) |
Intersecting street. |
SecUnit |
VARCHAR2(200) |
Secondary unit, such as an apartment number or building number. |
Settlement |
VARCHAR2(200) |
Lowest-level administrative area to which the address belongs. (See Table 11-1.) |
Municipality |
VARCHAR2(200) |
Administrative area above settlement. (See Table 11-1.) |
Region |
VARCHAR2(200) |
Administrative area above municipality (if applicable), or above settlement if municipality does not apply. (See Table 11-1.) |
Country |
VARCHAR2(100) |
Country name or ISO country code. |
PostalCode |
VARCHAR2(20) |
Postal code (optional if administrative area information is provided). In the United States, the postal code is the 5-digit ZIP code. |
PostalAddOnCode |
VARCHAR2(20) |
String appended to the postal code. In the United States, the postal add-on code is typically the last four numbers of a 9-digit ZIP code specified in "5-4" format. |
FullPostalCode |
VARCHAR2(20) |
Full postal code, including the postal code and postal add-on code. |
POBox |
VARCHAR2(100) |
Post Office box number. |
HouseNumber |
VARCHAR2(100) |
House or building number. Example: 123 in 123 MAIN ST |
BaseName |
VARCHAR2(200) |
Base name of the street. Example: MAIN in 123 MAIN ST |
StreetType |
VARCHAR2(20) |
Type of the street. Example: ST in 123 MAIN ST |
StreetTypeBefore |
VARCHAR2(1) |
(Not used.) |
StreetTypeAttached |
VARCHAR2(1) |
(Not used.) |
StreetPrefix |
VARCHAR2(20) |
Prefix for the street. Example: S in 123 S MAIN ST |
StreetSuffix |
VARCHAR2(20) |
Suffix for the street. Example: NE in 123 MAIN ST NE |
Side |
VARCHAR2(1) |
Side of the street ( |
Percent |
NUMBER |
Number from 0 to 1 (multiply by 100 to get a percentage value) indicating how far along the street you are when traveling following the road segment orientation. |
EdgeID |
NUMBER |
Edge ID of the road segment. |
ErrorMessage |
VARCHAR2(20) |
Error message (see Error Messages for Output Geocoded Addresses). Note: You are encouraged to use the |
MatchCode |
NUMBER |
Match code (see Match Codes). |
MatchMode |
VARCHAR2(30) |
Match mode (see Match Modes). |
Longitude |
NUMBER |
Longitude coordinate value. |
Latitude |
NUMBER |
Latitude coordinate value. |
MatchVector |
VARCHAR2(20) |
A string that indicates how each address attribute has been matched against the data used for geocoding (see Match Vector for Output Geocoded Addresses). |
You can return the entire SDO_GEO_ADDR object, or you can specify an attribute using standard "dot" notation. Example 11-1 contains statements that geocode the address of the San Francisco City Hall; the first statement returns the entire SDO_GEO_ADDR object, and the remaining statements return some specific attributes.
Example 11-1 Geocoding, Returning Address Object and Specific Attributes
SELECT SDO_GCDR.GEOCODE('SCOTT', SDO_KEYWORDARRAY('1 Carlton B Goodlett Pl', 'San Francisco, CA 94102'), 'US', 'RELAX_BASE_NAME') FROM DUAL; SDO_GCDR.GEOCODE('SCOTT',SDO_KEYWORDARRAY('1CARLTONBGOODLETTPL','SANFRANCISCO -------------------------------------------------------------------------------- SDO_GEO_ADDR(0, SDO_KEYWORDARRAY(), NULL, 'CARLTON B GOODLETT PL', NULL, NULL, ' SAN FRANCISCO', NULL, 'CA', 'US', '94102', NULL, '94102', NULL, '1', 'CARLTON B GOODLETT', 'PL', 'F', 'F', NULL, NULL, 'L', .01, 23614360, '????#ENUT?B281CP?', 1, 'RELAX_BASE_NAME', -122.41815, 37.7784183, '????0101010??000?') SELECT SDO_GCDR.GEOCODE('SCOTT', SDO_KEYWORDARRAY('1 Carlton B Goodlett Pl', 'San Francisco, CA 94102'), 'US', 'RELAX_BASE_NAME').StreetType FROM DUAL; SDO_GCDR.GEOCODE('SCOTT',SDO_KEYWORDARRAY('1CARLTONBGOODLETTPL','SANFRANCISCO -------------------------------------------------------------------------------- PL SELECT SDO_GCDR.GEOCODE('SCOTT', SDO_KEYWORDARRAY('1 Carlton B Goodlett Pl', 'San Francisco, CA 94102'), 'US', 'RELAX_BASE_NAME').Side RROM DUAL; S - L SELECT SDO_GCDR.GEOCODE('SCOTT', SDO_KEYWORDARRAY('1 Carlton B Goodlett Pl', 'San Francisco, CA 94102'), 'US', 'RELAX_BASE_NAME').Percent FROM DUAL; SDO_GCDR.GEOCODE('SCOTT',SDO_KEYWORDARRAY('1CARLTONBGOODLETTPL','SANFRANCISCO -------------------------------------------------------------------------------- .01 SELECT SDO_GCDR.GEOCODE('SCOTT', SDO_KEYWORDARRAY('1 Carlton B Goodlett Pl', 'San Francisco, CA 94102'), 'US', 'RELAX_BASE_NAME').EdgeID FROM DUAL; SDO_GCDR.GEOCODE('SCOTT',SDO_KEYWORDARRAY('1CARLTONBGOODLETTPL','SANFRANCISCO -------------------------------------------------------------------------------- 23614360 SELECT SDO_GCDR.GEOCODE('SCOTT', SDO_KEYWORDARRAY('1 Carlton B Goodlett Pl', 'San Francisco, CA 94102'), 'US', 'RELAX_BASE_NAME').MatchCode FROM DUAL; SDO_GCDR.GEOCODE('SCOTT',SDO_KEYWORDARRAY('1CARLTONBGOODLETTPL','SANFRANCISCO -------------------------------------------------------------------------------- 1 SELECT SDO_GCDR.GEOCODE('SCOTT', SDO_KEYWORDARRAY('1 Carlton B Goodlett Pl', 'San Francisco, CA 94102'), 'US', 'RELAX_BASE_NAME').MatchVector FROM DUAL; SDO_GCDR.GEOCODE('SC -------------------- ????0101010??000?
The SDO_ADDR_ARRAY type is a VARRAY of SDO_GEO_ADDR objects (described in SDO_GEO_ADDR Type) used to store geocoded address results. Multiple address objects can be returned when multiple addresses are matched as a result of a geocoding operation.
The SDO_ADDR_ARRAY type is defined as follows:
CREATE TYPE sdo_addr_array AS VARRAY(1000) OF sdo_geo_addr;
The SDO_KEYWORDARRAY type is a VARRAY of VARCHAR2 strings used to store address lines for unformatted addresses. (Formatted and unformatted addresses are described in Address Representation.)
The SDO_KEYWORDARRAY type is defined as follows:
CREATE TYPE sdo_keywordarray AS VARRAY(10000) OF VARCHAR2(9000);