Peço a juda de vcs no seguinte problema:

Preciso fazer um "SELECT DISTINCT" em um atributo espacial de uma
tabela, porém o Oracle retorna uma mensagem de erro dizendo que o
atributo espacial que quero selecionar é um objeto e que não é
possível executar a operação.

Vocês sabem me dizer se é possível fazer isto com alguma função do
Oracle Locator ou Spatial?

Exemplificando:

MinhaTabela (
NOME VARCHAR2(10),
GEOMETRIA MDSYS.SDO_GEOMETRY
)

Inseri 3 dados na MinhaTabela (entenda-se "Poligono" como um dado
espacial do Oracle):

--- 1º ---
NOME = Area1
GEOMETRIA = Poligono A

--- 2º ---
NOME = Area2
GEOMETRIA = Poligono B

--- 3º ---
NOME = Area3
GEOMETRIA = Poligono A


Desejo executar um select distinct nesta tabela para que sejam
retornados somentes as tuplas que possuem Poligonos diferentes, ou
seja, o retorno seria = "Poligono A" e "Poligono B".

Como não encontrei uma função que execute isso criei uma procedure
que executa um loop na tabela com o atributo espacial e utilizo a
função SDO_EQUAL pra verificar se são iguais ou não, porém o
processamento disso é muito lento e meu volume de dados vai crescer
exponencialmente.

Se for possível me ajudarem fico muito agradecido.

Aguardo uma resposta de vcs.

Muito obrigado

Responder a