Hi,

  Obviously Java needs a \ to be escaped. So if you want to denote a single \ inside a 
java string you should put "\\" and to denote a \\ you need to use "\\\\". Now the 
question is - whether your key in the table actually contains two "\" characters or 
its just that you showed us an escaped representation in the mail. In either case I 
don't think I can help further because I dont understand why a \% (no escape chars) 
will match a \ but not a \\.

Btw, you might also need to consider the fact that Oracle might be doing another level 
of escaping the characters. I'm not sure though.

-Sarav


-----Original Message-----
From: "Joacim Turesson" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Date: Wed, 9 Jun 2004 14:10:01 +0200
Subject: Criteria with Like using Oracle

Hi!

 

I'm using Torque with Oracle9i and it works fine.

 

But now I have a problem with a select statement.

We have a node table that has a key, for instance:

*       \ (for root)
*       \\Folder1 <file:///\\Folder1>
*       \\Folder1\Folder2 <file:///\\Folder1\Folder2>



If I use the code in the end of this mail the query works fine for a search
from the root, that is "key like '\\%'.

But when the node key value is '\\Folder1\%' the like statement is not
generated, instead it becomes key='\Folder1\'



Does anyone have a clue what's going on?



The Code:



Criteria criteria = new Criteria();

criteria.add(NodePeer.LEVEL,node.getLevel() + 1);

String nodeKey = node.getKey() + "\\" + "%";

criteria.add(NodePeer.KEY, (Object)nodeKey, Criteria.LIKE);

criteria.addAscendingOrderByColumn(NodePeer.NAME);

List list = NodePeer.doSelect(criteria,connection);



Thanks in advance!



Best Regards



Joacim Turesson

PS It works fine if I use / instead of \ DS







---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to