Significado do caractere "+" em um select no arquivo de configuração .xml

pessoal, possuo um arquivo chamado sqlMap.xml onde tenho os meus selects e resultMaps e uma desssas querys possui um caracter que até então eu nunca tinha visto e não sei para que serve, é o sinal de adição (+). Segue:


 <select id="getProductsAndRelatedByRecordType" resultMap="productsAndRelatedMap">
       SELECT   P.PRODUCT_ID,
		P.PRODUCT_NUMBER,
                P.DESCRIPTION,
                P.BUSINESS,
                P.RECORD_TYPE,
                PA.PRODUCT_ID as PRODUCT_ATTRIBUTE_PRODUCT_ID,
                A.ATTRIBUTE_ID as ATTRIBUTE_ID,
                A.NAME as ATTRIBUTE_NAME,
                A.DESCRIPTION as ATTRIBUTE_DESCRIPTION,
                PA.VALUE as ATTRIBUTE_VALUE,
                PA.POSITION as ATTRIBUTE_POSITION,
                PA.PRODUCT_ATTRIBUTE_ID,
		C.COPY_ID,
	        C.COPY_TYPE_ID,
	        C.COPY
        FROM    products p,
	        copy c,
	        product_attributes pa,
	        attributes a
        WHERE   p.product_id =c.product_id(+)
        <isNotEmpty property="search">AND     p.record_type = #search#</isNotEmpty>
        AND     p.product_id = pa.product_id(+)
        AND     pa.attribute_id = a.attribute_id        
    </select>

Alguém sabe me dizer o que significa?

O banco é Oracle? Em Pl/Sql esse “+” é utilizado para fazer join entre as tabelas.

Hummmm, é Oracle! deve ser a mesma coisa, porém com ou sem ele está retornando a mesma coisa

Eu acho que nesse caso o melhor eh fazer um select em cada tabela com os mesmos critérios de pesquisa e verificar o retorno. O join serve para trazer dados em uma tabela mesmo que não existam dados correspondentes na outra. Se você ficar com dúvidas dá uma pesquisada sobre o uso do Join que vai te ajudar mais nessa situação.

obrigado!

A pergunta está respondida mas acrescento algo. Essa sintaxe é meio confusa, acho que o código fica mais claro se usar o comando left outer join na cláusula from.

É a sintaxe antiga do Oracle, do tempo em que o pessoal ainda não havia padronizado a cláusula JOIN. Muita gente ainda prefere a sintaxe antiga (em particular, eu acho mais clara, mas é porque sou um cara antigo, do tempo em que as teclas de função ficavam no lado esquerdo do teclado, em vez de ficarem em cima.)

[quote=jmountain]pessoal, possuo um arquivo chamado sqlMap.xml onde tenho os meus selects e resultMaps e uma desssas querys possui um caracter que até então eu nunca tinha visto e não sei para que serve, é o sinal de adição (+). Segue:


 <select id="getProductsAndRelatedByRecordType" resultMap="productsAndRelatedMap">
       SELECT   P.PRODUCT_ID,
		P.PRODUCT_NUMBER,
                P.DESCRIPTION,
                P.BUSINESS,
                P.RECORD_TYPE,
                PA.PRODUCT_ID as PRODUCT_ATTRIBUTE_PRODUCT_ID,
                A.ATTRIBUTE_ID as ATTRIBUTE_ID,
                A.NAME as ATTRIBUTE_NAME,
                A.DESCRIPTION as ATTRIBUTE_DESCRIPTION,
                PA.VALUE as ATTRIBUTE_VALUE,
                PA.POSITION as ATTRIBUTE_POSITION,
                PA.PRODUCT_ATTRIBUTE_ID,
		C.COPY_ID,
	        C.COPY_TYPE_ID,
	        C.COPY
        FROM    products p,
	        copy c,
	        product_attributes pa,
	        attributes a
        WHERE   p.product_id =c.product_id(+)
        <isNotEmpty property="search">AND     p.record_type = #search#</isNotEmpty>
        AND     p.product_id = pa.product_id(+)
        AND     pa.attribute_id = a.attribute_id        
    </select>

Alguém sabe me dizer o que significa?[/quote]

http://docs.oracle.com/cd/B28359_01/server.111/b28286/queries006.htm

[]'s