8
votes

Quelle est la meilleure façon de rechercher une colonne Oracle Clob?

J'ai besoin de fouiller une colonne de clob et je cherche la meilleure façon de le faire, j'ai vu des variantes en ligne d'utiliser le package DBMS_LOB ainsi que d'utiliser quelque chose appelé texte Oracle. Quelqu'un peut-il fournir un exemple rapide de la façon de faire cela?


0 commentaires

3 Réponses :


3
votes

L'indexation du texte Oracle est la voie à suivre. Vous pouvez utiliser un indice de contexte ou de CTXRULE. Le contexte peut être utilisé sur le document non structuré où CTXRule est plus utile sur des documents structurés.

Ce lien sera Fournissez plus d'informations les types d'index et la syntaxe.

Le facteur le plus important à considérer est Lexer & StopList.

Vous pouvez également lire les messages sur asktom.oracle.com

http: // asktom.oracle.com/pls/apex/f?p=100:11:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:5533095920114


0 commentaires

1
votes

Qu'est-ce que vous êtes dans votre clob et que recherchez-vous?

Le texte Oracle est bon si vous recherchez des mots ou des phrases (ce que vous avez probablement ce que vous avez dans un clob). Parfois, vous stockez quelque chose de «étrange» dans un clob, comme XML ou la valeur de retour d'un appel de service Web et qui pourrait être une bouilloire différente de poisson.


1 commentaires

Ce seront des mots ou des phrases dans le clob, j'aimerais effectuer une sorte de recherche générique comme "% keywordhere%



1
votes

Je devais faire cela juste récemment et proposé la solution suivante (utilise Spring JDBC)

String sql = "select * from clobtest where dbms_lob.instr(myclob, ? , 1, 1) > 0";
return (String) getSimpleJdbcTemplate().getJdbcOperations().queryForObject(sql, new RowMapper<Object>() {
  public String mapRow(ResultSet rs, int rowNum) throws SQLException {
    String clobText = lobHandler.getClobAsString(rs, "myclob");
    return clobText;
  }
}, searchText);


0 commentaires