db-torque-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Caron, Roger A." <roger.ca...@pw.utc.com>
Subject RE: Criteria with Like using Oracle
Date Thu, 10 Jun 2004 14:13:47 GMT
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:joacim.turesson@profuture.se]
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:joop@gmx.co.uk] 
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:joacim.turesson@profuture.se]
Sent: 09 June 2004 13:10
To: torque-user@db.apache.org
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: torque-user-unsubscribe@db.apache.org
For additional commands, e-mail: torque-user-help@db.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
For additional commands, e-mail: torque-user-help@db.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
For additional commands, e-mail: torque-user-help@db.apache.org


Mime
View raw message