Pessoal falei o lower(e nem o to_lower) nao e aceito.. recebo esse erro
Local Exception Stack:
Exception [TOPLINK-8024] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs
(12/06/2007))): oracle.toplink.essentials.exceptions.EJBQLException
Exception Description: Syntax error parsing the query
[TbBairro.findAllBairro: SELECT t FROM TbBairro t ORDER BY
lower(to_ascii(t.nmBairro))], line 1, column 35: syntax error at [lower].
Internal Exception: line 1:35: expecting IDENT, found 'lower'
at
oracle.toplink.essentials.exceptions.EJBQLException.syntaxErrorAt(EJBQLException.java:379)
at
oracle.toplink.essentials.internal.parsing.ejbql.EJBQLParser.handleANTLRException(EJBQLParser.java:335)
at
oracle.toplink.essentials.internal.parsing.ejbql.EJBQLParser.addError(EJBQLParser.java:278)
at
oracle.toplink.essentials.internal.parsing.ejbql.EJBQLParser.reportError(EJBQLParser.java:378)
at
oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.variableAccess(EJBQLParser.java:1441)
at
oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.pathExpression(EJBQLParser.java:977)
at
oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.stateFieldPathExpression(EJBQLParser.java:1512)
at
oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.orderByItem(EJBQLParser.java:4620)
at
oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.orderByClause(EJBQLParser.java:618)
at
oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.selectStatement(EJBQLParser.java:241)
at
oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.document(EJBQLParser.java:135)
at
oracle.toplink.essentials.internal.parsing.ejbql.EJBQLParser.parse(EJBQLParser.java:166)
at
oracle.toplink.essentials.internal.parsing.ejbql.EJBQLParser.buildParseTree(EJBQLParser.java:127)
at
oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:215)
at
oracle.toplink.essentials.queryframework.EJBQLPlaceHolderQuery.processEjbQLQuery(EJBQLPlaceHolderQuery.java:111)
at
oracle.toplink.essentials.internal.sessions.AbstractSession.processEJBQLQueries(AbstractSession.java:2059)
at
oracle.toplink.essentials.internal.sessions.AbstractSession.processEJBQLQueries(AbstractSession.java:2046)
at
oracle.toplink.essentials.internal.sessions.DatabaseSessionImpl.postConnectDatasource(DatabaseSessionImpl.java:724)
at
oracle.toplink.essentials.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:604)
at
oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:280)
at
oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:229)
at
oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:93)
at
oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:126)
at
oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:120)
at
oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:91)
at
br.com.dnasolution.dao.ConexaoNotas.getCurrentEM(ConexaoNotas.java:58)
at
br.com.dnasolution.facade.ConfiguracaoNotasFACADE.getConfiguracao(ConfiguracaoNotasFACADE.java:24)
at notas.Main.main(Main.java:130)
Caused by: line 1:35: expecting IDENT, found 'lower'
at persistence.antlr.Parser.match(Parser.java:212)
at
oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.variableAccess(EJBQLParser.java:1434)
... 23 more
----- Original Message -----
From: "Osvaldo Kussama" <[email protected]>
To: "Comunidade PostgreSQL Brasileira" <[email protected]>
Sent: Thursday, March 26, 2009 7:22 PM
Subject: Re: [pgbr-geral] Java + TopLink + Postgres
2009/3/26 Fabio Alves de Araujo Ebner - Dna
<[email protected]>:
> Entao Osvaldo o resultado do SHOW LC_COLLATE; foi "C" e outra ja tentei
> colocar o upper(nmCampo) porem o toplink nao aceita esse comando.. :/ esse
> e o problema..
> ----- Original Message -----
> From: "Osvaldo Kussama" <[email protected]>
> To: "Comunidade PostgreSQL Brasileira"
> <[email protected]>
> Sent: Thursday, March 26, 2009 12:02 PM
> Subject: Re: [pgbr-geral] Java + TopLink + Postgres
>
>
> Complementando:
>
> 2009/3/26 Osvaldo Kussama <[email protected]>:
>> 2009/3/26 Fabio Alves de Araujo Ebner - Dna
>> <[email protected]>:
>>> Bora la..
>>> eu obtive o seguinte resultado:
>>>
>>>
>>> ADQUIRENTE
>>> Joana
>>> Joao
>>> João
>>> Joãot
>>> Joãozinho
>>> TRANSMITENTE
>>> adquirente
>>> joao
>>> joaozinho
>>> joão
>>> transmitente
>>> ÁDQUIRENTE
>>>
>>> e eu quero em ordem
>>> ADQUIRENTE
>>> adquirente
>>> ÁDQUIRENTE
>>> Joana
>>> Joao
>>> João
>>> Joãot
>>> Joãozinho
>>> adquirente
>>> joao
>>> joaozinho
>>> joão
>>> TRANSMITENTE
>>> transmitente
>>>
>>>
>>>
>>> meu locale e PT
>>> meu enconding e LATIN1
>>> e o LC_COLLATE : nao faco a menor ideia e de como descubro isso :D
>>>
>>>
>>>
>>> entendeu??
>>> ----- Original Message -----
>>> From: "Osvaldo Kussama" <[email protected]>
>>> To: "Comunidade PostgreSQL Brasileira"
>>> <[email protected]>
>>> Sent: Thursday, March 26, 2009 11:26 AM
>>> Subject: Re: [pgbr-geral] Java + TopLink + Postgres
>>>
>>>
>>> 2009/3/26 Fabio Alves de Araujo Ebner - Dna
>>> <[email protected]>:
>>>> Pessoal estou com um problema com JAVA + TOPLINK + POSTGRES alguem pode
>>>> me
>>>> ajudar??/
>>>>
>>>>
>>>> eu tenho uma tabela de cidades (por exemplo) porem o meu toplink nao
>>>> consegue ordenar essa tabela corretamente ele se perder nas maiusculas
>>>> e
>>>> minusculas, acredito q ele utilize o codigo asc das letras para
>>>> ordenar..
>>>> e
>>>> nao consigo colocar order by upper(campo) no toplink pois ele nao
>>>> aceita..
>>>> alguem sabe como eu faco para arrumar isso??
>>>>
>>>
>>>
>>> É possível você exemplificar? O que você obteve e o que esperava?
>>> Qual o seu locale, encoding e qual o valor de LC_COLLATE?
>>>
>>
>>
>> Execute o comando SQL:
>> SHOW LC_COLLATE;
>>
>> Osvaldo
>>
>
> Talvez o resultado desejado você consiga com:
> ORDER BY to_lower(to_ascii(seu_campo))
>
Veja este teste:
bdteste=# SHOW LC_COLLATE;
lc_collate
-------------
pt_BR.UTF-8
(1 registro)
bdteste=# VALUES ('ADQUIRENTE'), ('Joana'), ('Joao'), ('João'),
('Joãot'), ('Joãozinho'), ('TRANSMITENTE'), ('adquirente'), ('joao'),
('joaozinho'), ('joão'), ('transmitente'), ('ÁDQUIRENTE') ORDER BY 1;
column1
--------------
adquirente
ADQUIRENTE
ÁDQUIRENTE
Joana
joao
Joao
joão
João
Joãot
joaozinho
Joãozinho
transmitente
TRANSMITENTE
(13 registros)
bdteste=# VALUES ('ADQUIRENTE'), ('Joana'), ('Joao'), ('João'),
('Joãot'), ('Joãozinho'), ('TRANSMITENTE'), ('adquirente'), ('joao'),
('joaozinho'), ('joão'), ('transmitente'), ('ÁDQUIRENTE') ORDER BY 1
USING ~>~;
column1
--------------
ÁDQUIRENTE
transmitente
joão
joaozinho
joao
adquirente
TRANSMITENTE
Joãozinho
Joãot
João
Joao
Joana
ADQUIRENTE
(13 registros)
Como o encoding que uso é UTF8 a função to_ascii não funciona.
Como você utiliza LATIN1 tente usar em seu SELECT a opção: ORDER BY
to_lower(to_ascii(seu_campo))
Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral