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

Find ud af, om en streng kun indeholder ASCII-tegn

Du kan bruge TRANSLATE at gøre dette. Grundlæggende translate væk alle de ASCII-tegn, der kan udskrives (der er ikke så mange af dem), og se, hvad du har tilbage.

Her er en forespørgsel, der gør det:

WITH input ( p_string_to_test) AS ( 
SELECT 'This this string' FROM DUAL UNION ALL
SELECT 'Test this ' || CHR(7) || ' string too!' FROM DUAL UNION ALL
SELECT 'xxx' FROM DUAL)
SELECT p_string_to_test, 
       case when translate(p_string_to_test, 
       chr(0) || q'[ !"#$%&'()*+,-./0123456789:;<=>[email protected][\]^_`abcdefghijklmnopqrstuvwxyz{|}~]', 
       chr(0)) is null then 'Yes' else 'No' END is_ascii
FROM input;


  1. Forlod Deltag den MAX(DATE)

  2. Problemer med at bruge MS Access som front-end til en MySQL-database-backend?

  3. Opretter du en web-app, der kan arbejde offline, gemme data og derefter synkronisere dem til ekstern MySQL, når du er online?

  4. Hvordan vælger jeg tilfældige rækker i MySQL?