2012-07-10 2 views
0

enter image description hereComment sélectionner les noms dans la base de données oracle10g?

je veux rechercher le nom qui ayant des compétences en Java et Oracle

et je sais que le codage comme

select name from table_name where skills like '%java%' or skills like '%oracle%'; 

mais mon problème est, en servlet Comment puis-je faire cela?

String skills=request.getParameter("skill"); 

ma requête de sélection

select name from table_name where skill like '"++"'; 

Ici, je suis confus, je essayé comme celui-ci

select name from table_name where skill like '"+%skills%+"'; 

mais ne fonctionne pas.

Je suis un webdeveloper très nouveau à Oracle, s'il vous plaît aidez-moi

J'utilise oracle10g

+3

Vous ne devriez pas avoir ce schéma db. Créez une table person_skill avec person_id et skill_id. Ne placez pas plus d'une valeur dans une colonne à une ligne. –

+0

Comment exécutez-vous ces instructions? Via la déclaration JDBC, Hibernate, Oracle ADF ou d'une autre manière? – npe

+0

@npe Via l'instruction JDBC – Prashobh

Répondre

1

Vous pouvez essayer REGEXP_LIKE

SELECT name from TABLENAME where 
WHERE REGEXP_LIKE (skills, '(Java|Oracle)'); 
1
String query = "select name from table_name"; 
    String skills = request.getParameter("skill"); 
    StringBuilder likePart = new StringBuilder(""); 
    boolean appendOrClause = false; 
    String skillsArray[] = skills == null ? null : skills.split(","); 

    if(skillsArray != null && skillsArray.length > 0){ 
     for(String skill : skillsArray){ 
      if(skill.trim().length() > 0){ 
       if(appendOrClause){ 
        likePart.append(" OR skills like '%" + skill.trim() + "%'"); 
       } else { 
        likePart.append(" where skills like '%" + skill.trim() + "%'"); 
       } 
       appendOrClause = true; 
      } 
     } 
     if(likePart.toString().trim().length() > 0){ 
      query += likePart.toString(); 
     } 
    } 
    if(query.indexOf("like") > 0){ 
     // User have skills 
     // Fire query to get User Name 
    } else { 
     // User doesn't have any skills 
     // don't Fire any query 
    } 
Questions connexes