Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle-Einschränkung nach dem Wert von search_condition abfragen

Ändern Sie die zweite Hälfte Ihrer WHERE-Klausel wie folgt

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

search_condition ist ein LONG-Datentyp und das schränkt eher ein, was Sie damit machen können. Der letzte Parameter von SUBSTR gibt die Länge der zurückgegebenen Zeichenfolge an, also ändern Sie diese nach Bedarf.

Geändert, da ich die Beschränkung auf WHERE-Klauseln vergessen hatte, erstellen Sie im Grunde eine PL/SQL-Funktion, um das Obige zu tun, und verwenden Sie diese in Ihrer WHERE-Klausel,

Zum Beispiel

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;

Wie hier verwendet....