This week's book giveaway is in the Performance forum.
We're giving away four copies of The Java Performance Companion and have Charlie Hunt, Monica Beckwith, Poonam Parhar, & Bengt Rutisson on-line!
See this thread for details.
Win a copy of The Java Performance Companion this week in the Performance forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

How to use underscore as literal not as wild char

 
cute nonni
Greenhorn
Posts: 7
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello dears,


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 string 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
 
Jeanne Boyarsky
author & internet detective
Marshal
Posts: 34681
367
Eclipse IDE Java VI Editor
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.
 
Wendy Gibbons
Bartender
Posts: 1111
Eclipse IDE Oracle VI Editor
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I am sure i read about something in oracle to allow you to set your wildcards, in an old thread.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic