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.1
Environment: All OS, All hardware, Oracle Data base
Reporter: parthasarathy
Priority: Minor
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]