Oracle
 sql >> Base de données >  >> RDS >> Oracle

Interroger la contrainte Oracle après la valeur de search_condition

Modifiez la seconde moitié de votre clause WHERE comme suit

SUBSTR(search_condition, 1, 21) = 'whatever you're after'

search_condition est un type de données LONG et cela limite plutôt ce que vous pouvez en faire. le dernier paramètre de SUBSTR donne la longueur de la chaîne renvoyée, modifiez-la si nécessaire.

Modifié car j'avais oublié la restriction sur les clauses WHERE, créez essentiellement une fonction PL/SQL pour faire ce qui précède et utilisez-la dans votre clause WHERE,

Par exemple

FUNCTION get_long_16(pFormID NUMBER, pSectionItemID NUMBER, pSequence NUMBER)
  RETURN VARCHAR2
  AS
          l_data LONG;
  BEGIN
      SELECT far.text_answer
        INTO l_data
        FROM form_answers_repeating far
       WHERE far.form_id = pFormID
         AND far.section_item_id = pSectionItemID
         AND far.sequence = pSequence;

      RETURN SUBSTR(l_data, 1, 16);
  END;

Tel qu'utilisé ici....