Oracle
 sql >> Database >  >> RDS >> Oracle

Interroga il vincolo di Oracle dopo il valore di search_condition

Modifica la seconda metà della tua clausola WHERE come segue

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

search_condition è un tipo di dati LUNGO e questo limita piuttosto ciò che puoi fare con esso. l'ultimo parametro di SUBSTR fornisce la lunghezza della stringa restituita, quindi modificala secondo necessità.

Modificato perché avevo dimenticato la restrizione sulle clausole WHERE, in pratica crea una funzione PL/SQL per fare quanto sopra e usala nella tua clausola WHERE,

Ad esempio

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;

Come usato qui....