Update of /cvsroot/modeling/ProjectModeling/Modeling/DatabaseAdaptors/OracleAdaptorLayer
In directory sc8-pr-cvs1:/tmp/cvs-serv23418/DatabaseAdaptors/OracleAdaptorLayer
Modified Files:
OracleSQLExpression.py
Log Message:
Fixed: Oracle needs ESCAPE with LIKE
Index: OracleSQLExpression.py
===================================================================
RCS file: /cvsroot/modeling/ProjectModeling/Modeling/DatabaseAdaptors/OracleAdaptorLayer/OracleSQLExpression.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** OracleSQLExpression.py 19 Aug 2003 22:01:18 -0000 1.1
--- OracleSQLExpression.py 31 Aug 2003 15:02:51 -0000 1.2
***************
*** 34,38 ****
__version__='$Revision$'[11:-2]
! from Modeling.SQLExpression import SQLExpression,DateType,CharacterType,NumericType
from oracle_utils import oracle_server_version
import string
--- 34,40 ----
__version__='$Revision$'[11:-2]
! from Modeling.SQLExpression import SQLExpression
! from Modeling.SQLExpression import DateType,CharacterType,NumericType
! from Modeling.Qualifier import QualifierOperatorLike
from oracle_utils import oracle_server_version
import string
***************
*** 135,138 ****
--- 137,166 ----
return attribute.externalType()
+
+ def sqlStringForCaseInsensitiveLike(self, keyString, valueString):
+ """
+ Overrides the default implementation and appends the string:
+
+ ESCAPE '\'
+
+ to LIKE expression, so that Oracle can match as expected.
+ """
+ ret=SQLExpression.sqlStringForCaseInsensitiveLike(self, keyString,
+ valueString)
+ return ret+" ESCAPE '\\'"
+
+ def sqlStringForKeyValueQualifier(self, aQualifier):
+ """
+ Overrides the default implementation and appends the string:
+
+ ESCAPE '\'
+
+ to LIKE expression (and only to LIKE expressions), so that Oracle can
+ match as expected.
+ """
+ ret=SQLExpression.sqlStringForKeyValueQualifier(self, aQualifier)
+ if aQualifier.operator() is QualifierOperatorLike:
+ ret+=" ESCAPE '\\'"
+ return ret
def valueTypeForExternalTypeMapping(self):
|