ORACLE GEOCODER problems
701981May 18 2009 — edited Oct 28 2010Hi!
I'm new to oracle geocoding. I downloaded TeleAtlas sample data of San Marino and successfully imported it into Oracle database. I already succesfully geocoded and reverse geocoded some sample data, but when trying other functions like SDO_GCDR.GEOCODE_ALL or SDO_GCDR.GEOCODE_ADDR_ALL etc... I allways get the same error:
ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error: character to number conversion error
ORA-06512: at "MDSYS.SDO_GCDR", line 554
ORA-06512: at "MDSYS.SDO_GCDR", line 625
ORA-06512: at "MDSYS.SDO_GCDR", line 754
ORA-06512: at line 1
This works: SELECT SDO_GCDR.GEOCODE('O10G_EUR0705', SDO_KEYWORDARRAY('CONTRADA', '47890'), 'SM', 'RELAX_BASE_NAME') FROM DUAL;
The result is:
SDO_GCDR.GEOCODE('O10G_EUR0705',SDO_KEYWORDARRAY('CONTRADA','47890'),'SM','RELAX
--------------------------------------------------------------------------------
SDO_GEO_ADDR(0, SDO_KEYWORDARRAY(), NULL, NULL, NULL, NULL, NULL, 'SAN MARINO',
NULL, 'SM', '47890', NULL, NULL, NULL, NULL, NULL, NULL, 'F', 'F', NULL, NULL, '
L', 0, 1,6740E+13, '??????????B281CP?', 4, 'RELAX_BASE_NAME', 12,4507268, 43,936
4842, NULL)
This also works: SELECT SDO_GCDR.REVERSE_GEOCODE('O10G_EUR0705',
2 SDO_GEOMETRY(2001, 8307,
3 SDO_POINT_TYPE(12.4507268, 43.9364842, NULL), NULL, NULL),
4 'SM') FROM DUAL;
The result is:
SDO_GCDR.REVERSE_GEOCODE('O10G_EUR0705',SDO_GEOMETRY(2001,8307,SDO_POINT_TYPE(12
--------------------------------------------------------------------------------
SDO_GEO_ADDR(0, SDO_KEYWORDARRAY(), NULL, 'STRADA SOTTOMONTANA', NULL, NULL, NUL
L, NULL, NULL, 'SM', '47890', NULL, '47890', NULL, NULL, NULL, NULL, 'F', 'F', N
ULL, NULL, 'L', ,999998505, 1,6740E+13, '', 1, 'DEFAULT', 12,4507268, 43,9364842
, NULL)
But when I try: SELECT SDO_GCDR.GEOCODE_ALL('O10G_EUR0705', SDO_KEYWORDARRAY('CONTRADA'), 'SM', 'DEFAULT') FROM DUAL; or
SELECT SDO_GCDR.GEOCODE_ALL('O10G_EUR0705', SDO_KEYWORDARRAY('PIAZZETTA MARINO MADIONI'), 'SM', 'DEFAULT') FROM DUAL; or
SELECT SDO_GCDR.GEOCODE_ADDR_ALL('O10G_EUR0705', create_addr_from_placename('CASA DEL CASTELLO DI FIORENTINO', 'SM'), 3) FRO
M DUAL;
I allways get the following error:
ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error: character to number conversion error
ORA-06512: at "MDSYS.SDO_GCDR", line 554
ORA-06512: at "MDSYS.SDO_GCDR", line 625
ORA-06512: at "MDSYS.SDO_GCDR", line 769
ORA-06512: at line 1
I did create the function for creating addres from placename as described in example and the function was successfully created.
What am I doing wrong? Please help.