sql >> Database >  >> RDS >> Oracle

Query uitvoeren op Oracle-beperking na de waarde van search_condition

Pas de tweede helft van uw WHERE-clausule als volgt aan

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

search_condition is een LANG datatype en dat beperkt nogal wat je ermee kunt doen. de laatste parameter van de SUBSTR geeft de lengte van de geretourneerde string, dus pas die indien nodig aan.

Aangepast omdat ik de beperking op WHERE-clausules was vergeten, maak in feite een PL/SQL-functie om het bovenstaande te doen en gebruik die in uw WHERE-clausule,

Bijvoorbeeld

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;

Zoals hier gebruikt....



  1. ouder kind relaties

  2. Gebruikers met meerdere niveaus in de databasetabel

  3. Geschiedenis OF auditweergaven maken van Change Data Capture (CDC)-tabellen in SQL Server - SQL Server-zelfstudie

  4. Brand en vergeet DB-logboekregistratie met ASP.NET