A friendly place for programming greenhorns!
Big Moose Saloon
Register / Login
How to use underscore as literal not as wild char
Joined: Jan 02, 2012
Aug 10, 2012 06:48:28
I'm using oracle and need to use the underscore as literal not as wild char in qurery
I found on the internet something like this
SELECT SAMPLE_NAME FROM SAMPLES WHERE SAMPLE_NAME LIKE 'ABC\_XYZ' ESCAPE '\'
and if there is SAMPLE_NAME equales ABC_XYZ it will be feached
but in my case the
that i compare to is variable(entred by user)
select SAMPLE_NAME FROM SAMPLES WHERE SAMPLE_NAME LIKE ?
Is there any way to disable using '_' as wildchar in general in queris???
or the only solution is to process user input before using it in LIKE statement !
thanks in advance
author & internet detective
Joined: May 26, 2003
Aug 10, 2012 09:21:41
That is still the way to do it. You can use String's replaceAll method in Java to convert the string to have the escape character before submitting.
Your real example probably looks like "like % " + userInput + "%". If it doesn't have the % wildcard, you could just use "field = userInput" and be done with it.
Obviously, you still use a PreparedStatement here. I'm spelling out the input to make it clearer.
How To Ask Questions The Smart Way
Blogging on Certs:
SCEA Part 1
Part 2 & 3
Core Spring 3
TOGAF part 1
Joined: Oct 21, 2008
Aug 16, 2012 07:03:42
I am sure i read about something in oracle to allow you to set your wildcards, in an old thread.
I agree. Here's the link:
subject: How to use underscore as literal not as wild char
using wildcards literally in queries
Unexpected results from query....
selecting special characters
Get dialect from session (for character escaping)
problem in generating query in MSAccess
All times are in JavaRanch time: GMT-6 in summer, GMT-7 in winter
| Powered by
Copyright © 1998-2014