sql >> Database >  >> RDS >> Oracle

Spaties inkorten (nieuwe regel en tabruimte) in een string in Oracle

Als u Oracle 10g hebt, REGEXP_REPLACE is behoorlijk flexibel.

Gebruik de volgende string als test:

chr(9) || 'Q   qwer' || chr(9) || chr(10) ||
chr(13) || 'qwerqwer     qwerty' || chr(9) || 
chr(10) || chr(13)

De [[:space:]] verwijdert alle witruimte en de ([[:cntrl:]])|(^\t) regexp verwijdert niet-afdrukbare tekens en tabs.

select
    tester,
    regexp_replace(tester, '(^[[:space:]]+)|([[:space:]]+$)',null)
            regexp_tester_1,
    regexp_replace(tester, '(^[[:cntrl:]^\t]+)|([[:cntrl:]^\t]+$)',null) 
            regexp_tester_2
from
    (
    select
        chr(9) || 'Q   qwer' || chr(9) || chr(10) ||
                chr(13) || 'qwerqwer     qwerty' || chr(9) || 
                chr(10) || chr(13) tester 
    from 
        dual
    )

Terugkerend:

  • REGEXP_TESTER_1 :"Qqwerqwerqwerqwerty "
  • REGEXP_TESTER_2 :"Q qwerqwerqwer qwerty "

Ik hoop dat dit van enig nut is.



  1. Voeg afwisselende rijkleur toe aan het rapport SQL Server Reporting Services

  2. Wijzig/reset postgresql gebruikerswachtwoord op Windows 7

  3. Is er een Spring Batch 3-upgradescript voor MySQL?

  4. XML doorgeven als parameter aan opgeslagen procedure in Oracle