BUG #5068: LIKE

Started by Pauloover 16 years ago2 messagesbugs
Jump to latest
#1Paulo
correio.vip@gmail.com

The following bug has been logged online:

Bug reference: 5068
Logged by: Paulo
Email address: correio.vip@gmail.com
PostgreSQL version: 8.4
Operating system: win2003
Description: LIKE
Details:

like to select a field containing Numeric 4 and compared with a char(30)
field.
In oracle and postgresql to version 8.2 worked perfectly, now the new
version no longer works, as we have many queries in this format.

attached to select what worked and from 8.4 no longer works, which featured
not work and select track

...

("A"."ACL_CdCurLet" LIKE btrim(:DB-LIKE))
OR
( (UPPER(translate(btrim("B"."ALE_Ano"),

'ÁÀÂÃÄÉÈÊËÍÌÎÏÓÒÕÔÖÚÙÛÜÇKZYW',
'AAAAAEEEEIIIIOOOOOUUUUCCSIV')))
LIKE
(UPPER(translate(btrim(:DB-LIKE),

'ÁÀÂÃÄÉÈÊËÍÌÎÏÓÒÕÔÖÚÙÛÜÇKZYW',
'AAAAAEEEEIIIIOOOOOUUUUCCSIV'))) )

EXEC SQL
DECLARE CSR-CURLET CURSOR FOR SELECT

"A"."EMP_CdEmpresa"
,"A"."ACL_CdCurLet"
,"A"."ALE_CdLetivo"
,"A"."ACU_CdCurso"
,"A"."ACL_NrAulasDia"
,"A"."ACL_DuracaoAula"
,"A"."ACL_Nome"

,"B"."EMP_CdEmpresa"
,"B"."ALE_CdLetivo"
,"B"."ALE_Ano"
,"B"."ALE_Periodo"
,"B"."ALE_NmLetivo"
,"B"."ALE_DataInicio"
,"B"."ALE_DataFinal"
,"C"."ACU_CdCurso"
,"C"."ACU_NmCurso"
,"C"."ACU_AbrCurso"
,"C"."AEN_CdEnsino"
,"D"."AEN_CdEnsino"
,"D"."AEN_NmEnsino"
,"D"."AEN_AbrEnsino"
FROM "aMatCurr" "A"
,"aLETIVO" "B"
,"aCURSO" "C"
,"aENSINO" "D"
WHERE ( "A"."EMP_CdEmpresa" = "B"."EMP_CdEmpresa" )
AND ( "A"."ALE_CdLetivo" = "B"."ALE_CdLetivo" )
AND ( "A"."ACU_CdCurso" = "C"."ACU_CdCurso" )
AND ( "C"."AEN_CdEnsino" = "D"."AEN_CdEnsino" )

AND ( "B"."EMP_CdEmpresa" = :aLETIVO-EMP-CdEmpresa )

AND (

("A"."ACL_CdCurLet" LIKE btrim(:DB-LIKE))

OR
(
(UPPER(translate(btrim("B"."ALE_Ano"),

'ÁÀÂÃÄÉÈÊËÍÌÎÏÓÒÕÔÖÚÙÛÜÇKZYW',
'AAAAAEEEEIIIIOOOOOUUUUCCSIV')))
LIKE
(UPPER(translate(btrim(:DB-LIKE),

'ÁÀÂÃÄÉÈÊËÍÌÎÏÓÒÕÔÖÚÙÛÜÇKZYW',
'AAAAAEEEEIIIIOOOOOUUUUCCSIV')))
)

OR
(
(UPPER(translate(btrim("C"."ACU_NmCurso"),

'ÁÀÂÃÄÉÈÊËÍÌÎÏÓÒÕÔÖÚÙÛÜÇKZYW',
'AAAAAEEEEIIIIOOOOOUUUUCCSIV')))
LIKE
(UPPER(translate(btrim(:DB-LIKE),

'ÁÀÂÃÄÉÈÊËÍÌÎÏÓÒÕÔÖÚÙÛÜÇKZYW',
'AAAAAEEEEIIIIOOOOOUUUUCCSIV')))
)

OR
(
(UPPER(translate(btrim("C"."ACU_AbrCurso"),

'ÁÀÂÃÄÉÈÊËÍÌÎÏÓÒÕÔÖÚÙÛÜÇKZYW',
'AAAAAEEEEIIIIOOOOOUUUUCCSIV')))
LIKE
(UPPER(translate(btrim(:DB-LIKE),

'ÁÀÂÃÄÉÈÊËÍÌÎÏÓÒÕÔÖÚÙÛÜÇKZYW',
'AAAAAEEEEIIIIOOOOOUUUUCCSIV')))
)

OR
(
(UPPER(translate(btrim("D"."AEN_NmEnsino"),

'ÁÀÂÃÄÉÈÊËÍÌÎÏÓÒÕÔÖÚÙÛÜÇKZYW',
'AAAAAEEEEIIIIOOOOOUUUUCCSIV')))
LIKE
(UPPER(translate(btrim(:DB-LIKE),

'ÁÀÂÃÄÉÈÊËÍÌÎÏÓÒÕÔÖÚÙÛÜÇKZYW',
'AAAAAEEEEIIIIOOOOOUUUUCCSIV')))
)

)

ORDER BY "B"."ALE_Ano"
,"C"."ACU_NmCurso"
,"A"."ACL_Nome"

LIMIT :w-Limit

END-EXEC

#2Peter Eisentraut
peter_e@gmx.net
In reply to: Paulo (#1)
Re: BUG #5068: LIKE

On Sun, 2009-09-20 at 01:00 +0000, Paulo wrote:

like to select a field containing Numeric 4 and compared with a
char(30)
field.
In oracle and postgresql to version 8.2 worked perfectly, now the new
version no longer works, as we have many queries in this format.

Hard to say without having the complete schema and query, but I suspect
that you are running afoul of the restricted implicit casts. You might
need to insert explicit casts.