I think you may 2 other options:

1) Perhaps you can find an Oracle function to replace the '\' in your folder
path with a different char, perhaps '/'.
http://www.ss64.com/orasyntax/functions.html has a list of several of the
available Oracle functions.  Perhaps you can issue a "translate('/',
'/Folder', '\')" in your Oracle SQL, though I haven't tested.  Also, I
haven't seen a way to implement "translate" via Torque so you may have to
get your SQL, append the translate method, then run that SQL via
BasePeer.executeQuery(queryString).

2) If your table has relatively few number of rows, you could run a query to
get all of the "folder paths" and process them via your Java routine
(perhaps with String.startsWith("\\Folder\\"), instead of relying on the
query to filter your results.  This will get largely inefficient and slow if
you have many rows, however.

Roger

-----Original Message-----
From: Joacim Turesson [mailto:[EMAIL PROTECTED]
Sent: Thursday, June 10, 2004 5:15 AM
To: 'Apache Torque Users List'
Subject: SV: Criteria with Like using Oracle


Hi!

Yes, in java I use '\\'.

So for '\\%' from java using LIKE it works fine, but with '\\\\Folder1\\%'
in java Torque transform it to EQUAL to '\\Folder\\'

Could it have something to do with that we have '\\\\Folder'?

Like I said, it works with '/'.
That is, '//%' and '////Folder1//%' both using LIKE.

Best Regards

Joacim

-----Ursprungligt meddelande-----
Fr�n: joop [mailto:[EMAIL PROTECTED] 
Skickat: den 9 juni 2004 20:33
Till: Apache Torque Users List
�mne: RE: Criteria with Like using Oracle

have you tried double escaping?

ie \\Folder1\\%

-----Original Message-----
From: Joacim Turesson [mailto:[EMAIL PROTECTED]
Sent: 09 June 2004 13:10
To: [EMAIL PROTECTED]
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]


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

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

Reply via email to