[ http://issues.apache.org/jira/browse/TORQUE-57?page=all ]
Thomas Fischer updated TORQUE-57:
---------------------------------
Affects Version/s: 3.2
(was: 3.2.1)
> escapeText() method in DBOracle returns false but escape characters are
> required in Oracle in certain cases
> -----------------------------------------------------------------------------------------------------------
>
> Key: TORQUE-57
> URL: http://issues.apache.org/jira/browse/TORQUE-57
> Project: Torque
> Issue Type: Bug
> Components: Runtime
> Affects Versions: 3.2
> Environment: All OS, All hardware, Oracle Data base
> Reporter: parthasarathy
> Assigned To: Thomas Fischer
> Priority: Minor
> Fix For: 3.2.1
>
>
> Oracle uses escape characters for interpreting certain special characters
> like "_" literally. However the escapeText() method in
> org.apache.torque.adapter.DBOracle class returns false. The value returned by
> this method is used by the SqlExpression.quoteAndEscape method. As the
> escapeText method returns false a where clause condition: like 'abc\_%' will
> get translated to: like 'abc\%' (note the missing "_") in the
> SQLExpression.buildLike method. Sybase and SQL Server also has the same
> Escape behavior but the escapeText() method in DBSybase and DBMSSQL returns
> true.
> Below is a copy of the source code in DBOracle.
> /**
> * This method is for the SqlExpression.quoteAndEscape rules. The rule
> is,
> * any string in a SqlExpression with a BACKSLASH will either be changed
> to
> * "\\" or left as "\". SapDB does not need the escape character.
> *
> * @return false.
> */
> public boolean escapeText()
> {
> return false;
> }
> The usecase I am trying out is one where a column in the table queried has
> values 'abc' and 'a_c'. I need to query the record that has the column
> value as 'a_c'. If I issue a query without escapecharacters (where <column>
> like 'a_%' ) both the rows are returned. I need to provide a where clause
> with the condition as <column> like 'a\_%' to get the correct record (also
> need to add ESCAPE keyword to the query). However, because escapeText returns
> false, the criteria value gets built wrongly in the buildLike method of
> SQLExpression class.. (the method returns 'a\%'). If escapeText returns true
> this problem will be solved (ESCAPE keyword addition needs to be tackled
> separately also).
> information regarding escape characters in Oracle
> http://www.dba-oracle.com/tips_oracle_escape_characters.htm
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]